Ubuntu 20.04 LTS 에 워드프레스 설치하기 – PHP-FPM 설치 및 설정

이번편에서는 앞서 작성했던 글에 이어서 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 설치를 진행하겠습니다.

 

————————————————–

사이트 리뉴얼중입니다~

서버(Linux, ESXi), NAS(헤놀로지, ESXi 및 IT관련 정보, 기타 등등을 공유하는 커뮤니티 SVRFORUM을 새로 만들었습니다.
많은 가입(?) 부탁드립니다~
https://svrforum.com

이전글들은 모두 상단 메뉴의 Blog 글 모음에있습니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

홈서버 IT 커뮤니티 SVRFORUM
Link