宝塔(BT)面板-Nginx如何开启PHP报错

使用宝塔(BT)面板搭建的 LNMP 环境(L:Linux,N:Nginx,M:MySQL,P:PHP),本地测试代码时,没有发现什么问题,但是,放到服务器上时就出现 500 错误了,没有任何错误提示,查看日志,也只能看到 500,很是纳闷,然后Goole查了些资料,在这里做一个笔记。

首先:

Q: 什么是PHP-CGI ?

A: GI即通用网关接口(Common Gateway Interface),它是一段程序,通俗的讲CGI就象是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现。

CGI方式在遇到连接请求(用户 请求)先要创建cgi的子进程,激活一个CGI进程,然后处理请求,处理完后结束这个子进程。这就是fork-and-execute模式。所以用cgi方式的服务器有多少连接请求就会有多少cgi子进程,子进程反复加载是cgi性能低下的主要原因。都会当用户请求数量非常多时,会大量挤占系统的资源如内 存,CPU时间等,造成效能低下。

Q: 什么是PHP-FPM ?

A: 大家都知道,PHP的解释器是PHP-CGI。PHP-CGI只是个CGI程序,他自己本身只能解析请求,返回结果,不会进程管理(皇上,臣妾真的做不到啊!)所以就出现了一些能够调度PHP-CGI进程的程序,比如说由LightHttpd分离出来的SPAWN-FCGI。

好了PHP-FPM也是这么个东东,在长时间的发展后,逐渐得到了大家的认可(要知道,前几年大家可是抱怨PHP-FPM稳定性太差的),也越来越流行。

PHP-CGI与PHPH-FPM的区别:

PHP-CGI是被调用的进程,PHP-FPM是配置和管理进程的。

Nginx如何开启PHP报错:

1.修改 php.ini 开启报错

#查找 php.ini 文件
find / -name php.ini

可能会看到如下结果:

执行find / -name php.ini命令

然后修改 php.ini 文件(自己应该知道要修改那个文件吧...不知道就全改),我代码是运行在PHP7.1环境下报错500的,所以我就修改这个路径的php.ini文件:/www/server/php/71/etc/php.ini

vi /www/server/php/71/etc/php.ini

进入编辑状态后,按 / 键,输入 display_errors = On,然后按 Enter 键,如果出现如图左下角的提示: #按 / 键,输入 display_errors = On,然后按 Enter键

按 / 键,输入 display_errors = Off,然后按 Enter 键,就可能会跳转到如图所示的地方: 按 / 键,输入 display_errors = Off,然后按 Enter 键

然后按 a 键,进入编辑状态,然后把绿色光标移动到最后面:

进入编辑状态,然后把绿色光标移动到最后面

然后按两次删除键,删除 ff,然后输入 n ,这样就表示开启PHP报错:

按两次删除键,删除 ff,然后输入 n

然后按 ESC 键,输入 :wq ,然后按 Enter 键,退出编辑并状保存:退出编辑并状保存


如果输入 display_errors = On,然后按 Enter 键,如果没有出现如图左下角的提示: #按 / 键,输入 display_errors = On,然后按 Enter键

那么你直接忽略这步修改 php.ini 的操作

2.修改 php-fpm.conf 文件

###找到php-fpm.conf路径
find / -name php-fpm.conf

请输入图片描述

然后输入 vi php-fpm.conf的路径,进入编辑状态,然后按 a 键,把光标移动到最后一行,再按数字键坐上位置的 End 键,按回车,然后添加: php_flag[display_errors] = on请输入图片描述

然后按 ESC 键,输入 :wq ,然后按 Enter 键,退出编辑并状保存

3.最后重启PHP-FPM读取配置文件即可(不会自己搜)。


如无特别声明,该文章均为 现在网NowTime.cc)原创,转载请遵循 署名-非商业性使用 4.0 国际(CC BY-NC 4.0) 协议,即转载请注明文章来源。


标签: PHP, Nginx

赞 (0)

添加新评论