AWS의 Lightsail에서 서버를 생성할 경우
Wordpress 를 선택하게 되면 간단하게 Wordpress를 설치하게 된다.
하지만, 서버 설치 후 순수하게 Wordpress만 사용하기에는 조금 아쉬운 감이 있다보니,
Nginx(bitnami)를 설치 후 Wordpress도 사용 가능하게 하는 방법을 사용해 서버를 구성한 적이 있다.
이 때 이래저래 삽질한 것이 있어서 정리해서 올려본다.
참고로 이 내용은 bitnami 문서로 가이드하고 있다.(물론 영어이다.)
https://docs.bitnami.com/virtual-machine/how-to/install-wordpress-nginx/
Nginx를 이용해 서버를 생성 후 접속한 후 진행한다.
참고로 bitnami에서 새 페이지 관리는 대부분 /opt/bitnami/apps에서 하며,
서버 관리에 대한 부분은 /opt/bitnami/ 폴더에 있다.
bitnami의 demo를 apps 폴더에 복사한다.
sudo cp -r /opt/bitnami/docs/demo /opt/bitnami/apps/wordpress
복사한 폴더에서 예제 사이트 내용을 삭제한다.
sudo rm -rf /opt/bitnami/apps/wordpress/htdocs/
그리고 wordpress를 다운받아 서버에 저장한다.(wget을 이용할 경우 한글로 변경해야하는 번거로움이 있기 때문에 다운받아 설치함)
~/temp에 워드프레스를 저장하여 진행한다.
파일 압축을 푼다.
sudo tar zxvf ~/temp/wordpress-4.9.4-ko_KR.tar.gz -C /opt/bitnami/apps/wordpress/
압축푼 파일을 기존 htdocs 폴더명으로 변경한다.
sudo mv /opt/bitnami/apps/wordpress/wordpress/ /opt/bitnami/apps/wordpress/htdocs/
그리고 권한을 변경해 준다. (추후 테마 업로드 등을 위해서)
sudo chown -R bitnami:daemon /opt/bitnami/apps/wordpress/htdocs/
sudo find /opt/bitnami/apps/wordpress/htdocs/ -type d -exec chmod 775 {} \;
sudo find /opt/bitnami/apps/wordpress/htdocs/ -type f -exec chmod 664 {} \;
wordpress의 config 파일에 직접 업로드 방식이 가능하도록 코드를 추가한다.
sudo echo "define ( 'FS_METHOD', 'direct' );" >> /opt/bitnami/apps/wordpress/htdocs/wp-config.php
최초 접속으로 설정을 변경할 수 있도록 하기 위해 아래 명령을 실행한다.
sudo chmod 640 wp-config.php /opt/bitnami/apps/wordpress/htdocs/wp-config.php
sudo chown bitnami:daemon /opt/bitnami/apps/wordpress/htdocs/wp-config.php
demo에 사용된 코드에서 demo 명칭을 wordpress로 변경한다.
sudo sed -i 's/demo/wordpress/g' /opt/bitnami/apps/wordpress/conf/nginx-prefix.conf
sudo sed -i 's/demo/wordpress/g' /opt/bitnami/apps/wordpress/conf/nginx-vhosts.conf
마지막으로 설정된 값을 적용한다.
적용할 파일명은 /opt/bitnami/nginx/conf/bitnami/bitnami-apps-prefix.conf 이며,
이 파일에 추가할 코드는 아래와 같다.
include "/opt/bitnami/apps/wordpress/conf/nginx-prefix.conf";
그리고, wordpress의 경우 rewirte가 적용이 되어야 하므로,
/opt/bitnami/apps/wordpress/conf/nginx-app.conf 파일에
아래 코드를 추가한다.
if (!-e $request_filename)
{
rewrite ^/wordpress/(.+)$ /wordpress/index.php?q=$1 last;
}
코드를 넣을 위치를 모를 경우도 있어 전체코드를 아래 적는다.
index index.php index.html index.htm;
if (!-e $request_filename)
{
rewrite ^/wordpress/(.+)$ /wordpress/index.php?q=$1 last;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_read_timeout 300;
fastcgi_pass unix:/opt/bitnami/php/var/run/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
워드프레스 운영이 시작된 후 고유주로를 글 이름으로 했을 때 문제가 생길 경우에는
rewrite ^/wordpress/(.+)$ /wordpress/index.php?q=$1 last;
아래에 아래 코드를 추가하면 된다.
rewrite ^(.+)$ /index.php?q=$1 last;
이제 DB를 생성한다.
DB 생성은 mysql 명령어로 mysql 서버에 접속해 진행한다.
mysql -u root -p
를 입력하고 서버 생성시 확인한 비밀번호를 입력한다.
(비밀번호는 ~/bitnami_application_password 에서 확인 가능하다.)
wordpress DB 생성
create database bitnami_wordpress;
권한을 준다
grant all privileges on bitnami_wordpress.* to '계정명'@'localhost' identified by '비밀번호';
여기서 계정명은 추후 워드프레스만들 때 DB 계정명으로 사용된다.
DB 설정이 끝났으므로 DB 접속을 끝낸다.
exit;
마지막으로 nginx 설정을 한다.
nginx의 업로드 용량을 올려준다.
/opt/bitnami/nginx/conf/nginx.conf 파일에서
아래 코드를 추가한다.
client_max_body_size 20m;
더 큰 용량을 원할 경우 더 큰 값을 입력한다. m은 MB(메가바이트)를 의미한다.
추가할 위치를 포함해 적는다.
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 20m;
client_body_temp_path "/opt/bitnami/nginx/tmp/client_body" 1 2;
이제 nginx를 재시작 하면 된다.
sudo /opt/bitnami/ctlscript.sh restart nginx
이제 http://서버IP/wordpress 에 접속한다.
나머지 세팅 값을 입력한다.
Database Name: bitnami_wordpress
User Name: 계정명
Password: 비밀번호
Database Host: localhost
Table Prefix: wp_
나머지 워드프레스 설정을 하고 마치게 된다.