워크박스

구름IDE에 Apache, PHP 7.4 및 MariaDB 설치하는 방법 본문

구름IDE(goormIDE)/시작하기

구름IDE에 Apache, PHP 7.4 및 MariaDB 설치하는 방법

오픈빌더 2020. 9. 9. 20:20

구름IDE(goormIDE) 컨테이너에 Linux, 아파치(Apache), MySQL 및 PHP 조합으로 LAMP 스택으로 알려져 있는 PHP기반 웹 호스팅 환경을 구성해보도록 하겠습니다.
여기서 리눅스는 구름IDE에서 제공되는 우분투(Ubuntu) 운영체제이고 아파치는 아파치 재단에서 개발 및 관리되는 웹서버입니다. MariaDB은 데이터를 저장하는데 사용되는 관계형 데이터베이스 관리 시스템이며, PHP는 워드프레스, 그누보드 등에서 널리 사용되는 프로그래밍 언어입니다.

이 문서는 Ubuntu 18.04 LTS에 Apache 2.4, MariaDB 10.1, PHP7.4를 기준으로 설치하는 방법을 다루고 있습니다.

준비 단계

구름IDE에서 제공되는 여러 소프트웨어 스택에서 중에서 미리 프로비저닝 된 PHP 컨테이너를 생성합니다.
소프트웨어 스택 항목에서 PHP를 선택합니다.
- Template: PHP 프로젝트를 선택합니다.(PHP 빈 프로젝트 선택해도 상관없습니다.)
- OS: 최신 버전인 Ubuntu 18.04 LTS를 선택합니다.
- PHP: 7.3.8 (기본 설치되는 버전)
- Apache Web Server: 2.4.29

컨테이너 생성 절차 및 MySQL 5.7 설치는 아래 포스트를 참조하세요
구름IDE(goormIDE) PHP 컨테이너 생성 및 이용후기

실제 서비스환경이라면 일반 계정으로 접속하여 설치를 진행할 경우 권한문제로 sudo을 같이 사용하는 명령어 조합으로 안내하지만 본 문서에서는 root 계정이고 개발환경이기때문에 생략합니다. 또한, 패키지 자동 설치 옵션인 -y도 의도적으로 생략하였습니다.

[ 선택사항 ] PHP 7.3버전이 이미 설치되어 있습니다. 삭제를 원하시면 아래 명령어를 실행합니다. 이 가이드에서는 삭제하지 않고 진행합니다.

apt remove php* php7.3

패키지 저장소 및 시스템을 최신버전으로 업그레이드합니다.

apt update && apt upgrade -y

PHP설치

PHP 컨네이너에는 외부저장소 ppa:ondrej/php가 이미 추가 되어 있기때문에 생략하고 설치를 진행합니다.

apt install php7.4

[ 선택사항 ] PHP7.4 패키지가 정상적으로 설치되었는지 php7.4 -v 명령어로 확인해봅니다.

PHP 7.4.9 (cli) (built: Aug  7 2020 14:29:36) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.9, Copyright (c), by Zend Technologies

PHP기반 응용프로그램(application)에서 많이 사용되는 추가모듈을 설치합니다.

apt install php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-xml

아파치2(Apache2) 설치

여기서는 Apache의 mpm-profork 방식의 PHP 연결 모듈과 이미 설치되어 있지만 확인 차원에서 apache2도 추가해서 실행합니다.

apt install apache2 libapache2-mod-php7.4

apachectl -V 입력하여 아파치 MPM 작동방식 및 설치버전 확인해봅니다.

root@goorm:~# apachectl -V
Server version: Apache/2.4.29 (Ubuntu)
Server built:   2020-08-12T21:33:25
Server's Module Magic Number: 20120211:68
Server loaded:  APR 1.6.3, APR-UTIL 1.6.1
Compiled using: APR 1.6.3, APR-UTIL 1.6.1
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

Apache와 연결된 모듈중 PHP 7.3 연결을 해제하고 PHP 7.4 버전을 활성화합니다.

a2dismod php7.3
a2enmod php7.4

아파치 서버를 service 명령어로 시작합니다.(구름IDE에서는 systemctl을 사용할수 없습니다.)

service apache2 start

MariaDB 서버 설치

mariadb-client를 설치 안할경우 PHP에서 연결할때 오류가 발생하기 때문에 같이 설치합니다.

apt install mariadb-server mariadb-client php7.4-mysql

MariaDB 설치 및 상태를 service 명령어로 확인해봅니다.

service mysql status
  • 중지된 상태
  • MariaDB is stopped.

MySQL중지된 상태라면 service 명령어를 입력하여 서비스를 시작합니다.

service mysql start

service 명령어를 사용해 실행중인 상태를 확인해봅니다. 우분투 공식 저장소에서는 10.1.44-MariaDB 버전을 제공을 제공하고 있습니다.

 * /usr/bin/mysqladmin  Ver 9.1 Distrib 10.1.44-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Server version          10.1.44-MariaDB-0ubuntu0.18.04.1
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
Uptime:                 3 sec

Threads: 1  Questions: 432  Slow queries: 0  Opens: 167  Flush tables: 1  Open tables: 30  Queries per second avg: 144.000

MariaDB가 실행중인 상태라면 mysql_secure_installation 명령어를 사용할수 있습니다. root 패스워드 설정 및 보안설정을 변경할 수 있습니다.

mysql_secure_installation

설정 질문에 대해서는 Y를 입력합니다.
- Remove anonymous users? [Y/n] Y
- Disallow root login remotely? [Y/n] Y
- Remove test database and access to it? [Y/n] Y
- Reload privilege tables now? [Y/n] Y

root 패스워드를 설정하였다면 정상적으로 SQL shell로 접속되는지 확인합니다.

다음과 유사한 출력을 받게 됩니다.

root@goorm:~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 57
Server version: 10.1.44-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

마무리

이번 포스팅에서는 구름IDE에서 제공하는 PHP스택을 최신상태로 업그레이드하고 PHP 버전을 7.4로 설치 및 변경 해보았습니다. 그리고 컨테이너 생성시에 추가모듈/패키지에서 MySQL을 선택하지 않고 MariaDB를 설치 해보았습니다.

실제 웹환경과 유사하게 구성된 상태에서 PHP와 MariaDB 연결을 확인해 보는 방법은 다음과 같습니다.

구름IDE(goormIDE) PHP 컨테이너 생성 및 이용후기

Comments