以下是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和最小权限原则。