AWS bitnami LAMP (ubuntu, apache, php, mysql) 설정하는 방법입니다

개요

AWS에 간단한 웹사이트를 만들때 주로 사용하게 되는 것이 LAMP(Linux, Apache, Mysql, PHP)인데, 직접 설치해서 사용해도 되지만 AWS에는 LAMP가 기본적으로 설치, 설정되어 있는 라이브러리가 있습니다. 그중에서 유명한 것이 bitnami 입니다.

제가 최근에 설치한 것이 Ubuntu 16.04 버전 기반으로 AMP가 설치된 버전이었는데, AWS EC2에서 새로운 서버를 설치할 때 AWS MarketPlace에서 Linux, PHP 버전별로 찾아서 설치하시면 됩니다.

https://aws.amazon.com/marketplace/search/results?searchTerms=lamp

설치 후에 각종 설정 파일들 위치가 직접 설치하는 경우와는 다르기 때문에 쉽게 확인하고 설정할 수 있도록 디렉토리와 파일 위치를 정리하면서 웹사이트 개설에 필요한 정보를 정리해보겠습니다.

AWS bitnami LAMP (ubuntu, apache, php, mysql) 설정하는 방법

홈 디렉토리

/home/bitnami/

가상 호스트 파일 위치

/opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf

Apache 설정

myweb.com 이라는 웹사이트를 만든다고 가정했을 때의 환경 설정 방법을 정리해보겠습니다.

httpd-app.conf 생성

~# vi /opt/bitnami/apps/myweb/conf/httpd-app.conf
<Directory /home/bitnami/myweb/>

    Options +FollowSymLinks
    AllowOverride None

    <IfVersion < 2.3 >
    Order allow,deny
    Allow from all
    </IfVersion>

    <IfVersion >= 2.3>
    Require all granted
    </IfVersion>

</Directory>

httpd-vhosts.conf 생성

httpd-vhosts.conf 파일을 생성하고 아래 내용을 추가합니다.
그리고 아래쪽에 위에서 생성했던 httpd-app.conf 파일을 Include 합니다.

~# vi /opt/bitnami/apps/myweb/conf/httpd-vhosts.conf
<VirtualHost *:80>

  ServerName myweb.com
  ServerAlias www.myweb.com
  DocumentRoot "/home/bitnami/myweb"

  Include "/opt/bitnami/apps/myweb/conf/httpd-app.conf"

</VirtualHost>

환경 설정 Include

bitnami 기본 가상 호스트 파일에 위에서 생성한 myweb 환경 설정 파일을 Include 합니다.

~# vi /opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf
# Bitnami applications installed in a Virtual Host

Include "/opt/bitnami/apps/myweb/conf/httpd-vhosts.conf"

웹사이트 포트 추가

기본으로 80포트가 설정되어 있는데 8080으로 바꾸려고 할 경우 아래와 같이 설정합니다.

~# vi /opt/bitnami/apache2/conf/httpd.conf
Listen 8080

Apache 리스타트

~# sudo /opt/bitnami/ctlscript.sh restart apache

타임존 설정

~# sudo dpkg-reconfigure tzdata

mysql 설정

bitnami mysql 가이드 문서는 아래에 있습니다.

https://docs.bitnami.com/installer/infrastructure/mysql/

방화벽 포트 오픈

~# sudo ufw allow mysql/tcp

환경설정 파일 수정

~# sudo vim /opt/bitnami/mysql/my.cnf

root 계정 패스워드 설정

sudo /opt/bitnami/mysql/bin/mysql -u root -p -e "grant all privileges on *.* to 'root'@'%' identified by '패스워드' with grant option";

mysql Restart

sudo /opt/bitnami/ctlscript.sh restart mysql

mysql 타임존 설정

mysql_tzinfo_to_sql /usr/share/zoneinfo/Asia/Seoul KST > ./mysql_time.sql