WordPress上传图片错误:不是合法的JSON响应解决办法
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">前言</a></li><li><a href="#_label1">一、错误审视</a></li><li><a href="#_label2">二、PHP模块开启和参数设置</a></li><ul class="second_class_ul"><li><a href="#_lab2_2_0">1. 修改扩展文件的路径</a></li><li><a href="#_lab2_2_1">2. 修改扩展文件</a></li><li><a href="#_lab2_2_2">3. 设置默认的时区</a></li><li><a href="#_lab2_2_3">4. 设置 ssl</a></li><li><a href="#_lab2_2_4">5. 开启php短标签</a></li><li><a href="#_lab2_2_5">6. 以CGI模式运行PHP</a></li><li><a href="#_lab2_2_6">7. 取消一些配置注释</a></li></ul><li><a href="#_label3">三、验证错误是否已经解决</a></li><ul class="second_class_ul"></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>前言</h2><p>最近在进行WordPress迁移至新服务器的过程中,遭遇到一个棘手的问题,即在编辑文章并上传图片时,不断遭遇“此响应不是合法的JSON响应”的错误。经过多次验证和搜索,最终确定问题的根本原因并不在于禁用 Gutenberg 编辑器或安装经典编辑器插件,而是由于一些 PHP 模块未被正确开启。本文将详细介绍在 PHP 安装后应该开启哪些模块以及相应的开启方法。</p>
<p class="maodian"><a name="_label1"></a></p><h2>一、错误审视</h2>
<p>错误如下:</p>
<p>在使用 Gutenberg 编辑器进行复制粘贴或上传图片时,出现了上述错误。值得注意的是,若首先将图片上传至媒体库,再从媒体库添加图片,则不会遇到此问题。因此,很多攻略建议禁用 Gutenberg 编辑器或安装经典编辑器插件,但这些方法只是治标不治本,未能找到问题的真正根源。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/202408080929271.jpeg" /></p>
<p>正确的解决方法是开启php必要的模块设置:</p>
<p class="maodian"><a name="_label2"></a></p><h2>二、PHP模块开启和参数设置</h2>
<p>编辑 php.ini,里面有很多配置要修改</p>
<p class="maodian"><a name="_lab2_2_0"></a></p><h3>1. 修改扩展文件的路径</h3>
<p>打开 php.ini 文件,寻找以下配置:</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/202408080929272.png" /></p>
<div class="jb51code"><pre class="brush:ps;">;extension_dir = "ext"</pre></div>
<p>把 ;extension_dir = “C:\php\ext” 前面的分号去掉,然后引号里改成ext文件夹的绝对路径。</p>
<div class="jb51code"><pre class="brush:ps;">extension_dir = "“C:\php\ext"</pre></div>
<p class="maodian"><a name="_lab2_2_1"></a></p><h3>2. 修改扩展文件</h3>
<p>修改需要加载的扩展文件,取消部分扩展程序的注释(注释就是分号)</p>
<p>找到扩展程序的部分</p>
<div class="jb51code"><pre class="brush:ps;">;extension=php_exif.dll
;extension=php_gd2.dll
;extension=php_gettext.dll</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/202408080929273.jpeg" /></p>
<p>修改后如下:</p>
<div class="jb51code"><pre class="brush:plain;">extension=php_exif.dll
extension=php_gd2.dll
extension=php_gettext.dll</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/202408080929274.png" /></p>
<p class="maodian"><a name="_lab2_2_2"></a></p><h3>3. 设置默认的时区</h3>
<p>找到这个部分:</p>
<div class="jb51code"><pre class="brush:plain;">;date.timezone =</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/202408080929275.png" /></p>
<p>修改问Asia/Shanghai,如图</p>
<div class="jb51code"><pre class="brush:plain;">date.timezone = Asia/Shanghai</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/202408080929276.png" /></p>
<p class="maodian"><a name="_lab2_2_3"></a></p><h3>4. 设置 ssl</h3>
<p>找到这个部分(我的是在文件末尾)</p>
<div class="jb51code"><pre class="brush:plain;">;openssl.cafile=</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/202408080929277.jpeg" /></p>
<p>修改为cacert.pem,如图:</p>
<div class="jb51code"><pre class="brush:plain;">openssl.cafile=cacert.pem</pre></div>
<p><img alt="apache027 - WordPress上传图片错误:不是合法的JSON响应" src="https://img.jbzj.com/file_images/article/202408/202408080929288.jpeg" /></p>
<p class="maodian"><a name="_lab2_2_4"></a></p><h3>5. 开启php短标签</h3>
<p>找到如下部分:</p>
<div class="jb51code"><pre class="brush:plain;">; short_open_tag</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/202408080929289.jpeg" /></p>
<p>去掉注释,改为:</p>
<div class="jb51code"><pre class="brush:plain;">short_open_tag = on</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/2024080809292810.png" /></p>
<p class="maodian"><a name="_lab2_2_5"></a></p><h3>6. 以CGI模式运行PHP</h3>
<p>找到如下部分:</p>
<div class="jb51code"><pre class="brush:plain;">; cgi.force_redirect = 1</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/2024080809292811.jpeg" /></p>
<p>取消注释,改为:</p>
<div class="jb51code"><pre class="brush:plain;">cgi.force_redirect = 0</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/2024080809292812.png" /></p>
<p class="maodian"><a name="_lab2_2_6"></a></p><h3>7. 取消一些配置注释</h3>
<p>找到如下部分:</p>
<div class="jb51code"><pre class="brush:xhtml;">; fastcgi.impersonate = 1</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/2024080809292813.jpeg" /></p>
<p>取消注释,改为:</p>
<div class="jb51code"><pre class="brush:plain;">fastcgi.impersonate = 1</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/2024080809292814.jpeg" /></p>
<p>在fastcgi的下面,找到:</p>
<div class="jb51code"><pre class="brush:plain;">; cgi.rfc2616_headers = 1</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/2024080809292815.jpeg" /></p>
<p>取消注释:</p>
<div class="jb51code"><pre class="brush:plain;">cgi.rfc2616_headers = 1</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/2024080809292816.jpeg" /></p>
<p>我们把修改好的php.ini文件复制一份,放到 C盘 的 windows 文件夹下。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/2024080809292817.jpeg" /></p>
<p class="maodian"><a name="_label3"></a></p><h2>三、验证错误是否已经解决</h2>
<p>经过验证,问题已经得到解决!现在,在编辑文章并上传图片时,再也不会遭遇“此响应不是合法的JSON响应”的错误。这些 PHP 模块的正确设置确保了系统对于编辑器的正常运行,提升了 WordPress 在新服务器上的稳定性和可用性。通过本文提供的步骤,你可以轻松解决类似问题,确保 WordPress 在迁移过程中顺利运行。</p>
頁:
[1]