AWS bitnami LAMP 설정하기 (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) 설정하는 방법](/images/programming/aws/aws_bitnami_lamp_setting_guide_01.png)
홈 디렉토리
/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
문서 업데이트 내역
날짜 | 내용 |
---|---|
2021-11-13 | 문서 최초 생성 |