워크박스
구름IDE에 Apache, PHP 7.4 및 MariaDB 설치하는 방법 본문
구름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) > 시작하기' 카테고리의 다른 글
구름IDE - PHP 컨테이너 생성 및 이용후기 (0) | 2020.09.06 |
---|---|
구름IDE(goormIDE) 회원가입 (0) | 2020.08.18 |