最近在进行WordPress迁移至新服务器的过程中,遭遇到一个棘手的问题,即在编辑文章并上传图片时,不断遭遇“此响应不是合法的JSON响应”的错误。经过多次验证和搜索,最终确定问题的根本原因并不在于禁用 Gutenberg 编辑器或安装经典编辑器插件,而是由于一些 PHP 模块未被正确开启。本文将详细介绍在 PHP 安装后应该开启哪些模块以及相应的开启方法。


一、错误审视

错误如下:

在使用 Gutenberg 编辑器进行复制粘贴或上传图片时,出现了上述错误。值得注意的是,若首先将图片上传至媒体库,再从媒体库添加图片,则不会遇到此问题。因此,很多攻略建议禁用 Gutenberg 编辑器或安装经典编辑器插件,但这些方法只是治标不治本,未能找到问题的真正根源。

wpupload001 - WordPress上传图片错误:不是合法的JSON响应

正确的解决方法是开启php必要的模块设置:


二、PHP模块开启和参数设置

编辑 php.ini,里面有很多配置要修改

1. 修改扩展文件的路径

打开 php.ini 文件,寻找以下配置:

apache021 - WordPress上传图片错误:不是合法的JSON响应

;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

apache022 - WordPress上传图片错误:不是合法的JSON响应

修改后如下:

​extension=php_exif.dll
extension=php_gd2.dll
extension=php_gettext.dll

apache023 - WordPress上传图片错误:不是合法的JSON响应


3. 设置默认的时区

找到这个部分:

;date.timezone =

apache024 - WordPress上传图片错误:不是合法的JSON响应

修改问Asia/Shanghai,如图

date.timezone = Asia/Shanghai

apache025 - WordPress上传图片错误:不是合法的JSON响应


4. 设置 ssl

找到这个部分(我的是在文件末尾)

;openssl.cafile=

apache026 - WordPress上传图片错误:不是合法的JSON响应

修改为cacert.pem,如图:

openssl.cafile=cacert.pem

apache027 - WordPress上传图片错误:不是合法的JSON响应


5. 开启php短标签

找到如下部分:

; short_open_tag

apache028 - WordPress上传图片错误:不是合法的JSON响应

去掉注释,改为:

short_open_tag = on

apache029 - WordPress上传图片错误:不是合法的JSON响应


6. 以CGI模式运行PHP

找到如下部分:

; cgi.force_redirect = 1

apache030 - WordPress上传图片错误:不是合法的JSON响应

取消注释,改为:

cgi.force_redirect = 0

apache031 - WordPress上传图片错误:不是合法的JSON响应


7. 取消一些配置注释

找到如下部分:

; fastcgi.impersonate = 1

apache032 - WordPress上传图片错误:不是合法的JSON响应

取消注释,改为:

fastcgi.impersonate = 1

apache033 - WordPress上传图片错误:不是合法的JSON响应

在fastcgi的下面,找到:

; cgi.rfc2616_headers = 1

apache034 - WordPress上传图片错误:不是合法的JSON响应

取消注释:

cgi.rfc2616_headers = 1

apache035 - WordPress上传图片错误:不是合法的JSON响应

我们把修改好的php.ini文件复制一份,放到 C盘 的 windows 文件夹下。

apache036 - WordPress上传图片错误:不是合法的JSON响应


三、验证错误是否已经解决

经过验证,问题已经得到解决!现在,在编辑文章并上传图片时,再也不会遭遇“此响应不是合法的JSON响应”的错误。这些 PHP 模块的正确设置确保了系统对于编辑器的正常运行,提升了 WordPress 在新服务器上的稳定性和可用性。通过本文提供的步骤,你可以轻松解决类似问题,确保 WordPress 在迁移过程中顺利运行。

更多推荐