moi today > IT > AWS > LEMP (4) PHP (php7.4-fpm) 설치하고 Nginx 설정하기

LEMP (4) PHP (php7.4-fpm) 설치하고 Nginx 설정하기

앞서 엔진엑스(Nginx 1.18)을 설치했습니다. 이제 웹서버가 PHP를 이해하고 사용할 수 있게 해주기 위해서 PHP-fpm을 설치해주어야 합니다. PHP도 동시에 설치됩니다. 이제 아마존 라이트세일에 들어가서 SSH에 접속합니다. 인스턴스에 들어가서 SSH를 사용하여 연결을 눌러줍니다.

PHP-fpm 설치하기

먼저 설치하려고 하는 PHP 버전을 확인해봅니다. 아래 명령어를 입력하니 설치할 수 있는 PHP 버전이 7.4로 나오네요.

apt-cache policy php

다음으로 설치를 해줍니다.

sudo apt-get install php7.4-fpm

설치가 잘 되었다면 다음으로 중요 모듈을 설치해주겠습니다.

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

이제 설치된 PHP버전을 확인해보려면 다음 명령어를 입력해보시면 됩니다.

php -v

이제 설치가 완료되었으니 php-fpm을 시작시켜 줍니다.

sudo service php7.4-fpm start

Nginx 설정하기

PHP-fpm을 사용하기 위해서는 엔진엑스(Nginx) 설정파일을 수정해주어야 합니다. SFTP에서 이를 수정하기 위해서는 먼저 해당 파일의 권한을 수정해주어야 합니다. 엔진엑스의 설정파일은 다음 경로에 있습니다.

/etc/nginx/sites-available/default

이 디폴트 파일의 유저그룹과 파일권한을 바꾸어주겠습니다.

sudo chgrp ubuntu /etc/nginx/sites-available/default
sudo chmod 664 /etc/nginx/sites-available/default

위 명령어를 입력한 뒤 이제 FTP 프로그램으로 접속해서 default 파일을 열어봅니다. 43번째 줄에 있는 부분부터 아래와 같이 입력해주면 됩니다.

  • index 뒤에 index.php 추가
  • try_files $uri $uri/ 뒷부분의 -404를 “/index.php?$args;”로 바꾸기 (이후 워드프레스 퍼머링크:고유주소 변경 오류를 막기 위해서입니다.)
  • location ~ \.php$ { … 이 블록을 그대로 복사-붙여넣기
  • location ~ /\.ht { … 이 블록을 그대로 복사- 붙여넣기
# Add index.php to the list if you are using PHP
	index index.php index.html index.htm index.nginx-debian.html;

	server_name _;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ /index.php?$args;
	}
	
	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;
    }

이렇게 설정을 마치고 저장한 후에는 문법 에러가 없는지 확인을 해야 합니다.

sudo nginx -t

에러가 없다면 “syntax is ok” “successful” 메세지가 출력됩니다.

이제 Nginx를 재시작해줍니다.

sudo service nginx restart

Nginx가 PHP를 잘 해석해서 작동하지는 살펴봐야겠죠? SFTP 프로그램으로 /var/www/html 폴더 안에 index.php 를 만들고 아래 내용을 추가한 후 저장합니다.

<?php phpinfo(); ?>

자신의 서버 아이피로 접속해 다음과 같은 화면이 뜨면 성공입니다.

PHP 타임존 설정

이제 PHP 에서 사용될 시간대를 설정해줍니다. 수정할 파일은 아래 두 개 입니다.

  • /etc/php/7.4/fpm/php.ini
  • /etc/php/7.4/cli/php.ini

이 파일을 SFTP에서 접속해서 수정하려면 권한을 수정해야 합니다. 아래 명령어로 수정가능하게 권한을 줍니다.

sudo chmod 777 /etc/php/7.4/fpm/php.ini

작업을 마치고나면 수정권한을 다시 원래대로 해놓는 게 좋습니다.

sudo chmod 664 /etc/php/7.4/fpm/php.ini

두 파일을 열어서 [date] 를 검색해 해당 부분을 찾은 뒤,

date.timezone = Asia/Seoul 로 수정한 뒤 각각 저장합니다.

그 후 PHP-fpm을 재시작해줍니다.

sudo systemctl restart php7.4-fpm

다시 웹브라우저로 서버 아이피에 접속해 date 항목을 확인하면 아래와 같이 나옵니다.

이제 /var/www/html 안에 있는 파일을 다 지워줍니다. 서버 아이피 등등 정보가 많이 들어있는데 일부러 노출시켜서 좋을 게 없습니다.

AWS 인스턴스 스냅샷 만들기

이제 데이터베이스를 설치하기 전에 백업을 하나 만들어둡니다. 데이터베이스 설치에서 문제가 생기기도 하는데, 그럴 경우 새로운 인스턴스를 생성하면서 만들어둔 스냅샷을 사용하면 지금까지의 단계를 다시 밟지 않아도 됩니다. 저도 데이터베이스 설치 후 워드프레스 설치가 원활히 되지 않아 다시 이 단계로 돌아와 작업을 했습니다. 꼭 스냅샷을 만들어두시길 권장합니다.

인스턴스에 들어가 스냅샷을 누르면 다음과 같은 페이지가 뜹니다. + 스냅샷 생성 버튼을 누르면 스냅샷 이름을 정하고 저장을 할 수 있습니다. 이름을 정하고 생성을 누르면 약간의 시간이 흐른 뒤 저장이 완료됩니다.

다음으로는 마리아 DB를 설치해보겠습니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다