구축

Rocky 9.2 - PHP-FPM(FastCGI)

상석하대 2023. 10. 2. 17:41

PHP-FPM (FastCGI Process Manager)는 PHP엔진이다.

PHP CGI모드 보다 성능이 우수하다.

PHP 서버라고 해도 무방하다.

WEB과 분리(TCP/IP 연결)해서 WAS로 구현해도 좋다.

여기는 WEB과 동일(Unix Socket 연결)한 시스템에서의 구축이다.

***TCP/IP 스택이 제거된 Unix Socket이 더 나은 성능을 낸다.

이전 글(Rocky 9.2 - PHP)의 연장이다.

 

【설치】

dnf install -y php-fpm

 

【기동 및 확인】

systemctl enable php-fpm
systemctl start php-fpm
systemctl status php-fpm

 

【FPM 설정】

/etc/php-fpm.conf 파일이다.

별로 손 댈 것은 없으니 그냥 기본값으로 쓴다.

필요한 경우 로그의 레벨 정도만 바꾼다.

 

【POOL 설정】

cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.org
vi /etc/php-fpm.d/www.conf

[www]
user = apache
group = apache
listen = /run/php-fpm/www.sock
listen.acl_users = apache
listen.allowed_clients = 127.0.0.1

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 36
pm.max_requests = 500

access.log = /var/log/$pool.access.log
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
slowlog = /var/log/php-fpm/www-slow.log
request_slowlog_timeout = 5
catch_workers_output = yes

php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache

***위와같이 편집, 정리한다.

systemctl restart php-fpm.service

***프로세스 확인

ls -al /run/php-fpm

 

【가상호스트 설정】

***예) vi /etc/httpd/conf.d/localhost.conf

ProxyPassMatch ^/(.*\.php(/.*)?)$ "unix:/run/php-fpm/www.sock|fcgi://localhost/var/www/html"

***예2) vi /etc/httpd/conf.d/sinanda.co.kr.conf

ProxyPassMatch ^/(.*\.php(/.*)?)$ "unix:/run/php-fpm/www.sock|fcgi://sinanda.co.kr/var/www/sinanda.co.krhtml"

systemctl restart httpd.service

 

【Cache 설정】

빠른 응답을 도모하기 위해서 컴파일된 PHP코드를 메모리에 적재한다.

***혹시, PHP 모듈 설치에서 누락됐다면 dnf install php-opcache를 실행한다.

설치되면 기본적으로 활성화된다.

vi /etc/php.d/10-opcache.ini

...
opcache.memory_consumption=128
...
opcache.interned_strings_buffer=8
...
opcache.max_accelerated_files=10000
...

***위 옵션의 주석을 풀고 값을 조정한다.

systemctl restart php-fpm.service

 

【Apache 프록시 조정】

vi /etc/httpd/conf.modules.d/00-proxy.conf

***다음을 추가한다.

ProxyRequests Off
ProxyErrorOverride
On ProxyTimeout 600
ProxyPreserveHost On

***ProxyRequests Off는 역프록시이다.

systemctl restart httpd.service

반응형

'구축' 카테고리의 다른 글

Rocky 9.2 - phpMyAdmin  (0) 2023.10.03
Rocky 9.2 - mariaDB  (0) 2023.10.02
Rocky 9.2 - PHP  (0) 2023.10.01
Rocky 9.2 - Apache 가상호스트 - https 설정  (0) 2023.09.30
Rocky 9.2 - Apache 가상호스트 - 계정별  (0) 2023.09.26