WordPress定制开发、WordPress建站中出现死亡白屏怎么办?这是很多的程序师在WordPress定制开发、WordPress建站中常遇见的问题。下面北京六翼开源的王工给大家介绍一下。在少数例外情况下,WordPress或您的服务器环境中的其他地方出现了问题。更新或安装过程可能已停止,使您的站点停留在维护模式。您的托管服务提供商或您安装的插件可能已修改php.ini或.htaccess生成意外结果的文件。您现有的环境可能不支持新安装的插件的要求。
WordPress 恢复模式无法应对这些情况,但它会在原本为白色的屏幕上产生可见的错误消息。您的站点前端可能无法访问,但管理员登录屏幕和后端界面可能运行正常。
这些不是真正的WSOD 情况,但它们同样令人讨厌。通常,以下情况之一会导致它们:
1. 陷入维护模式
在更新WordPress 核心、插件或主题时,WordPress 进入“维护模式”。浏览到网站的任何部分都会显示一个灰色的屏幕和一个白色的消息窗口,上面写着:
“暂时无法进行定期维护。请稍后再回来查看。”(WordPress 维护模式)
有时这不会在一分钟内解决,但质量管理的WordPress 托管会注意到并通过自动化流程解决此问题。如果您等待了几分钟没有任何变化,您可以通过删除.maintenance安装WordPress的网站/应用程序根文件夹中的文件来退出维护模式。(要查看它,您可能需要启用查看文件名中以句点开头的“不可见”文件。)
当没有.maintenance文件时,您的站点将按预期加载。
2. 您已达到文件上传或帖子大小限制
由于您发送的数据过多,您的网站可能会在上传、发布后或表单提交过程中超时并出现白屏。
解决方案:增加您的帖子内容限制wp-config.php:
Joowp.com
ini_set('pcre.recursion_limit',20000000);
ini_set('pcre.backtrack_limit',10000000);
解决方案:增加您的文件上传和帖子大小限制php.ini:
upload_max_filesize = 256M
post_max_size = 256M
延长帖子或任何表单提交超时之前的时间(以秒为单位)也可能有所帮助。您还可以增加PHP 执行脚本和解析输入的时间。此外,我们可以增加表单提交中允许的变量数量。最后,我们可以指定 PHP 将提交的数据视为垃圾的时间限制:
最大执行时间= 300
最大输入时间= 300
最大输入变量= 1000
session.gc_maxlifetime = 1000
或在.htaccess、httpd.conf或virtualhost:
php_value upload_max_filesize 256M
php_value post_max_size 256M
php_value max_execution_time 300
php_value max_input_time 300
php_value max_input_vars 1000
php_value session.gc_maxlifetime 1000
functions.php或者在 WordPress 或主题文件的自定义代码片段中:
@ini_set( 'upload_max_filesize', '256M' );
@ini_set( 'post_max_size', '256M' );
@ini_set( 'max_execution_time', '300' );
@ini_set('max_input_time', '300' );
@ini_set('max_input_vars', '1000' );
@ini_set('session.gc_maxlifetime', '1000' );
这些参数中的内存和时间值只是建议。为确保它们正常工作并检查它们的当前值,请使用WordPress 管理界面中的站点健康工具。
除了恢复模式,WordPress 5.2及以后还引入了站点健康工具。这对于诊断问题和获取有关站点设置和服务器环境的技术信息非常有帮助。在“工具”>“站点运行状况”下的“管理菜单”中找到它。您还可以从 WordPress 的健康检查和故障排除插件中的扩展功能中受益。
3. PHP内存不足
PHP 是 WordPress 核心所基于的服务器端脚本语言。如果 PHP 没有足够的内存来运行 WordPress 和您的活动插件,则会出现 WSOD。您可能会在错误消息或日志中看到这一指示。
根据您的托管计划,您可以增加服务器上所有应用程序或特定WordPress 实例的 PHP 内存限制。如果您不确定该怎么做,请向您的托管服务商的技术支持团队寻求帮助。
wp-config.php
通常,在您的WordPress 文件夹中的文件中添加以下设置wp-config.php会将WordPress 的前端内存限制设置为 256 MB,在此示例中:
定义('WP_MEMORY_LIMIT','256M');
128 到 256 MB 应该绰绰有余。您还可以通过添加以下行来定义分配给 PHP 的最大内存或后端内存(在下一个示例中也是 256 MB)wp-config.php:
定义('WP_MAX_MEMORY_LIMIT','256M');
第二个数字是最大内存限制,定义了PHP 自身可用的总内存。第一个数字是在更大的 PHP 限制内运行的 WordPress 的内存。最大 PHP 内存限制应等于或高于 WordPress 应用程序内存限制。
文件
定义PHP 最大内存限制的另一种方法是在php.ini位于WordPress 文件夹中的文件中进行设置:
内存限制= 256M
确保行首没有分号! 请注意,php.ini只会影响在文件所在文件夹中或文件夹下运行的 WordPress(或任何其他 PHP 应用程序)实例php.ini。如果您有权访问服务器或 Web 根目录,php.ini则位于此处的文件将控制环境设置适用于所有PHP 应用程序,除非它们有自己的php.ini文件指定不同的条件。
.htaccess
.htaccess如果您使用 Apache 或 Litespeed 作为 HTTP 服务器,定义 PHP 内存限制的第三种方法是通过 WordPress 文件夹中的文件。像上面的例子一样,.htaccess 需要有一个像这样的未注释的行来设置 256 MB 的最大 PHP 限制:
php_value 内存限制 256M
wp-config.php、php.ini和中应用程序和服务器设置的语法错误.htaccess也可能导致 WSOD。如果它们破坏了您的站点,您可能需要手动更正它们或将它们替换为原始默认值。如果您使用的是 Apache 或 Litespeed 网络服务器,.htaccess那么管理它们如何运行的文件可以被许多 WordPress 插件更改。任何这些文件中引入的错误都可能引发WSOD 并导致您的站点瘫痪。
4. 你的 HTTP 服务器崩溃了
HTTP(或其加密的安全形式 HTTPS)是使 Web 服务器成为 Web 服务器的超文本传输协议。这是服务器如何根据请求向客户端(如浏览器)提供网页(HTTP 文档)。
WordPress 站点常用的 HTTP 服务器是 Apache、Litespeed 和 NGINX。它们的错误屏幕看起来略有不同,并且浏览器显示它们的方式可能有所不同,但它们都报告相同的 HTTP 错误代码。
HTTP 500 错误,也称为内部服务器错误,表示您的 HTTP 服务器出现意外问题,导致无法完成 HTTP 请求。其他5xx 服务器错误代码,尤其是502(错误网关)、503(服务不可用)和 504(网关超时),表示您的服务器过载或无法访问。500内部错误是服务器故障的一个包罗万象,导致服务器无法返回请求的页面/文档。
您的浏览器可能会提供自己独特的HTTP 错误屏幕,并且可能会显示自己的特殊错误代码。chrome://network-errors/如果您在使用Chrome 时浏览地址栏中的 ,Google Chrome(和其他基于 Chromium 的浏览器)会在内部列出并解释所有自己的错误代码。
服务器端问题
WordPress 网站常用的 HTTP 服务器软件包括 Apache、Litespeed 和 NGINX。许多 WordPress 主机将它们与缓存一起使用以最大限度地提高性能。
如果硬刷新浏览器或清除浏览器cookie 和缓存不能消除 500 错误屏幕,则您可能会获取一些错误的服务器端缓存文件。服务器端缓存在运行不佳时会引起很多混乱,因此您也应该尝试清除它。您的主机控制面板或 WordPress 管理界面可能具有缓存清除控件。
HTTP 500 错误的常见原因可能包括以下服务器端情况:
1. 已超出PHP 内存限制。
2. PHP 未设置为显示错误时的其他 PHP 错误。
3. 访问服务器文件和文件夹的权限不足。
4. .htaccess 配置文件中的语法错误。
我们已经解决了PHP 内存限制以及如何增加它们。我们将在下一节深入探讨 PHP 调试。
不正确的权限不应发生在现代管理WordPress 主机上,但它们在传统共享主机上很常见。文件应设置为 664 或 644,文件夹应设置为 775 或 755,wp-config.php 应设置为 660、600 或 644。
如果您更改了.htaccess 文件或正在使用更改它的插件(通常或缓存),您可能需要检查它是否有错误、恢复它或重新创建一个新的、有效的 .htaccess 文件。在 WordPress.org了解更多信息.htaccess。
客户端问题
HTTP 500 错误也可能由其他情况在客户端(在您的浏览器中)引起:
1. 浏览器设置不正确。
2. 损坏的缓存。
3. 在浏览器中运行的损坏的JavaScript 文件。
4. 互联网连接问题。
尝试在不同的浏览器中加载您的网站,以消除当前浏览器的问题。如果您确实遇到浏览器问题,请尝试将其重置为默认设置。禁用您安装的任何浏览器扩展程序或插件,看看它们是否与您的网站交互不良。
如果您的问题与错误的缓存文件有关,您仍然可以访问未缓存的WordPress 管理区域。如果您仍然可以登录到 WordPress 管理界面,您可以在那里使用缓存清除开关或尝试下面讨论的其他故障排除步骤。
数据库问题、WordPress 站点中的插件或主题问题或 WordPress 本身问题也可能导致 HTTP 500 错误。
要解决HTTP 500 错误,您应该为 HTTP 服务器和 PHP 打开错误日志记录。然后检查两者中出现的错误。您还可以检查并可能增加 PHP 内存限制、停用插件并切换到默认主题,以查看是否有任何这些操作可以使您的网站恢复正常。
我们将在下面更详细地介绍这些步骤。如果遵循它们不能消除500 错误,请联系您的网络托管服务商的支持团队以获得进一步的帮助。