近在使用WordPress的一个主题Motor时,发现了一个问题,就是后台加载一个插件的时候报错“admin-ajax.php 500 Error
”,而且插件内容一直无法打开。具体报错如下:
查看PHP日志:
[Thu Mar 10 09:25:23.846274 2022] [proxy_fcgi:error] [pid 3744047:tid 140624594425600] [client 114.218.92.4:3699] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught Error: Class 'WP_Filesystem_Direct' not found in /var/www/******/web8/web/wp-content/themes/motors/inc/visual_composer.php:6846\nStack trace:\n#0 /var/www/******/web8/web/wp-includes/class-wp-hook.php(307): vc_stm_icons()\n#1 /var/www/******/web8/web/wp-includes/plugin.php(189): WP_Hook->apply_filters()\n#2 /var/www/******/web8/web/wp-content/plugins/js_composer/include/params/iconpicker/iconpicker.php(121): apply_filters()\n#3 /var/www/******/web8/web/wp-content/plugins/js_composer/include/params/iconpicker/iconpicker.php(164): Vc_IconPicker->render()\n#4 /var/www/******/web8/web/wp-content/plugins/js_composer/include/params/params.php(97): vc_iconpicker_form_field()\n#5 /var/www/******/web8/web/wp-content/plugins/js_composer/include/helpers/helpers_api.php(819): WpbakeryShortcodeParams::renderSettingsField()\n#6 /var/www/******/web8/web/wp-content/plugins/js_composer/include/classes/editors/cl...', referer: http://******.com/wp-admin/post.php?vc_action=vc_inline&post_id=297&post_type=page
试了网上的一些方法依然无法解决,后回想了一下在出现这个问题之前,自己做了哪些更改。
大的变动是将WordPress的站点文件权限全部变更了。使用了一个命令:chmod -R 777 <文件夹>
,导致文件的所有权都归root用户了。
后来使用命令:chown -R web8 /var/www/clients/client2/web8/web
,把所有者更改了回来。
了解更多chown
命令参考:Linux chown 命令
更改回来后,WordPress恢复正常,报错“admin-ajax.php 500 Error”消失了。
所以很奇怪,第一次遇到WordPress站点,更改了文件所有者,会导致WordPress部分插件不能正常使用。