优化Linux下PHP配置文件(php.ini)的核心步骤
-1(无限制)导致内存溢出。修改后需通过memory_get_usage()监控实际消耗,确保峰值在限制内。set_time_limit()调整。upload_max_filesize(如10-32M)和post_max_size(略大于上传大小,如32M),适配业务需求。OPcache是PHP代码编译缓存的关键扩展,能显著减少脚本编译时间。需在php.ini中添加/修改以下参数:
[opcache]
zend_extension=opcache.so # 启用扩展(Linux路径)
opcache.enable=1 # 开启OPcache
opcache.enable_cli=1 # 允许CLI模式使用
opcache.memory_consumption=128 # 缓存内存大小(MB,根据服务器内存调整)
opcache.interned_strings_buffer=8 # 内部字符串缓存(MB)
opcache.max_accelerated_files=4000 # 最大加速文件数(根据项目文件量调整)
opcache.revalidate_freq=60 # 文件修改检查频率(秒,生产环境可设为0)
opcache.fast_shutdown=1 # 快速关闭,释放资源
启用后需通过opcache_get_status()验证缓存命中率。
若使用PHP-FPM(推荐),需调整www.conf(路径如/etc/php/7.x/fpm/pool.d/www.conf)中的进程参数,平衡并发与资源占用:
服务器总内存 / 单个PHP进程内存(如16G内存、单个进程256M,则设为64)。pm.max_children的1/4-1/2(如64则设为16-32)。disable_functions,禁用exec、system、shell_exec等函数(除非业务需要)。expose_php=Off,避免暴露服务器PHP版本信息。allow_url_fopen=Off、allow_url_include=Off,防止远程文件包含攻击。在php.ini中设置zlib.output_compression=On,开启Gzip压缩(需服务器支持),可将HTML/CSS/JS文件压缩至原大小的30%-70%,提升页面加载速度。
调整会话参数,避免会话文件过多占用磁盘:
php-redis扩展)。通过php.ini中的extension=指令,禁用未使用的模块(如xdebug、gd(若无需图片处理)),减少内存占用。
sudo cp /etc/php/7.x/fpm/php.ini /etc/php/7.x/fpm/php.ini.bak)。sudo systemctl restart php7.x-fpm或sudo service apache2 restart)。top、htop、New Relic)监控服务器资源使用情况,根据实际情况调整参数。