高速度主机原创drupal官方技术文档翻译:解决 drupal访

本文是根据drupal官方技术文档"The White Screen of Death (Completely Blank Page)"翻译过来,感谢您的阅读和支持。译文:“White screen of death,WSOD。”白屏,想必在很多drupal用户在移动到一个页面时,突然间发现页面内容消失了,完全的白掉了。The White Screen of Death (Completely Blank Page)——白屏!没内容,没有错误提示。白屏不仅仅会在升级升级主题、升级核心、升级模块时产生,而且还具有一定的偶然性,但问题始终是有方法解决的。这篇文章中我们就介绍一下处理drupal白屏时的一些方法。首先,我们要处理白屏的问题,,在某些情况下让我们毫无头绪,所以我们现在要做的就是临时开启错误报告。开启错误报告方法如下:1:使用文档编辑器(dreamweaver或者editplus)打开根目录下的index.php。2:在index.php的最低部加入代码(不要去修改原有的信息,加在底部即可):<?error_reporting(E_ALL);ini_set('display_errors', TRUE);ini_set('display_startup_errors', TRUE);?>注释:如果您建立的是多站点,但您只想让错误报告在一个站点显示的话,只需要在前面加一个if进行判断:<?If $_server['http_host']==='需要显示站点域名'{这里把显示错误报告的代码复制到这里。}?>如果问题发生在运行update.php的时候,我们就用文档编辑器开打update.php把ini_set('display_errors',FLASE);这一句的注释掉。日志文件(Log日志文件可以让我们知道造成白屏的错误是什么操作产生的,并能告诉我们这个错误的文件在哪。在高速度 主机(www.gaosudu.com)上是提供日志文件下载的。而在nuix shell下我们键入"tail /var/log/apache/error.log"进入服务器的日志文件。当然我们还可以键入:grep 'ErrorLog' /etc/apache2/*grep 'ErrorLog' /etc/apache2/*/*来查找日志文件的存放地址。php文件的末尾是空白最普通的造成白屏的代码错误是额外的空白空间在PHP文件的最末端,避免这个问题您可以去参考drupal的编码标准(drupal coding standard)是不要在php文件末尾加上?>关闭。php版本问题在php4的一些版本下函数申明中申明的变量因为太多的“=”或者是处理“&$...”的时候因为PHP4处理器的不兼容造成白屏。解决办法:升级到PHP5当您的的网站运行在多PHP版本的服务器上时,可能会在.htaccess上添加一条 "addType x-mapp-php5 .php"来告诉服务器用PHP5而不是PHP4。如果是这个情况下,我们只需要把.htaccess中的addType x-mapp-php.php移除即可。升级过程中造成不可见的错误如果升级了模块,您首先可能会加载文件来测试一下,并确定没有明显的PHP语法错误。这是如果发生白屏是因为include_once()或者是require_once()函数调用不会报错(缺少原因)。在您的系统上运行这样的命令(这需要PHP接口或者是CLI安装了的情况下)“$ php <filename>”,这个命令会询问您的PHP去解析您的文件,如果遗失了“;”或者是“}”会立即给您返回错误提示,在我们修改错误以后,再次再您的服务器上运行。在*nix系统下,运行“$ find . -type f -name '*.php' -exec php -1 '{}' ;” 。为了达到更好的效果,您可能要为检测这样的错误写一个自动检测。(更多信息请查看:http://drupal.org/simpletest)输出缓冲一些模块需要输出缓冲功能开启。开启这项功能,我们只需要在您网站根目录下的.htaccess文件中加入如下代码:php_value output_buffering Onphp_value output_handler mb_output_handlerZend主题的兼容模式当您的网站迁移至另一个php虚拟主机上时出现白屏,可能就是因为zend主题的兼容造成的(在php.ini文件中)。在查看错误报告显示的是“Trying to clone an uncloneable object of class mysqli” ,我们在apache服务器下的php.ini键入这行命令:“Zend.ze1_compatibility_mod= off” 。清除缓存有时候只要我们清楚网站的缓存就可以解决白屏问题,缓存存储在您当前网站数据库的cache表中,删除数据表内容的SQL命令是“Truncate Table 表名;”(这里的话表名是cache)。WIMPwindows IIS mysql php如果您站点的安装环境是WIMP,当在http://www.example.com/install.php发生白屏时,您应该检测一下是否您在IIS服务器上安装了ISAPI模块。如果没有安装,请及时安装。PHP内存限制另一个很普遍造成白屏的原因就是内存限制,这个问题很容易发生在您登录到模块管理页面。解决方案:http://drupal.org/node/31819您可能需要运行一下updata.php,如果您不知道如果运行或者您没有权限运行,请查阅:http://drupal.org/node/61736不推荐的模块版本如果您下载的模块不是推荐的版本,您可以要把它升级到推荐的版本。模块的话我们能在http://drupal.org/project/modules查看版本情况,recommended就是推荐的意思。名字冲突另一个造成白屏的的原因很可能就是名字冲突,一个模块名和主题名相同。这个时候是没有错误信息产生的,因为这是需要drupal主题系统的行为。解决办法:重命名,当然不能相同。Template.php编码问题当错误提示为:Cannot modify header information – headers already sent by(output started at .../sites/all/themes/THEME_NAME/template.php:1)in .../includes/common.inc on line 314.从上面看出输出在第一行,这就是文件的编码方式不正确造成的。解决方法:用文档编辑器(推荐使用dreamweaver)打开文件后ctrl+j进行编码方式修改(推荐utf-8)。禁用模块当白屏是由于模块产生,却又不知道是哪个模块造成的,我们就可以按下列的方法来找出问题模块。1:在管理员后台禁用模块一个个的禁用的模块来寻找出造成白屏的模块。浏览到“管理员—>模块” ,把模块的复选框设定为取消,保存。2:通过数据库禁用模块在您drupal网站的数据库中找到一张system的数据表,然后把它的status状态改为0,接着删除缓存。PHP超时默认情况下PHP超时在php.ini文件下定义的是30秒,这对于模块的激活和开启来可能会有点短,从而造成白屏。超时的错误提醒是:Fatal error: Maximum execution time of 30 seconds exceeded in X:.....此时我们增加执行时间的办法有如下:在../sites/default/settings.php的最底部加入:ini_set('max_execution_time',168);   /*这里的取值可以在147-168间*/这只是高速度 主机(www.gaosudu.com)翻译的处理drupal网站访问白屏方法,高速度 主机(www.gaosudu.com)小编选了一些比较常用和有效处理白屏的方法记载下来,确实有一些感觉是鸡肋也就没有进行翻译,如果上述处理drupal白屏的方法还不能解决您的实际需求的话,请您查看原文:http://drupal.org/node/158043 纯Linux环境下高端免备案【香港独立IP地址】 php空间,仅仅只需199元一年起。商务中国域名核心代理直销50元注册国际顶级域名

本文地址:https://www.gaosudu.com/drupal/6929.html