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_


나머지 워드프레스 설정을 하고 마치게 된다.

AWS를 이용해서 VPS를 사용할 수 있다.

사실 AWS가 Amazon Lightsail을 시작한 의도가 궁금하긴 하다.


AWS를 이용해서 VPS를 할 경우에 대한 장점은

결론적으로는 1가지이다.

크게 뒤통수 칠 일 없는 서비스 보장 정도?

암튼 AWS에서 Lightsail을 이용하는 방법을 정리한다.


일단 AWS를 가입했다는 것을 가정하고 시작한다.


AWS 로그인 후 서비스 버튼을 누르게 되면

가장 첫번째로 나타난다.



컴퓨팅 -> Lightsail 을 클릭하면 된다.

Lightsail은 대시보드를 따로 제공한다.



현재 이것저것 코딩 겸 테스트용으로 올라가 있는 mysql 서비스를 볼 수 있다.

가려진 부분은 서버 주소이다.


서버를 만들 때는 우측의 인스턴스 생성 버튼을 클릭한다.


인스턴스 생성 버튼을 클릭하면

서버를 생성할 수 있게 되는데,

우선 첫번째로 지역을 선택한다.


물론 일본이 한국에서 가장 가깝고 속도가 가장 잘 나오기 때문에 일본으로 선택된(한 번 선택하면 다음에는 동일한 곳이 우선 선택되어 있다.) 것이다.

다른 위치도 설정이 가능하다.



그리고 어떤 OS, 어떤 App을 이용하게 될 것인지 선택을 한다.

기본적으로 리눅스를 제공하며,

이에 맞춰 사용 가능한 App들을 볼 수 있다.

이 App들은 binami를 이용해 자동 설치가 된다.


사족을 달자면, 일단 Nginx를 사용하는 중인데 실사해도 될 수준이긴 하다.

실제 상업용 서비스로 사용하기는 애매하긴 하지만,

간단한 커뮤니티, 홈페이지 등을 만들어 사용하기엔 충분해 보인다.

물론 상업용으로 쓰려면 AWS 자체를 사용하는 것이 훨씬 낫긴 하다.


또한 OS만 설치도 가능하다.


그리고 윈도우 서버도 사용이 가능하다.


단, 이 경우 뒤에 적을 것인데, 비용이 약 2배 가량 들게 된다.


마지막으로 성능을 선택한다.

물론 성능에 따라 가격은 바뀌게 된다.

윈도우의 경우 가격이 다르게 표시가 된다.




마지막으로 생성 버튼을 클릭하면 인스턴스가 만들어진다.


생성이 시작되면

아래와 같이 대시보드 초기 화면으로 이동하며 만들어지는 과정을 볼 수 있다.


접속하는 방법은 ssh 툴을 이용해 서버 주소로 접속하면 된다.


AWS는 특이하게도 인증서를 통한 접속만 허용하기 때문에,

ssh 인증서가 있어야 한다.


만일 서버 생성 중 대략적인 것을 알아서 key를 등록한 경우에는 그 key를 사용하면 되고,

따로 key를 등록하지 않은 경우

기본적으로 ssh 키를 하나 제공한다.


우상단의 계정을 클릭하고 계정으로 이동하면,


개인 계정 정보로 이동이 되는데,

SSH키 탭으로 가게 되면 key를 확인할 수 있다.


이제 ssh를 해당 키를 이용해 접속하면 된다.





+ Recent posts