LNMP 一键安装包优化

本文针对LNMP一键安装包在实际部署中遇到的问题进行了详细的优化方案介绍。包括如何调整opcache提高缓存效率、如何在不泄露敏感信息的情况下启用php-fpm错误报告、解析php.ini中的错误设置,并解决502 Bad Gateway问题以及如何正确配置open_basedir限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


lnmp 作为现在phper的主流安装包, 有其自身很强大的优点. 但是安装完后, 也不是100%适配你自己的系统. 我在安装后, 对其几处不太合适的地方做了一下总结.

opcache 优化

通过 lnmp 的 addon 脚本可以安装 opcache, 但是安装完后会发现, 每次改一个文件, 总要60s 之后才生效.

修改 php.ini 中的配置项 validate_timestampsrevalidate_freq 两个选项后, 仍然不起效果.

很明显, 配置并没有生效. 那我们查找一下是否有 Additional ini 文件.

php -i | grep Additional
Additional .ini files parsed => /usr/local/php/conf.d/004-opcache.ini,

ok, 修改004-opcache.ini文件的相关选项.

php-fpm 报错设置

修改 php.ini 文件中 display_errors = On, 就可以显示错误. 但是在线上环境强烈建议关闭此选项, 防止错误信息暴露代码的路径版本等信息.

通过如下代码, 在单独业务代码+环境中启用报错.

error_reporting("E_ALL");
ini_set("display_errors","On");

解释 php.ini 其他报错设置

display_startup_errors: php 启动阶段的错误.
html_errors: 配合另外一个docref_root, 错误用 html 形式展示.

502 Bad Gateway

The proxy server received an invalid response from an upstream server.

这种情况, 未开启 PHP-fpm 报错, 导致 fpm 未发送任何信息给 nginx 就关闭和 nginx 通信. 开启报错, 就可以显示出错误.

open_basedir restriction in effect

open_basedir是 php.ini 的一个配置, 主要是限制 php 仅能访问配置目录下的文件. 可以通过 php-fpm.conf & nginx.conf 进行配置.

php web 系统中, 通常会将 index.php 文件放入 web 目录下, 其他业务代码放在其他目录. LNMP 在默认的 nginx 配置文件fastcgi.conf 中

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

修改为

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/../:/tmp/:/proc/";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值