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 |