WordPress 6.5.3发布/更新失败:无效JSON响应求助(Ubuntu+Apache)
WordPress发布/更新文章JSON响应错误+403问题解决办法
一、先搞定装插件时的403禁止访问
检查Apache的mod_security模块
- 临时禁用测试:编辑
/etc/apache2/mods-enabled/security2.conf,把SecRuleEngine On改成SecRuleEngine Off,执行sudo systemctl restart apache2重启Apache。如果能正常装插件,就是mod_security的规则拦截了请求,后续可以针对性调整规则,或者给WP后台路径加白名单。 - 查看拦截日志:
tail -f /var/log/apache2/modsec_audit.log,找到触发拦截的规则,在规则配置里排除/wp-admin/plugin-install.php这类路径。
- 临时禁用测试:编辑
检查Apache站点目录权限配置
- 打开站点的vhost配置文件(比如
/etc/apache2/sites-available/your-site.conf),确保WP根目录的访问规则正确:<Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> - 重启Apache:
sudo systemctl restart apache2
- 打开站点的vhost配置文件(比如
二、修复JSON响应无效的问题
1. 验证AJAX请求是否正常
直接访问你的域名下的/wp-admin/admin-ajax.php,正常应该显示0。如果返回错误页面或HTML,说明请求被拦截或处理异常。
2. 调整.htaccess规则
在# BEGIN WordPress之前添加以下内容到.htaccess:
# 适配AJAX请求的HTTP头 <IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, POST, OPTIONS" Header set Access-Control-Allow-Headers "Content-Type, Authorization" </IfModule> # 确保admin-ajax.php可正常访问 <Files "admin-ajax.php"> Require all granted </Files>
保存后重新登录后台测试发布/更新。
3. 调整PHP配置限制
- 编辑PHP配置文件(Ubuntu18.04默认是
/etc/php/7.2/apache2/php.ini),修改以下参数:max_execution_time = 60 memory_limit = 256M post_max_size = 64M upload_max_filesize = 64M - 重启Apache:
sudo systemctl restart apache2
4. 统一站点URL设置
- 能进后台的话,去
设置->常规,确保WordPress地址(URL)和站点地址(URL)完全一致,且和当前访问协议(HTTP/HTTPS)匹配。 - 进不去后台的话,编辑
wp-config.php,添加:define('WP_HOME','https://你的域名'); define('WP_SITEURL','https://你的域名');
5. 切换到默认主题
通过FTP或服务器文件管理器,把当前主题文件夹重命名(比如your-theme改成your-theme-old),WP会自动切到默认主题,测试是否能正常发布,排除主题的JS冲突。
三、后续验证
解决403后,安装Classic Editor插件切换到经典编辑器,再测试发布/更新;如果还是有问题,重复上述步骤逐一排查。
内容的提问来源于stack exchange,提问作者Carlos Curiá
相关产品推荐
相关产品推荐

