尝试修复损坏的WordPress

导语:

WordPress升级了6.0之后突然崩溃无法使用,表现是在发布文章或者编辑文章界面停止加载,且界面没有任何内容显示,想着这应该是官方的锅,就想等着官方发布修复吧,可是等了一个星期也不见发布更新,然后尝试禁用插件,更换主题都没有办法解决这个问题,然后尝试自救

如何解决?

登录白塔面板,打开错误日志,还真的发现了一些东西

2022/06/01 15:22:26 [error] 17273#0: *1786577 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught DivisionByZeroError: Division by zero in /www/wwwroot/blog.vdake.cc/wp-includes/functions.php:493
Stack trace:
#0 /www/wwwroot/blog.vdake.cc/wp-includes/media-template.php(287): size_format()
#1 /www/wwwroot/blog.vdake.cc/wp-includes/class-wp-hook.php(307): wp_print_media_templates()
#2 /www/wwwroot/blog.vdake.cc/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters()
#3 /www/wwwroot/blog.vdake.cc/wp-includes/plugin.php(476): WP_Hook->do_action()
#4 /www/wwwroot/blog.vdake.cc/wp-admin/admin-footer.php(78): do_action()
#5 /www/wwwroot/blog.vdake.cc/wp-admin/post.php(369): require_once('...')
#6 {main}
  thrown in /www/wwwroot/blog.vdake.cc/wp-includes/functions.php on line 493" while reading upstream, client: 43.132.170.118, server: blog.vdake.cc, request: "GET /wp-admin/post.php?post=90&action=edit HTTP/2.0", upstream: "fastcgi://unix:/tmp/php-cgi-80.sock:", host: "blog.vdake.cc", referrer: "https://blog.vdake.cc/wp-admin/edit.php"

顺着这个线索一直来到这个地方

emmmm….看起来像是一个库函数除以0崩溃了 那好办,一坨锡搞定

的确,成功修复了问题,这段代码也不知道是为什么服务的,先将就用吧,等待官方发布更新吧。

更新没有修复这个问题

今天(1个月后)更新了v6.0.1,现象依旧,于是想着这个会不会是仅仅我个人的问题,不是普遍性的问题所以官方没有修复?

于是开始自己着手解决问题,为了清晰思路,还写了一遍原因分析,链接直达

另外说明一下,上面的修复,可以编辑文章了,但是不能打开媒体库查看图片,发布的文章也不能居中。

2022/07/13 09:58:22 [error] 20580#0: *2422797 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught DivisionByZeroError: Division by zero in /www/wwwroot/test-wp.neje99.com/wp-includes/functions.php:493
Stack trace:
#0 /www/wwwroot/test-wp.neje99.com/wp-includes/media-template.php(287): size_format()
#1 /www/wwwroot/test-wp.neje99.com/wp-includes/class-wp-hook.php(307): wp_print_media_templates()
#2 /www/wwwroot/test-wp.neje99.com/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters()
#3 /www/wwwroot/test-wp.neje99.com/wp-includes/plugin.php(476): WP_Hook->do_action()
#4 /www/wwwroot/test-wp.neje99.com/wp-admin/admin-footer.php(78): do_action()
#5 /www/wwwroot/test-wp.neje99.com/wp-admin/upload.php(111): require_once('...')
#6 {main}
  thrown in /www/wwwroot/test-wp.neje99.com/wp-includes/functions.php on line 493" while reading upstream, client: 43.132.170.118, server: test-wp.neje99.com, request: "GET /wp-admin/upload.php HTTP/2.0", upstream: "fastcgi://unix:/tmp/php-cgi-80.sock:", host: "test-wp.neje99.com", referrer: "https://test-wp.neje99.com/wp-admin/about.php"

仔细阅读才发现,真正的错误是在functions.php:493这里,上次只是修复了一处调用的地方,并没有修复这个函数,导致所有调用了这个函数的其他地方都崩溃,这也就解释了无法打开媒体库了,糊涂啊

好让我们来看看是哪个函数在捣蛋,定位到493行的这个函数

经过我debug之后发现了问题所在
这个是一个将字节转换成容易识别的单位函数,比如 1048576B 转换成 1GB
看到上面在v6.0.0版本的时候添加了YB 和 ZB选项(神TM要用这么大的单位??)
但是下面的 YB_IN_BYTES 和 ZB_IN_BYTES = 0
修复它也很简单,只需要将这两个注释掉就可以了
具体为什么=0的原因无法知道,这次就修复到这里

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇