아마존 라이트세일 워드프레스 설치(3) PHP , NGINX 설치

지난 글에서는 아마존 라이트세일의 서버 인스턴스 생성하는 방법을 정리해봤습니다. 이번 글에서는 워드프레스를 실행하기 위한 웹서버인 nginx 설치와 php를 설치하겠습니다.

아마존 라이트세일 터미널로 접속하기

아마존 라이트세일 서버 인스턴스로 SSH 접속하는 방법은 Putty, 윈도우 터미널로 키파일을 통해 접속할 수 있습니다. 하지만, 이번 라이트세일 워드프레스 설치 글에서는 아마존에서 제공하는 웹 터미널을 통해 간편하게 접속하는 방법을 기준으로 작성하겠습니다.

단, 이럴 경우 복사 붙여넣기 시 살짝 불편할 수 있으므로, 혹시 그 부분이 불편하다면 터미널 접속 프로그램으로 접속하는 방법으로 접속하시기 바랍니다.

서버 인스턴스 목록에서 서버 이름 옆에 터미널 아이콘이 있습니다. 이 아이콘을 클릭하면 터미널로 접속됩니다.

또는, 서버 이름을 클릭하면 서버 인스턴스 연결 페이지가 나오게 됩니다. 이 페이지의 SSH를 사용하여 연결 버튼을 클릭하면 해당 서버 인스턴스로 터미널 연결이 됩니다.

아마존 라이트세일 터미널 접속하여 서버 업데이트 / 시간대 설정

터미널에 접속하면 검은색 터미널 창이 뜨게 됩니다. 서버의 기본적인 사용량등의 정보가 나오네요. 현재 40기가중 3.3%를 사용하고 있다고 나오는데요. 스냅샷(백업)을 할 경우 40기가바이트를 백업하지 않고 이렇게 실 사용량을 기준으로 백업되며 추가 비용도 실 사용용량 기준으로 청구됩니다.

처음 접속하면 서버 업데이트를 해주는 것이 좋습니다.

sudo apt update

위의 명령어를 입력하면 설치된 프로그램들의 업데이트 정보를 받아오게 됩니다. sudo는 관리자 권한으로 실행하라는 리눅스 명령어 입니다. 업데이트가 되었다면 업데이트된 정보로 업그레이드를 해보겠습니다.

sudo apt upgrade

업그레이드 중이라는 텍스트가 엄청 많이 올라갑니다. 중간에 Y / n 선택지가 나온다면 Y를 입력하거나 엔터 키를 입력하면 됩니다. 설치 도중에 Configuring grub-pc라는 대화창이 뜨는데요. 하이라이트 된 2번째 선택지인 Keep the local version currently installed 에 놓고 엔터키를 누르면, 진행률이 표시되며 설치가 완료 됩니다.

라이트세일 시간대 변경

sudo dpkg-reconfigure tzdata

위의 명령어를 입력합니다. 현재 시간대는 GMT + 0에 맞춰져 있는데요. 이것을 한국 표준시로 맞추겠습니다. Configuring tzdata 대화창에서 Asia – Seoul 를 찾아 선택합니다.

라이트세일에 NGINX 설치하기

먼저 NGINX를 설치해 보겠습니다.

sudo apt-cache policy nginx

Installed 에 (none)으로 되어 있다면, 아직 nginx가 설치되지 않은 것입니다. 아래의 명령어를 입력해서 nginx를 설치해 보겠습니다.

sudo apt install nginx
sudo service nginx start

라이트세일에 PHP 설치하기

이제 php를 설치해 보겠습니다. 아래와 같이 입력해 보겠습니다.

sudo apt-cache policy php

현재 라이트세일 서버에 설치가 되어있다면 설치된 Installed에 설치된 버전이 보여지게 되는데요. 위의 화면에서처럼 (none)으로 나오면 설치가 되지 않은 것입니다. 그렇다면 php를 설치해 주어야 하는데요. 현재 최신 버전은 Candidate : 에서 볼 수 있습니다. 위의 화면에서는 7.4가 최신 버전이네요. 아래의 명령어를 입력해서 설치하겠습니다.

sudo apt install php7.4-fpm
sudo apt install php7.4-cli php7.4-curl php7.4-gd php7.4-mysql php7.4-mbstring php7.4-xml zip unzip

php7.4-fpm을 설치했다면 그 외의 필요한 것을 같이 설치해 줍니다. 이제 설치가 끝났다면, 설치가 잘 됐는지 확인하고 php를 실행하겠습니다.

php -v

php 7.4.3이 잘 설치되었습니다. 이제 아래 명령어를 입력하여 php를 실행하겠습니다.

sudo service php7.4-fpm start

PHP, NGINX가 잘 설치되었는지 확인해 볼까요?

이전 글에서 라이트세일 인스턴스와 고정IP를 연결해 두었을텐데요. 혹시 IP 주소 기억하시나요? 기억이 안난다면, 라이트세일 페이지에서 만든 서버 인스턴스 아래에 IP주소(123.123.123.123 의 형태)가 연결되어 있는 것을 볼 수 있습니다. 해당 주소를 복사해서 웹브라우저 붙여 넣으면, 만든 서버 인스턴스로 접속이 가능합니다.

웹브라우저에 아래와 같이 뜨면 NGINX가 잘 설치된 것입니다.

php가 잘 설치되었는지 확인해보기 전에 timezone 설정을 하겠습니다.

아래와 같이 입력해보겠습니다.

sudo nano /etc/php/7.4/fpm/php.ini

위와 같이 입력하면 nano 편집기로 파일이 열리게 됩니다. 여기서 date.timezone 를 찾아야 하는데요. nano 편집기에서 텍스트를 찾을때는 컨트롤키 + W 로 찾을 수 있지만, 라이트세일의 웹 터미널 창을 사용할때 해당키를 입력하면 창이 꺼지게 됩니다. 대신 사용하는 키가 있는데요. 이때는 F6를 입력하면 찾기 상태가 되며 timezone 을 입력하면 찾는 부분이 나타납니다.

;date.timezone = 이라고 되어 있는 부분 앞의 ; 를 지우고 아래와 같이 써줍니다.

date.timezone = Asia/Seoul

이제 저장을 해주겠습니다. 컨트롤키 + X 를 누르면 저장하겠냐고 나오는데요. 여기서 엔터키를 한번 눌러주면 저장이 되며 다시 프롬프트 상태가 됩니다.

같은 작업을 한번 더 해줘야 하는데요. 아래와 같이 입력해 주겠습니다.

sudo nano /etc/php/7.4/cli/php.ini

nano 편집기로 열어 위와 같이 timezone을 수정하고 저장하고 닫아줍니다.

이제 php가 정상적으로 작동하는지 테스트해 보겠습니다. 먼저 테스트용 index.php를 만들어 보겠습니다.

sudo nano /var/www/html/index.php

파일에 아래 처럼 입력하고 저장합니다.

<?php phpinfo(); ?>

누군가 접속하면 php 파일을 보여주도록 설정해줘야 하는데요. nginx의 default 설정파일에서 수정할 수 있습니다.

sudo nano /etc/nginx/sites-available/default
중간 쯤에 index 라는 부분이 보이는데요 index.html 이라고 쓴 부분 앞에 index.php 를 입력해 줍니다. 또한, # pass PHP scripts to FastCGI server 앞에 아래의 내용을 붙여 넣습니다.
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params;
    fastcgi_read_timeout 300;
}
location ~ /\.ht {
    deny all;
}

전체적인 default 설정 파일 내용은 아래와 같이 되겠습니다.

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 
    root /var/www/html; 
    index index.php index.html index.htm index.nginx-debian.html ; 
    server_name _;

    location / {
      try_files $uri $uri/ =404; 
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/run/php/php7.4-fpm.sock;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params; 
       fastcgi_read_timeout 300;
    }

   location ~ /\.ht {
     deny all;
   }
}

이제 nginx 를 다시 실행해 보겠습니다. 먼저 설정파일에 이상이 없는지 체크부터 해보겠습니다.

sudo nginx -t

위의 화면처럼 syntax is ok 라고 나오면 이상없이 저장된 것입니다. 만약, 에러메세지가 나온다면, 설정 파일을 다시 한번 살펴 보세요.

이제 nginx 를 다시 실행해 보겠습니다.

sudo service nginx restart

이제 브라우저를 통해 확인해 보겠습니다. 서버 인스턴스에 연결된 고정IP 주소를 다시 한번 웹브라우저에 넣어볼까요.

위와 같은 화면이 보인다면, php와 nginx가 잘 설치된 것입니다. 이번 글에서는 nginx 설치와 php를 설치했습니다. 다음 글에서는 mysql을 설치해 보겠습니다.

PC 버전으로 보기