이번편에서는 앞서 작성했던 글에 이어서 nginx에서 php 파일을 읽을 수 있도록 php-fpm 을 설치해보도록 하겠습니다.
php-fpm 설치는 매우 단순하나 nginx설정을 비롯해서 최적화 과정이 복잡하기 때문에 차분하게 따라오시면 됩니다.
php-fpm 설치하기(모듈 포함)
이전에는 apt에서 설치하면 7.2버전이 디폴트였는데 어느새 7.4가 디폴트네요.
apt install -y php7.4-fpm php7.4-gd php7.4-json php7.4-mysql php7.4-curl php7.4-mbstring php7.4-intl php-imagick php7.4-xml php7.4-zip
설치가 완료됐으면 php -v
명령어를 입력하면 설치확인이 가능합니다.
php-fpm 설정하기
php가 동작하는 방식을 여기서는 두가지 방법중 하나로 선택할 수 있습니다.
먼저 소켓으로 통신하는 소켓통신 방법과
IP로 통신하는 IP통신 방법입니다.
이걸 공부했을때가 좀 오래됐는데.. IP가 낫다고 기억해서.. 저는 ip로 진행하겠습니다.
vi /etc/php/7.4/fpm/pool.d/www.conf
의 내용중에 listen= 을찾아서 수정하면 됩니다.
그리고 service php7.4-fpm restart
로 재시작.netstat -lntp
로 수신확인.
겸사겸사 최적화 설정도 진행하도록 하겠습니다.
PHP 최적화(프로세스)
vi /etc/php/7.4/fpm/pool.d/www.conf
들어가서 /pm = dynamic으로 찾고 아래와같이 수정해줍니다.
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18
설정 완료 후 service php7.4-fpm restart
로 재시작 시켜주고ps -ef | grep php
로 확인해주면 아래처럼 변경된걸 확인할 수 있습니다.
PHP 최적화(메모리 및 업로드 크기)
vi /etc/php/7.4/fpm/php.ini
들어가서 차례 차례 수정해주면 됩니다. // 메모리, 용량은 용도에 맞춰memory_limit = 1024M
post_max_size = 128M
upload_max_filesize = 128M
변경 후에 다시 service php7.4-fpm restart 명령어를 하고 확인해줍니다.
nginx 설정파일 변경
nginx는 설정파일을 변경해야합니다.
vi /etc/nginx/conf.d/default.conf
upstream php-handler {
server 127.0.0.1:9000;
}
server {
client_max_body_size 128M;
listen 80;
listen [::]:80;
root /var/www/html;
index index.php index.html index.htm;
server_name 서버 IP;
access_log /var/log/nginx/web.access.log main;
error_log /var/log/nginx/web.error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
#include /etc/nginx/snippets/fastcgi-php.conf;
fastcgi_pass php-handler;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params; fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}
위 파일을 수정한뒤 테스트를 진행하겠습니다
php 테스트하기
테스트는 php 파일을 샘플로 만들어서 진행하겠습니다.
default 의 root 경로에 넣어주면 됩니다.
저같은 경우 /var/www/html 입니다
mkdir -p /var/www/html
vi /var/www/html/index.php
내용은 간단하게 아래 복붙
<?php
phpinfo();
?>
그리고 웹으로 IP를 쳐서 들어가보겠습니다.
정상작동되는걸 확인할 수 있습니다.
여기까지가 2부입니다~
3부는 LEMP스택의 마지막 MariaDB 설치를 진행하겠습니다.