博客又打不开了

3月份的时候博客打不开,报错500,这次又发现打不开了,还是报错500,看来这是督促我要经常更新博客或者检查啊!

记录下排查过程:

$ curl -Iv https://www.luoyingbinfen.com/
……
> HEAD / HTTP/1.1
> Host: www.luoyingbinfen.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 500 Internal Server Error
HTTP/1.1 500 Internal Server Error
< Date: Thu, 29 Jul 2021 01:04:25 GMT
Date: Thu, 29 Jul 2021 01:04:25 GMT
……

检查主机443端口是正常的

$ telnet luoyingbinfen.com 443

ssh登录到虚拟主机也正常,检查日志:

$ tail -F public_html/error_log
[16-Jul-2021 20:49:54 UTC] PHP Fatal error: Class ‘WP_HTTP_Response’ not found in /home/zs1308/public_html/wp-includes/class-wp-http-requests-response.php on line 17

……

打开这个php文件,代码粗略看了下看不出什么问题,尝试把PHP版本从5.6切换到7.3,7.4都不行。

过了几天打开网站发现是200,但是首页是空白的

$ curl -Iv https://www.luoyingbinfen.com/
……
> HEAD / HTTP/1.1
> Host: www.luoyingbinfen.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Date: Tue, 03 Aug 2021 01:15:28 GMT
Date: Tue, 03 Aug 2021 01:15:28 GMT

……

尝试联系godaddy客户,输入电话号码,提示5分钟后回拨打过来,没过5分钟果然有电话打开,显示是新加坡的,对方的普通话还可以,简单聊了几句后,表示可以发邮件给他们APACSupport@godaddy.com,我就把错误日志通过邮件发了过去。

半小时后技术支持又给我回了电话,表示把class-wp-http-requests-response.php这个文件的源码地址发给我了,备份后替换下看看,后面有什么问题再联系他们。

我把源码文件下载下来对比网站的文件,md5值相同,于是将两个文件的md5值通过邮件发给了技术支持。

$ md5sum www/wp-includes/class-wp-http-requests-response.php
884bad87875d890f9db7637bf383a47a  www/wp-includes/class-wp-http-requests-response.php
$ md5sum Downloads/class-wp-http-requests-response.php
884bad87875d890f9db7637bf383a47a  Downloads/class-wp-http-requests-response.php

但是技术支持没有给我回邮件了,那就自己排查吧。

查看文件代码后,发现这个文件不太正常,大小为0

$ ls -al wp-includes/class-wp-http-response.php
-rw-r–r– 1 zs1308 zs1308 0 May 17 2018 wp-includes/class-wp-http-response.php

备份后上传源码文件,刷新浏览器访问,还是报错:
Fatal error: Class ‘Requests_Hooks’ not found in /home/zs1308/public_html/wp-includes/class-wp-http-requests-hooks.php on line 17

上传源文件:https://core.trac.wordpress.org/browser/tags/5.8/src/wp-includes/class-wp-http-requests-hooks.php#L17

后来发现问题不在class-wp-http-requests-hooks.php文件,而是Requests目录下的Hooks.php

$ ls -al Requests/Hooks.php*
-rw-r–r– 1 zs1308 zs1308 1400 Aug 4 00:35 Requests/Hooks.php
-rw-r–r– 1 zs1308 zs1308 0 May 17 2018 Requests/Hooks.php.bak

刷新浏览器访问,还是报错:
Fatal error: Class ‘WP_Widget_Media_Gallery’ not found in /home/zs1308/public_html/wp-includes/class-wp-widget-factory.php on line 100

上传源文件:https://core.trac.wordpress.org/browser/tags/5.8/src/wp-includes/widgets/class-wp-widget-media-gallery.php#L18

$ ls -al widgets/class-wp-widget-media-gallery.php*
-rw-r–r– 1 zs1308 zs1308 7286 Aug 4 01:09 widgets/class-wp-widget-media-gallery.php
-rw-r–r– 1 zs1308 zs1308 0 May 17 2018 widgets/class-wp-widget-media-gallery.php.bak

刷新浏览器访问,网站首页恢复正常

(总结:class类报错,可以查看代码以及检查对应php文件,可以看到文件大小为0不太正常。
本次替换了三个源文件:wp-includes/class-wp-http-response.php wp-includes/Requests/Hooks.php wp-includes/widgets/class-wp-widget-media-gallery.php)

——————————————————————————————————————————

网站后台登录,新建文章等功能异常,页面显示:
有点尴尬诶。

我们可能无法找到您需要的内容。或许搜索功能可以帮到您。

 浏览器开发者模式可以看来有一个包含upgrade.php的链接出现了404的情况。

再次将web目录里面大小为0的文件筛选出来,下载源码文件替换还是不行

$ find ./ -size 0 -exec ls -lh {} \;

替换了其中两个文件:options-discussion.php,ms-admin-filters.php

通过网上搜索,尝试将wp-admin里面的.htaccess文件重命名,刷新浏览器,网站后台打开恢复正常。

参考文档:http://blog.30c.org/1395.html

后续:

把.htaccess文件还原,清理浏览器缓冲后再次测试,后台登录后发现仪表盘,新建文章等功能都正常。但有少部分功能不正常,如添加插件功能,涉及文件及链接为:
plugin-install.php https://www.luoyingbinfen.com/wp-admin/plugin-install.php。
解决办法:
将plugin-install.php|添加到plugin-editor.php后面去
将.htaccess文件复制为htaccess_example,下载下来。然后本地编辑好后再上传
zs1308@sg2plcpnl0100 [~/public_html/wp-admin]$ mv htaccess_example .htaccess
zs1308@sg2plcpnl0100 [~/public_html/wp-admin]$ chmod 444 .htaccess
zs1308@sg2plcpnl0100 [~/public_html/wp-admin]$ ls -al .htaccess*
-r–r–r– 1 zs1308 zs1308 1586 Aug 10 01:08 .htaccess
-r–r–r– 1 zs1308 zs1308 1567 Jul 17 02:05 .htaccess.bak
zs1308@sg2plcpnl0100 [~/public_html/wp-admin]$ md5sum .htaccess*
994a40ef4edb3d0a0373f44524cd01bb .htaccess
a94aa0fa7ff3ea823bf89994ab5d901f .htaccess.bak

 

 

 

Print Friendly

发表评论

电子邮件地址不会被公开。 必填项已用*标注