我正在尝试在Laravel 4测试版上创建应用,但我无法调试它,因为它没有显示任何错误,display_errors
已启用,error_reporting
为E_ALL
和debug => true
(config/app.php
)。当我尝试在public/index.php
上执行错误时,它会显示一个解析错误,但是当我在路由器上执行此操作时,它只会显示一个空白页面(白屏死机)。我该如何解决这个问题?
谢谢
答案 0 :(得分:44)
@Matanya - 你看过你的服务器日志,看看错误500究竟是什么?它可以是任何数量的东西
@Aladin - 使用Laravel 4可以通过三种方式诊断白死病(WSOD)。
选项1:转到Laravel日志(应用/存储/日志),看看是否包含错误。
选项2:转到PHP服务器日志,查找导致WSOD的PHP错误
选项3:良好的旧调试技巧 - 在路径文件的开头添加一个die('hello')命令 - 然后继续将其移动到您的应用程序中,直到您不再看到'你好'的消息。使用此功能,您将能够缩小导致WSOD的路线并解决问题。
答案 1 :(得分:31)
安装新的laravel实例后,我遇到了白屏问题。我在日志中找不到任何东西,因为(最终我发现)白屏的原因是app / storage不可写。
为了在屏幕上显示错误消息,我将以下内容添加到public / index.php
try {
$app->run();
} catch(\Exception $e) {
echo "<pre>";
echo $e;
echo "</pre>";
}
之后很容易解决问题。
答案 2 :(得分:18)
转到 app / config / app.php
和 设置'debug'=&gt;真,
答案 3 :(得分:3)
按照@The Shift Exchange的好建议,我查看了error_log,确实设法解决了问题。这只是一个权限问题:
Tue Feb 26 11:22:20 2013] [error] [client 127.0.0.1] PHP Fatal error: Uncaught exception 'UnexpectedValueException' with message 'The stream or file "/Users/matanya/Sites/indgo/app/start/../storage/logs/log-apache2handler-2013-02-26.txt" could not be opened: failed to open stream: Permission denied' in /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:71\nStack trace:\n#0 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(77): Monolog\\Handler\\StreamHandler->write(Array)\n#1 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\\Handler\\RotatingFileHandler->write(Array)\n#2 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Logger.php(217): Monolog\\Handler\\AbstractProcessingHandler->handle(Array)\n#3 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Logger.php(281): Monolog\\Logger->addRecord(400, Object(ErrorException), Array)\n#4 [internal function]: Monolog\\Logger->addError(Object(ErrorException))\n#5 /Users/matanya/Sites/in in /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 71
一旦我使用chmod
申请不太严格的权限,所有权限都恢复正常。
但是,我不确定它是否回答了OP的问题,因为他得到的是空白屏幕,而不是服务器错误。
答案 4 :(得分:2)
在配置文件夹内打开app.php
更改
'debug' => false,
到
'debug' => true,
答案 5 :(得分:1)
在Laravel根文件夹chmod中将存储目录改为777
答案 6 :(得分:1)
这次可能不在Laravel 4上,但是在L5.2上我有类似的问题:
我只是将storage/logs
目录的所有权更改为www-data
,其中包含:
# chown -R www-data:www-data logs
PS:这是在Ubuntu 15和apache上。
我的logs
目录现在看起来像:
drwxrwxr-x 2 www-data www-data 4096 jaan 23 09:39 logs/
答案 7 :(得分:0)
https://github.com/loic-sharma/profiler这是替代laravel3调试条的好例子。
答案 8 :(得分:0)
继续@ cw24的答案•从Laravel 5.4
开始,您将在public/index.php
try {
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
} catch(\Exception $e) {
echo "<pre>";
echo $e;
echo "</pre>";
}
就我而言,我忘记了启动MySQL 顺便说一句,在终端
中通常是mysql.server start
答案 9 :(得分:0)
只需转到您app/storage/logs
error
的{{1}}日志即可。转到今天日期时间的文件名,您将在应用程序中找到最新的error
。
OR
打开app/config/app.php
并更改设置
'debug' => false,
到
'debug' => true,
OR
转到您的应用程序的.env
文件并更改配置
APP_LOG_LEVEL=debug