以下是CentOS中PHP的最佳配置建议,涵盖安装、性能优化及安全:
安装PHP及扩展
使用Yum安装PHP核心及常用扩展(如MySQL、GD库等),确保依赖自动处理:
sudo yum install epel-release sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-opcache -y
配置PHP-FPM
编辑/etc/php-fpm.d/www.conf
,关键参数:
pm=dynamic
(动态调整进程数),pm.max_children
根据服务器资源设置(如50-200),pm.start_servers
建议为CPU核心数的2倍。listen=/run/php-fpm/php-fpm.sock
)提升性能,避免端口占用。user=nginx
/group=nginx
(匹配Web服务器用户),限制进程权限。启用OPcache
编辑php.ini
,添加以下配置(缓存字节码,提升执行速度):
[opcache] zend_extension=opcache.so opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60
location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
mod_proxy_fcgi
,指向PHP-FPM套接字:<FilesMatch \.php$> SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost" </FilesMatch>
内存与文件上传
memory_limit
:根据应用需求设置(如256M),避免过大导致内存占用过高。upload_max_filesize
/post_max_size
:按需调整(如100M),限制大文件上传。会话与缓存
opcache.validate_timestamps=1
(生产环境),定期验证缓存有效性。慢日志与监控
php-fpm.conf
中启用慢日志:request_slowlog_timeout=10s
,记录执行超时的请求。top
/htop
监控PHP-FPM进程资源占用,调整进程数避免过度消耗CPU/内存。禁用危险函数
在php.ini
中设置:
disable_functions=exec,system,shell_exec,passthru
(保留必要函数如shell_exec
用于系统管理时需谨慎)
限制文件访问
open_basedir
限制PHP可访问的目录范围,避免跨目录访问敏感文件。/etc/
、/root/
)。更新与补丁
定期通过yum update
升级PHP及扩展,修复安全漏洞。
info.php
测试配置:<?php phpinfo(); ?>
访问确认PHP版本、扩展加载及配置生效(测试后删除该文件)。php.ini
和Web应用代码,确保配置可追溯。参考来源:
根据服务器资源(CPU/内存)和应用场景调整参数,生产环境建议优先使用Unix套接字、OPcache和最小权限原则。