AWS EC2에 nginx 기반의 WordPress 설정하기

무료로 제공되는 아마존 EC2 서버에 워드프레스를 설치하려면 MySQL과 PHP가 있어야한다. 일단 기본 EC2 서버에는 아무것도 없기 때문에 일일이 다 설치해야하는데 여간 귀찮은게 아니다. 그래서 나는 nginx, mysql, php-fpm 설치는 여기 codingsteps.com에 있는 것 그대로 실행했다. 그런데 앞에 링크 그대로 실행하면 nginx 설정 때문에 문제가 발생한다. 원인은 바로

sudo nano /etc/nginx/conf.d/default.conf

위 명령어를 통해 새로 생성한 default.conf 설정 때문인데 location을 사실 server 설정 안으로 들어가야한다. 따라서 default.conf에 있는 location 설정에 server를 감싸거나 아니면 default.conf 파일을 만들지말고 그냥 nginx.conf 파일을 열어서 server 설정에 다음과 같이 location 설정을 직접 추가하면 된다.

location ~ ^(.+\.php)(.*)$ {
    fastcgi_split_path_info     ^(.+\.php)(.*)$;
    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO $fastcgi_path_info;
    include        fastcgi_params;
}

심볼릭 링크 만들기

ln -s [기존 원본 파일 또는 디렉토리] [새로만들 링크 이름]

EC2계정(ec2-user)의 홈 디렉토리에 웹서버와 연결된 심볼릭 링크를 만들어두면 관리가 편한다.

$> ln -s /var/www/html/ www

이젠 www 폴더에 워드프레스를 설치하자. 나는 기존에 백업해둔 wp/ 폴더를 통째로 옮겼다. 따라서 www/ 하위에 이제 wp/ 폴더가 생긴상태다.

www(/var/www/html/)
  ├⎯⎯⎯ wp/

폴더 권한 정리

nginx 서버는 nginx 라는 계정으로 실행되게끔 설정되어 있기 때문에 www 폴더에 nginx가 접근가능하도록 파일권한을 열어줘야한다. 본래 /var 하위에 있는 모든 폴더는 root:root 소유의 755 권한으로 되어 있기 때문에 ec2-user 계정으로 접근할수는 있지만 파일을 생성하거나 수정하려면 항상 sudo를 붙여야했다. 나는 이게 영 귀찮아서 root 소유의 폴더를 과감히 nginx 유저와 ec-user 그룹에게 소유권을 넘기고 권한을 아래와 같이 바꿨다.

$> sudo chown -R nginx /var/www/html
$> ls -al /var/www/html
drwxrwxr-x 3 nginx ec2-user 4096  6월  4 05:17 .
drwxr-xr-x 6 root  root     4096  6월  4 02:22 ..
-rw-rw-r-- 1 nginx ec2-user    5  6월  4 05:00 index.html
drwxr-xr-x 6 nginx ec2-user 4096  5월  7 02:32 wp

위와 같이 설정을 바꿔주고 서버도 실행했겠다. 접근해보려고 IP를 입력해서 브라우저로 열어보면 이상하게 안열린다. 이유는 EC2 서버의 기본 방화벽에는 80 포트가 열려있지 않기 때문이다.

EC2 서버의 80포트 접근권한 열어주기

이건 뭐 서버 AWS 콘솔로 들어가서 시큐리티 권한에 inbound를 추가해주면 된다. 설명은 생략한다.

데이터베이스 연결하기

나는 기존에 운영하던 워드프레스 서버를 AWS로 옮겨왔기 때문에 워드프레스 설정은 생략한다. 일단 백업해둔 DB를 복원하고 기존 DB에 동일하게 유저를 생성하면 일단 접속은 잘 된다.

도메인 연결

나처럼 기존에 도메인을 사용했던 사람들은 새 서버에 도메인 연결까지 연결해야 제대로 사이트가 보일것이다. 기본적으로 워드프레스는 도메인 이름을 DB에 저장해놓고 URL에 붙여서 링크를 만들기 때문에 IP로 연결하더라도 사실상 소스보기 해보면 죄다 도메인으로 링크가 생성됨을 알수있다. 즉, 도메인 연결까지 해야 워드프레스 사이트가 열릴것이다.

불꽃남자

UI 개발자

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.