最近,我将一个在PHP 5.6.2上创建的站点转移到了一个使用PHP 7.0.29的新主机上。网站运转良好,前端看起来应该正常,但当我试图访问仪表板时,我看到了白色的死亡屏幕。
Wordpress安装在4.9.5版本是最新的,所有插件在复制站点进行传输时都是最新的。
为了解决此问题,我尝试了以下方法,然后尝试了以下方法:
我检查并增加了PHP的内存限制,禁用了所有插件,但结果保持不变。
接下来,我在wp config中启用了调试模式。php-但未报告任何错误。
define( \'WP_DEBUG\', true );
然后,我用PHP 5.6将该站点安装在另一台服务器上,它运行得很好。
PHP 7是否有可能破坏Wordpress?如果您有任何关于下一步尝试的想法,或者任何遇到类似安装问题的人的建议,我们将不胜感激。
最合适的回答,由SO网友:Clinton 整理而成
经过大量测试和相当大的挫折之后,我发现了这个问题。我将此解决方案包括在内,希望它可以在其他人遇到类似问题时为他们节省大量的挫折。
问题是是否存在PHP结束标记“>;\'在函数中。子主题的php文件。问题不在于结束标记本身,而在于结束标记后的空行甚至空格。这将作为HTML发送到浏览器,并中断Wordpress,因为如果在运行此函数之前向浏览器发送任何内容,header()函数将失败。重定向到登录页面将不起作用,并且没有任何可显示的内容(除了空行或空格),因此将显示WSOD(白色死亡屏幕)。
我想我应该更早地了解这个,但作为使用“”关闭php脚本>;\'是相当标准的做法,我相信可能其他人也会在不经意间遇到类似的问题。它也是very curious that the closing tag on functions.php worked on a server with PHP 5.6 but not on a server with PHP 7. 我接受服务器上的其他设置,但最好的做法是不要在函数中使用结束标记。php文件。
我的建议是,检查你的功能。如果您有一个关闭的phptag,那么将其删除(即使它现在可以工作),因为它是不需要的标记,并且可能会导致以后很难识别的问题。
最后,下面是我的检查列表(按顺序),如果您在移动或更改Wordpress安装后获得WSOD:
检查您的功能。php文件,如果有结束标记,则删除(不需要)通过将插件目录重命名为pluginsX之类的东西来关闭所有插件-检查这是否解决了问题如果这样做了,那么错误就出现在其中一个插件中。将目录重新命名为原来的目录,然后确定问题出在哪个插件上检查分配给PHP的内存限制,必要时增加这些限制如果这些都不起作用,请重命名主题文件-Wordpress然后将恢复为默认主题TwentyEleven在这之后,它应该会工作,因为您回到了Wordpress的基本功能。但是,如果仍然存在问题,请进行调试。
我希望这能帮助并节省其他人很多时间和很多挫折。