因为godaddy一直提示php7.4的支持已经结束,在红点的折磨下终于决定要将站点升级到php8,升级倒是很简单,因为是托管在Godaddy上,所以点击一下切换php版本就可以了。
升级完之后,发现网站无法访问了,提示报错,难受……版本切回去又要收红点折磨,于是决定还是解决一下这个报错。
在切换回7.4之后,尝试关闭插件、切换主题然后再次升级php8几次之后,其他插件都正常,发现是主题的问题。
我的主题是Pinghsu,本来是个Typecho主题,来源于https://github.com/chakhsu/pinghsu,后来我在网上搜了一下,有人将这个主题做了一个wordpress版本的,我就拿来用了,Typecho那边的还在更新维护,但是我找的这个wordpress版本的,已经很长时间没有人维护了,直到php7.4的使用都是没有问题的,但是在PHP8上边应该还没有做各种兼容性的处理。
现在来看一下报错
[10-May-2023 09:51:29 UTC] PHP Warning: Constant WP_POST_REVISIONS already defined in /var/www/wp-content/themes/pinghsu/functions.php on line 66
[10-May-2023 09:51:29 UTC] PHP Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, function "_return_false" not found or invalid function name in /var/www/wp-includes/class-wp-hook.php:308
Stack trace:
#0 /var/www/wp-includes/plugin.php(205): WP_Hook->apply_filters(true, Array)
#1 /var/www/wp-includes/rest-api/class-wp-rest-server.php(302): apply_filters('rest_jsonp_enab...', true)
#2 /var/www/wp-includes/rest-api.php(410): WP_REST_Server->serve_request('/wpaas/v1/flush...')
#3 /var/www/wp-includes/class-wp-hook.php(308): rest_api_loaded(Object(WP))
#4 /var/www/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters('', Array)
#5 /var/www/wp-includes/plugin.php(565): WP_Hook->do_action(Array)
#6 /var/www/wp-includes/class-wp.php(399): do_action_ref_array('parse_request', Array)
#7 /var/www/wp-includes/class-wp.php(780): WP->parse_request('')
#8 /var/www/wp-includes/functions.php(1334): WP->main('')
#9 /var/www/wp-blog-header.php(16): wp()
#10 /var/www/index.php(17): require('/var/www/wp-blo...')
#11 {main}
thrown in /var/www/wp-includes/class-wp-hook.php on line 308
我直接将报错喂给了chatgpt,发现chatgpt可以看懂这个报错的内容,并且解析

chatgpt尝试去更新主题来解决问题,我跟它强调没有人在维护,只能我自己来找到这问题并进行修复,之后我将主题的源码发给了它,然后再多次纠正之后,他成功的找到了所有的错误,并且提供了修正的方法。



在将这两个错误修正后,再次将php切换到8,发现站点正常运行。
使用chatgpt来快速分析报错是可行的,并且在有一定源码支持,并且在一定程度的引导和限制下,是可以进行定位问题并进行排障的。
不过在使用chatgpt进行沟通的过程中,需要注意不要泄露密码、api秘钥等敏感信息,也最好不要输入自己的站点域名,免得出现信息泄露的风险。
本文由
coffee 创作,除注明转载/出处外,均为本站原创,转载前请务必署名
最后编辑时间为: 2024-05-10 14:47 星期五