WordPress上传图片错误:不是合法的JSON响应
最近在进行WordPress迁移至新服务器的过程中,遭遇到一个棘手的问题,即在编辑文章并上传图片时,不断遭遇“此响应不是合法的JSON响应”的错误。经过多次验证和搜索,最终确定问题的根本原因并不在于禁用 Gutenberg 编辑器或安装经典编辑器插件,而是由于一些 PHP 模块未被正确开启。本文将详细介绍在 PHP 安装后应该开启哪些模块以及相应的开启方法。
一、错误审视
错误如下:
在使用 Gutenberg 编辑器进行复制粘贴或上传图片时,出现了上述错误。值得注意的是,若首先将图片上传至媒体库,再从媒体库添加图片,则不会遇到此问题。因此,很多攻略建议禁用 Gutenberg 编辑器或安装经典编辑器插件,但这些方法只是治标不治本,未能找到问题的真正根源。
正确的解决方法是开启php必要的模块设置:
二、PHP模块开启和参数设置
编辑 php.ini,里面有很多配置要修改
1. 修改扩展文件的路径
打开 php.ini 文件,寻找以下配置:
;extension_dir = "ext"
把 ;extension_dir = “C:\php\ext” 前面的分号去掉,然后引号里改成ext文件夹的绝对路径。
extension_dir = "“C:\php\ext"
2. 修改扩展文件
修改需要加载的扩展文件,取消部分扩展程序的注释(注释就是分号)
找到扩展程序的部分
;extension=php_exif.dll ;extension=php_gd2.dll ;extension=php_gettext.dll
修改后如下:
extension=php_exif.dll extension=php_gd2.dll extension=php_gettext.dll
3. 设置默认的时区
找到这个部分:
;date.timezone =
修改问Asia/Shanghai,如图
date.timezone = Asia/Shanghai
4. 设置 ssl
找到这个部分(我的是在文件末尾)
;openssl.cafile=
修改为cacert.pem,如图:
openssl.cafile=cacert.pem
5. 开启php短标签
找到如下部分:
; short_open_tag
去掉注释,改为:
short_open_tag = on
6. 以CGI模式运行PHP
找到如下部分:
; cgi.force_redirect = 1
取消注释,改为:
cgi.force_redirect = 0
7. 取消一些配置注释
找到如下部分:
; fastcgi.impersonate = 1
取消注释,改为:
fastcgi.impersonate = 1
在fastcgi的下面,找到:
; cgi.rfc2616_headers = 1
取消注释:
cgi.rfc2616_headers = 1
我们把修改好的php.ini文件复制一份,放到 C盘 的 windows 文件夹下。
三、验证错误是否已经解决
经过验证,问题已经得到解决!现在,在编辑文章并上传图片时,再也不会遭遇“此响应不是合法的JSON响应”的错误。这些 PHP 模块的正确设置确保了系统对于编辑器的正常运行,提升了 WordPress 在新服务器上的稳定性和可用性。通过本文提供的步骤,你可以轻松解决类似问题,确保 WordPress 在迁移过程中顺利运行。