说起来,前段时间我的一个老项目,就是那种自己平时捣鼓着玩的小网站,突然就打不开了。一开始我都没在意,心想可能是网络卡了,或者浏览器抽风。可刷新了好几遍,电脑也重启了,它还是一副“爱搭不理”的样子。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.icu
点过去一看,浏览器里不是一片空白,就是直接把PHP代码给显示出来了,完全没有解析。我当时的心情,简直是五味杂陈,这可把我急坏了。这网站虽然小,但好歹也是我折腾了很久的心血!
没办法,坐那儿挠了半天头,我只好撸起袖子,一步步地自己排查起来。凭着之前的一些经验,我大概总结出了这么几个我去排查的步骤,今天就给大家伙儿聊聊我是怎么一步步找到问题的。
检查你的Web服务器有没有正常运行
我遇到的第一个情况,很多时候是Web服务器自己没启动。你想,PHP文件要通过Apache或者Nginx这些Web服务器才能被浏览器访问到。如果服务器本身就没开,那PHP文件自然就打不开。我当时就想着,是不是昨晚更新了什么系统,把服务器给搞停了?
- 查看服务器状态: 我打开终端,敲了一段命令,大概就是那种能看Apache或者Nginx服务状态的。比如我用的是Apache,就去敲了查看Apache状态的指令。结果一看,Apache是跑着,绿油油的一片,说明没问题。
- 尝试重启服务器: 虽然显示正常运行,但我还是不死心,就想着干脆给它重启一下,万一是僵尸进程?于是又敲了重启Apache的命令,然后去浏览器刷新,结果还是一样,没啥用。
确认你的PHP环境是否配置妥当
既然Web服务器没问题,那矛头自然就指向了PHP本身。PHP解析器才是真正把那些代码变成我们看到网页的关键。我的怀疑就转向了PHP是不是没跟Web服务器接好头,或者PHP自己出了什么毛病。
- 新建一个测试PHP文件: 我在网站的根目录下,随手搞了个名叫的文件。里面就写了一行最简单的PHP代码,就是那个能显示PHP详细配置信息的
<?php phpinfo(); ?>。 - 访问测试文件: 写好之后,我立刻在浏览器里访问这个。结果?它也是一片空白,或者更离谱的,直接把我写的这行代码原封不动地显示出来了!这就说明,Web服务器根本就没有把这个文件当成PHP来解析,它就当成普通文本给展示了。这时候我心头一紧,问题八成就在PHP这儿了。
- 检查Web服务器的PHP模块加载情况: 我赶紧去翻了Apache的配置文件(或者啥的)。一番寻找,果然,我发现里面有那么一行是用来加载PHP模块的(比如
LoadModule php_module modules/*这种)。仔细一看,这行不知道啥时候被我注释掉了!就是前面多了一个号!我估计是上次手欠,改了什么东西,不小心给注释掉了。 - 检查PHP-FPM服务状态: 我这个项目用的是PHP-FPM来处理PHP请求的。虽然Apache跑着,但我还怀疑是不是PHP-FPM这个服务自己没启动。于是我又去终端敲了命令,查看PHP-FPM的服务状态。这一看,好家伙,它居然是“死”的,完全没在运行!
找到病根,对症下药!
看到PHP-FPM是死的,我心里咯噔一下,但同时也松了口气。起码知道问题出在哪里了!
- 启动PHP-FPM服务: 没说的,立刻敲命令把PHP-FPM服务启动起来。
- 保存配置并重启Web服务器: 确认PHP-FPM起来了之后,我又把之前在Apache配置文件里注释掉的那行
LoadModule给去掉了号,保存好文件。为了让Web服务器能重新加载配置,老老实实地把它重启了一遍。
大功告成,柳暗花明!
忐忑不安地回到浏览器,深吸一口气,然后鼠标轻轻一点,刷新了那个打不开的页面。
“噌”的一下,熟悉的页面就跳了出来!网站的内容都正常显示了,功能也一切正常。我当时那个高兴,真是如释重负。
这一下午的折腾,也让我明白了一个道理:遇到问题别慌,一步步地去排查,先大方向后小细节,总能找到症结所在。尤其是这种后台服务的问题,服务有没有跑起来,配置对不对,这些都是最基础,也最容易被忽视的地方。分享给大家,希望能帮到有类似情况的朋友们!