Ubuntu 22 에 php(php-fpm) 8.1 설치 및 최적화.
안녕하세요. 달소입니다.
이번편도 Ubuntu 22에서 워드프레스나 기타 php 사이트를 운영할 수 있도록 셋팅하는 준비단계인 php설치 단계입니다.
php-fpm은 nginx와 짝꿍처럼 동작하기때문에 nginx 설치가 안되어있다면 아래글을 참고해서 설치해주세요.
이번 Ubuntu 22에서는 php버전이 기본 8.1로 되어있기 때문에 기존에 7.4로 설치하셨던 경험이있으시다면 숫자만 잘바꿔주셔도 됩니다 ㅎ
필수모듈까지 같이설치해보겠습니다~
PHP-FPM 설치하기
apt install -y php8.1-fpm php8.1-gd php-json php8.1-mysql php8.1-curl php8.1-mbstring php8.1-intl php-imagick php8.1-xml php8.1-zip
설치가 완료되면 php -v 명령어로 버전확인이 가능합니다.
php-fpm 설정하기
php가 동작하는 방식을 여기서는 두가지 방법중 하나로 선택할 수 있습니다.
먼저 소켓으로 통신하는 소켓통신 방법과
IP로 통신하는 IP통신 방법입니다.
이걸 공부했을때가 좀 오래됐는데.. IP가 낫다고 기억해서.. 저는 ip로 진행하겠습니다.
vi /etc/php/
8.1
/fpm/pool.d/www.conf
의 내용중에 listen= 을찾아서 수정하면 됩니다.
겸사겸사 최적화 설정도 진행하도록 하겠습니다.
PHP 최적화(프로세스)
vi /etc/php/8.1/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
다시 재시작 시켜주고 프로세스를 확인해보면 이렇게 기본 프로세스가 12개로 되어있는걸 확인하실 수 있습니다.
PHP 최적화(메모리 및 업로드 크기)
vi /etc/php/8.1/fpm/php.ini
들어가서 차례 차례 수정해주면 됩니다. // 메모리, 용량은 용도에 맞춰
memory_limit = 1024M
post_max_size = 128M
upload_max_filesize = 128M
이것도 바꾸고 서비스를 재시작해주면 적용됩니다.
nginx 설정파일 변경
nginx php를 읽을수있게하려면 설정파일을 변경해야합니다.
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;
}
}
위 파일을 수정한 뒤 nginx 를 재시작한번해주세요.
service nginx restart
php 테스트하기
테스트는 php 파일을 샘플로 만들어서 진행하겠습니다.
default 의 root 경로에 넣어주면 됩니다.
저같은 경우 /var/www/html 입니다
mkdir -p /var/www/html
vi /var/www/html/index.php
내용은 간단하게 아래 복붙
<?php
phpinfo();
?>
이제 nginx테스트때처럼 웹으로 ip를 접속해봅니다.
이렇게 php info 페이지가 잘 나오면 정상입니다.
여기에 db까지 구성하면 워드프레스를 간단하게 구축하실 수있습니다~