Как отобразить ошибки на laravel 4?

Я пытаюсь создать приложение на Laravel 4 beta, но я не могу отладить его, потому что он не показывает никакой ошибки, display_errors на error_reporting is E_ALL и debug => true (config/app.php). Когда я пытаюсь сделать ошибку public/index.php это показывает, что ошибка, но когда я делаю это на маршрутизаторе, он просто показывает пустую страницу (белый экран смерти). Как я могу это исправить?

спасибо

10 ответов


@Matanya - вы посмотрели на свои журналы сервера, чтобы узнать, что такое ошибка 500 на самом деле? Это может быть любое количество вещей

@Aladin - белый экран смерти (WSOD) можно диагностировать тремя способами с помощью Laravel 4.

Вариант 1: перейдите в свои журналы Laravel (app / storage / logs) и посмотрите, содержится ли там ошибка.

Вариант 2: перейдите к вам журналы сервера PHP и найдите ошибку PHP, которая вызывает WSOD

Вариант 3: старые добрые навыки отладки-добавьте команду die ('hello') в начале файла маршрутов - затем продолжайте перемещать ее все глубже и глубже в свое приложение, пока вы больше не увидите сообщение "hello". Используя это, вы сможете сузить линию, которая вызывает ваш WSOD, и устранить проблему.


У меня возникла проблема с белым экраном после установки нового экземпляра laravel. Я ничего не мог найти в журналах, потому что (в конце концов я узнал), что причиной белого экрана было то, что приложение/хранилище не было доступно для записи.

чтобы получить сообщение об ошибке на экране, я добавил следующее К public / index.в PHP

try {
    $app->run();
} catch(\Exception $e) {
    echo "<pre>";
    echo $e;
    echo "</pre>";
}

после этого было легко решить проблему.


перейти к app / config / app.в PHP

и установите 'debug' = > true,


следуя хорошему совету @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, поскольку он получал пустой экран, а не ошибку сервера.


в файле config открыть папку app.php

изменить

'debug' => false,

to

'debug' => true, 

в корневой папке Laravel chmod каталог хранения до 777


может быть, не на Laravel 4 на этот раз, но на L5.2* у меня была аналогичная проблема:

Я просто сменил владельца


https://github.com/loic-sharma/profiler это хороший пример для альтернативы панели отладки laravel3.


далее к ответу @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 в терминале


просто зайдите в свой app/storage/logs есть журналы error доступен. Перейдите к имени файла сегодняшней даты, и вы найдете последнюю error в вашем приложении.

или

открыть app/config/app.php и измените параметр

'debug' => false,

до

'debug' => true, 

или

на .env файл для вашего приложения и изменить configuratuion

APP_LOG_LEVEL=debug