아마존웹서비스(AWS)에 워드프레스 설치하기

2021-11-26

준비

아마존웹서비스(AWS)에 워드프레스를 설치했다. 그러면서 많이 배웠다. :)

서버 관련 지식은 전무하다. 무엇부터 시작해야 할지 몰라 막막했다. 다행히 구글 검색으로 AWS 공식 자습서를 찾았다. 절반은 성공했다.

설치

처음부터 하나씩 따라가면 크게 문제될 것 없다. MySQL 데이터베이스를 만들고→엘라스틱 컴퓨트 클라우드(EC2)에서 서버 인스턴스를 만든 다음→관계형 데이터베이스(RDS)를 구성하고→워드프레스를 내려받아 설치하고 기본 설정을 잡아주면 된다. 한글과 캡처화면으로 잘 소개돼 있어, 따라하기 어렵지 않다.

몇 가지 난관이 있다. SSH 접속을 위해 터미널을 사용해야 한다. 기본적인 터미널 사용법을 숙지하고 있어야 한다. 모르는 명령어는 구글에 물어보면 된다. SSH 키도 잘 보관해둬야 한다. 터미널에서 키가 보관된 폴더로 찾아들어가 SSH 접속을 시도해야 서버에 접속할 수 있다.

문제 해결

sFTP 접속창 제거

워드프레스를 설치하고 나면, 테마와 플러그인을 설치해야 한다. 여기서 첫 번째 난관에 부딪힌다. 마음에 드는 테마나 플러그인을 고르고 ‘설치’를 누르면 난데없이 FTP 접속 창이 뜬다. 어라? 바로 설치가 돼야지. 내가 무슨 수로 AWS 서버에 FTP(또는 sFTP)로 접속한단 말인가.

파일질라 같은 프로그램을 활용해 접속하는 방법도 있지만, 터미널에 충실하기로 한다. 구글링을 해보니, AWS 서버 설정을 바꿔주면 이 과정을 건너뛰고 곧바로 플러그인·테마 설치 단계로 넘어갈 수 있다고 한다.

터미널로 SSH 접속한 다음, 아래 명령어를 넣어주면 된다.

$ sudo chown -R apache:apache /var/www/html

그런 다음 서버 재부팅.

$ sudo service httpd restart

이제 플러그인이나 테마를 설치할 때 FTP 접속창이 안 뜬다.

블록 편집기 저장 오류

곧이어 닥친 문제. 워드프레스 블록 편집기에서 글을 작성한 다음 저장 또는 발행하려 하면 저장이 안 되고 json 어쩌고 하며 에러가 뜬다. 구글링을 통해 ‘고전 편집기를 쓰라’는 둥 몇 가지 원인과 해결책을 찾았지만, 좀 복잡했고. 내가 찾은 해법은 WP가 지정해 둔 기본 글 주소를 쓰는 것. 주소 체계를 바꾸니 잘 저장되고 발행됐다. 설정→고유주소에서 ‘사용자 정의 구조’를 쓰지 말라는 얘기.

업로드 용량 제한 확대

이번엔 사진이 안 올라간다. WP 기본값이 파일 업로드 용량을 최대 2MB로 제한했기 때문이다. 이걸 서버에서 풀어줘야 하는데, 한참 헤맸다. 플러그인을 쓰는 방법도 있다고 하는데 나는 잘 안 됐다. 결국 찾은 방법은 AWS 서버의 php.ini 파일을 수정하는 것이었다. 아래처럼.

$ sudo nano /etc/php.ini # php.ini 파일 편집 모드로 들어간다.
upload_max_filesize = 100M # 한 번에 올리는 최대 파일 크기를 100MB로.
post_upload_max = 100M # 포스트 맥스 크기도 함께 올려줘야 한다.
$ sudo service httpd reload # 서버 재부팅

처음엔 upload_max_filesize만 조정해줬는데, 아무리 재부팅을 해도 적용이 안 됐다. 한참 구글링하다 거의 포기한 상태였는데, WP 대시보드 ‘사이트 건강 상태’ 메뉴에서 답을 주더라. post_upload_max 크기가 upload_max_filesize보다 작아서 파일 저장에 문제가 생길 수 있다고. 둘을 같은 크기로 맞춰주니 대용량 파일도 잘 올라간다.

이미지 편집 오류

이미지 편집 시 적용이 안 되고 에러가 뜨는 현상도 있다. 이건 호스팅 제공업체에서 PHP를 설정할 때 그래픽 관련 GD라이브러리를 제대로 설치하지 않았기 때문이라고 한다. 아무튼 서버에 GD 라이브러리를 설치해야 한다는 얘긴데.

역시 SSH 접속 후 아래 명령어를 넣으면 된다.

$ sudo yum install php-gd
PHP 업데이트

처음 AWS 안내에 따라 WP를 설치하면 PHP7.2 버전이 활성화된다. 그래서 보안에 취약하니 어쩌니 하며 대시보드에서 계속 경고를 띄운다. 7.4 이상 버전으로 업그레이드 하란다. 이것도 방법을 몰라 한참 헤맸다. 그래도 찾아내 해결했다. 여기를 참고했다.

SSH 접속 후 아래 명령어를 넣는다.

$ sudo amazon-linux-extras | grep php # 현재 활성화된 PHP 버전 확인(7.2)

아마 이런 화면이 뜰 것이다.

 15  php7.2                          enabled    \
 17  **lamp-mariadb10.2-php7.2=latest  enabled**      \
  _  php7.3                          available    \
  _  php7.4                          available    [ =stable ]
  _  php8.0                          available    [ =stable ]

활성화된 PHP 버전들을 먼저 비활성화한다.

$ sudo amazon-linux-extras disable php7.2
$ sudo amazon-linux-extras disable lamp-mariadb10.2-php7.2

이제 PHP 상위 버전을 활성화하고 관련 파일들을 설치해주면 된다.

sudo amazon-linux-extras enable php7.4
sudo yum install php php7.4-{pear,cgi,common,curl,mbstring,gd,mysqlnd,gettext,bcmath,json,xml,fpm,intl,zip,imap}

요걸로 PHP 업데이트도 끝.

이제 플러그인과 테마를 하나씩 설치해가며 제 모양을 갖춰나가는 것만 남았다. AWS에 워드프레스 설치하고 기본 문제 해결하는 건 요기까지. :)

<덧> AWS EC2 Free Tier로는 금세 용량이 차더라. 이것저것 방법을 궁리하다, 데스크톱에 우분투를 깔고 Apache2, MySQL, PHP 설치하고 워드프레스를 직접 깔았다. 켁, 또 다른 세계를 경험했다. 이에 비하면 AWS 설정은 새발의 피. 그 과정은 다음 포스트에서 소개할 예정. (배운 점 : 애플 없인 살아도 구글 없인 못 살 듯. ㅠ.ㅜ)