现在我开始回到PHP,我开始记得为什么我放弃了它.目前我盘子里最烦人的事情就是我所说的"PHP的死亡白屏".当PHP由于语法或其他原因而出现致命错误时,似乎总是在没有实际向浏览器发送任何内容的情况下死亡.我已将以下内容添加到我的中.htaccess
,并且它似乎在大多数时间都有效,但在这些情况下它不起作用.
php_value display_errors 1
php_value display_startup_errors 1
php_value error_reporting 2147483647 # E_ALL
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?目前我觉得我需要刷新我编写的每几行代码,以免我犯了一个错误,并且必须搜索许多页面,试图找出我犯的一个小错误......
编辑:例如,给出以下两行代码:
$foo = array(':language' => $languageId;
$foo = array(':language' => $languageId);
Run Code Online (Sandbox Code Playgroud)
第一个将显示死亡的白色屏幕(即,什么都没有打印到浏览器),而第二个将愉快地执行.
我的Magento后端出错,导致空白屏幕(WSOD).我在管理员中设置了错误,但在var/logs /中没有创建任何内容.(我已检查该目录的权限,一切正确).
我在index.php中也有ini_set('display_errors',1),Magento设置为开发人员模式.我也启用了apache和php错误日志.
虽然没有记录错误?!
任何人都有一个线索,为什么错误没有显示?我很困惑!谢谢
在我的私人WAMP PC上运行一些PHP代码时,我突然从服务器得到一个空白的响应 - 实际上没有响应.没有标题,没有数据,PHP错误日志中没有任何内容,nada.我重新启动了APACHE和PHP,但仍然没有.我知道php正在运行,因为我可以正常访问其他PHP脚本.
Firebug报告没有标题,?字节,只需要163ms来"加载"(所以它不是超时).我想到了快速的内存消耗 - 但我监控了我的PC的内存并且没有出现任何高峰.到目前为止,错误和例外一直很好.
世界上有什么?
max_execution_time = 30 ;
max_input_time = 60 ;
max_input_nesting_level = 64 ;
memory_limit = 500M ;
error_reporting = E_ALL | E_NOTICE | E_STRICT
display_errors = On
log_errors = On
Run Code Online (Sandbox Code Playgroud)
:编辑:
我不会@
用十英尺杆接触.我认为红宝石家伙会把它扔进去,所以程序员会放弃PHP.
无论如何,我启用了xdebug并且它没有输出任何研磨文件.然后我接受了zombat的建议并在页面顶部放置了一个DIE()并且它有效.我想我只是有一些非常奇怪的代码完全杀死了PHP.即使错误被禁用或抑制,@
我仍然应该从服务器返回带有空内容的标题!
如果我发现更多,我会回复.
我有一个Drupal安装,以前在我的localhost上完美运行.但是,现在,在格式化我的电脑后,它只显示一个空白屏幕(完全白色).
所以我的问题是,如果我甚至无法登录服务器,我怎么能看到出错的地方?
我能找到的唯一错误是(摘自Apache错误日志):
[Tue May 17 05:05:04 2011] [notice] Parent: child process exited with status 255 -- Restarting.
[Tue May 17 05:05:04 2011] [notice] Digest: generating secret for digest authentication ...
[Tue May 17 05:05:04 2011] [notice] Digest: done
[Tue May 17 05:05:07 2011] [notice] Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9 configured -- resuming normal operations
[Tue May 17 05:05:07 2011] [notice] Server built: Dec 10 2008 00:10:06
[Tue May 17 05:05:07 2011] [notice] Parent: Created child process 6992
Run Code Online (Sandbox Code Playgroud)
看门狗没有错误...... …
在调试安装到新开发环境中的codeigniter应用程序之后,当看到没有更多可用的白色屏幕时,我开始害怕.我已经能够解决导致这种情况的每一个错误,但它已经过了很长时间.
PHP error_reporting(E_ALL)
&display_errors", 1
也设置好了.我甚至安装了Xdebug以期获得更多输出,但没有.我的日志记录设置也正常,但没有任何内容写入日志.
有没有办法打印出信息而不是完整的白屏?它肯定会缩短我花在解决导致这种错误的最终错误上的时间吗?
非常感谢!
我无法让我的设置显示PHP错误.我唯一看到的是WSOD.
我已经更新了我的php.ini文件:
(摘自phpinfo())
display_errors On On
display_startup_errors On On
error_reporting 30719 30719
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
最后,我能够通过以下两行来重现这个问题:
session_set_save_handler(new SessionHandler());
session_start();
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到了一个WSOD!知道为什么会这样吗?
================================================== ==========
最后,我深入挖掘并将其缩小到由于失败导致的问题session_start()
; 不过,我不知道为什么会失败.
所以,问题归结为:当session_start()
调用时NativeSessionStorage::start()
,它失败了.但是,当我创建一个样本测试页面时,session_start()
它就成功了!
Silex有什么不同的做法吗?!
我保留下面的文字,以便任何面临类似问题的人都能理解失败背后的原因.
================================================== ==========
我最近尝试从Php 5.3切换到Php 5.4,我的网站基于Silex停止了与WSOD的合作.
我检查了PHP错误日志,我看到:
Premature end of script headers: php54.cgi
我尝试了很多东西,最后想到在线询问:(.这是我试过的:
在Silex初始化之前添加代码并app[debug] = true
在之后设置:
ini_set('display_errors', 1);
error_reporting(-1);
ErrorHandler::register();
if ('cli' !== php_sapi_name()) {
ExceptionHandler::register();
}
Run Code Online (Sandbox Code Playgroud)试图检查代码的程度.但是我继续踩着.我走了直到NativeSessionStorage::start()
放弃了,所以它一直工作到那时我在那里产生的任何错误都按预期正确报告.
尝试查看其他条目以了解如何修复BSOD,但是没有一个真正解释过如何通过从PHP 5.3迁移到PHP 5.4来改变事情!这就是我所做的一切.刚刚更改了PHP版本和PHP.INI.下面是我现在使用的PHP.INI.
; |PIG v0.3.2.1|
[PHP]
open_basedir =
engine = 1
zend.ze1_compatibility_mode =
short_open_tag = 1
asp_tags =
precision = 14
y2k_compliance = 1
output_buffering = …
Run Code Online (Sandbox Code Playgroud)我正在hostgator.com上开发一个简单的网页.我有标准的标题,但是当我添加以下行时:
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)
该页面无效.我想为什么.
这是完整的标题:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
... rest of code ...
Run Code Online (Sandbox Code Playgroud)
服务器返回一个空白页面
问题解决了: PHP短标签已打开.
echo ("<div style=\"text-align:center\">" . include ('file.php') . "</div>\n");
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但每当我把这一行放在我的脚本中我就会得到空白屏幕:(
/var/log/apache2/error.log中没有错误.我使用composer安装了laravel.
"msg"是我的应用程序名称.当我访问localhost/msg /时,我可以看到以下列表:
[ ] CONTRIBUTING.md 2014-01-18 18:14 145
[DIR] app/ 2014-01-18 18:14 -
[ ] artisan 2014-01-18 18:14 2.4K
[DIR] bootstrap/ 2014-01-18 18:14 -
[ ] composer.json 2014-01-18 18:14 697
[ ] composer.lock 2014-01-23 10:06 53K
[ ] phpunit.xml 2014-01-18 18:14 566
[DIR] public/ 2014-01-18 18:14 -
[ ] readme.md 2014-01-18 18:14 1.8K
[ ] server.php 2014-01-18 18:14 519
[DIR] vendor/ 2014-01-23 10:06 -
Run Code Online (Sandbox Code Playgroud)
当我访问localhost/msg/public /时,我得到一个空白页面(没有源代码).在apache日志中仍然没有恐怖.
除了通过composer的安装程序之外,我所做的只是msg文件夹中的git init.
任何的想法 ?我真的很困惑,没有任何错误.