WordPress 博客程序登录的时候在登录页面中出现“Cookies因预料之外的输出被阻止。”的提示,其他连带的症状还有:会在页面顶部输出错误代码行的提示,错误信息基本上是“headers already sent by”,无法使用wordpress密码找回功能,进入后台后无法在线安装插件等不正常现象发生。
出现这种问题的最常见的是使用了阿里云的虚拟主机用户,主要原因是服务器没有开启“输出缓冲区数据块”。
所以解决问题的方式是开启之,阿里云虚拟主机的用户可以访问阿里云后台,进入虚拟主机的管理页面,然后点击“高级环境设置”->“PHP.ini设置”,在PHP环境参数设置中点击开启“输出缓冲区数据块设置”,然后保存即可。
对于其他Apache服务器,可以直接修改 php.ini 文件来开启。编辑 php.ini 文件,找到 output_buffering ,设置值为 ON ,保存后重启 Apache,即可生效。
什么是输出缓冲区数据块
在没有开启缓冲区的情况下,执行 header() 函数的时候,浏览器收到之后会直接执行,如果后续再次使用 header 方法,则浏览器会提示,我已经收到过 header 了,不要在发过来了,就会提示“headers already sent by” 的错误。如果这个时候开启了 php 的缓存,则 header 数据会首先存放在缓存中,等到执行完成全部代码后,一次性全部发送给浏览器,就会避免出现多次发送 header 的问题。
WordPress 出现这种情况,主要是主题的 function.php 文件中有出现过重定向的代码,如果没有开启缓存而执行到了重定向的代码,则会报错。比如说如果主题中设置了后台登录保护代码,就可能会出现这个问题。
同样,开启输出缓冲区功能可以解决在手机版 WordPress 无法登陆后台的错误。无法通过该URL读取WordPress站点。
转自:有野出没:https://www.yelook.com/1933.html