说一件比较糟心的事情(关于PHP)

因为之前有一个项目是基于PHP5.6开发的,因为客户反映运行速度太慢,于是想办法提升速度,还记得之前有讲过PHP7的效率比PHP5高很多,于是打算先升级PHP版本(PHPStudy中自带的7.2.10)看看,在本地升级了PHP环境之后,项目直接报500错误,一直以为是项目中可能使用了PHP7不支持的内容,于是开始着手检查项目的跨版本兼容性,这也是今天上午写使用PHPCompatibility进行PHP跨版本兼容性检查的原因,最终检查结果没有任何语法错误和兼容性问题,但始终都是500错误,apache日志记录[PS:我自己的日志被我清理了,这是网络上找的,时间,IP,pid不一样,其他内容一致]

[Thu May 05 17:15:20.696222 2016] [core:error] [pid 21132:tid 1724] [client 127.0.0.1:60080] End of script output before headers: index.php

查了半天资料,试了各种办法,最终也没能解决。

最后看到一个坛友说可能是phpstudy集成的7.2.10有问题,于是恍然大悟,去php官方下载了7.2.21,这是一个稳定版,然后修改apache配置X:\phpStudy\PHPTutorial\Apache\conf\extra\httpd-php.conf内容,只需要修改FcgidInitialEnv和FcgidWrapper的路径

LoadModule fcgid_module modules/mod_fcgid.so
<IfModule fcgid_module>
Include conf/extra/httpd-fcgid.conf
FcgidInitialEnv PHPRC "D:/phpStudy/PHPTutorial/php/php-7.2.21-nts/"
AddHandler fcgid-script .php
FcgidWrapper "D:/phpStudy/PHPTutorial/php/php-7.2.21-nts/php-cgi.exe" .php
</IfModule>

完成之后按理环境是没有问题的,结果apache却起不来了,也没有记录错误报告,于是又去手动查看错误日志,结果显示httpd.conf配置错误,最后多出了几个</IfModule>

注:在命令行中直接运行httpd.exe就会打印错误信息到屏幕。

处理完毕,启动apache成功,再查看项目,也可以正常运行。为了处理这个500错误浪费了太多时间,不过还好的是学会了如何使用phpcs,也算是福祸相依吧!!

总结:遇到问题,应该从多方面检查,当某一条路费时费力不讨好的时候,尝试换一条路走,可能会发现原来那条路原来是一条死路也说不一定。

发表评论