Laravel 5 - локальная отладка env true ошибки не отображаются

Я пытаюсь включить отладку для моего приложения, но похоже, что у меня нет отзывов.

Среда настроена на локальную (в файле.env), и если я запустите

php artisan env

Я понял

Current application environment: local

Конфигурация отладки для моего локального env установлена ​​в true

return [

    'debug' => true,

Также, если я установлю в своем основном конфигурационном файле (app.php внутри папки config) debug = true У меня еще есть отзывы о том, что в коде есть ошибка.

У меня есть только пустая страница, если в коде есть ошибка (как для debug = false)

Что мне не хватает?

13 ответов

Решение

Я работал над этим вопросом chmod -R 777 storage/ на моем хост-компьютере (Mac OS X). На моей гостевой машине (Ubuntu 14.04) chmod -R 777 storage/ не менял разрешения на самом деле.

php artisan optimize и если он все еще не работает, удалите файл storage/meta/compiled.php как уже упоминалось в теме форума на Laracasts

У меня была такая же проблема и artisan Команда сделала свое дело.

ОБНОВИТЬ

Я обнаружил, что хороший способ обойти проблемы, связанные с папками хранилища, - установить www-data в качестве его владельца. Я использую две команды:

sudo chown $(whoami):www-data . -R

а также

sudo chown www-data: storage -R

Начиная с Laravel 5.1, может потребоваться выполнить эту последнюю команду и в папке начальной загрузки.

У меня была ситуация, когда у меня был точно такой же симптом, некоторые маршруты не давали никакой обратной связи, просто белая страница, никаких ошибок в журнале, никакой информации вообще.

Оказывается, я добавлял новое промежуточное ПО, и я забыл вернуться $next($request) из моего метода ручки. Это было еще более неприятно, потому что это промежуточное программное обеспечение не применимо к каждому маршруту, поэтому я предположил, что возникла периодическая ошибка, которая генерировалась, но не отображалась на этих маршрутах.

Как сказал Блэр, может оказаться, что вы вставили какой-то неправильный код в промежуточное ПО или в "Exceptions/Handler.php", например:

if($e->getStatusCode()===404) { ... }

вместо

if($e instanceof NotFoundHttpException) { ... }

Также, если вы только что установили lumen, убедитесь, что вы переименовали .env.example в .env в вашем главном каталоге приложения, так как он не будет работать, если ваш конфигурационный файл все еще называется. .env.example,

Даже на Windows нужно сделать: chmod -R 777 storage/Вы можете запустить его с помощью Git Bash;

Просто для полноты, у меня была эта проблема, когда ошибка произошла в методах, которые использовали Model::findOrFail($someId), Заменить его на Model::find($someId) отображается журнал ошибок.

Я на самом деле решил проблему, откомментировав строку
Dotenv::load(__DIR__.'/../'); в bootstrap/app.php,

Так что он на самом деле загружает его перед компиляцией и кэшированием,
хорошо работает php artisan optimize делает это для вас, если у вас есть Laravel (не Lumen)

Но если вы посмотрите на их документацию, она закомментирована по умолчанию, я думаю, что они, возможно, уже исправили ее http://lumen.laravel.com/docs/installation.

Перейдите в config/app.php и, если это так:

'debug' => env ('APP_DEBUG', false),

Тогда это изменится на:

'debug' => env ('APP_DEBUG', true),

этот.

Для меня то, что отлично работало, это отключение hhvm в файле Homestead.yaml, затем я сделал vagrant reload --provision и все!

Пожалуйста, проверьте файл .env

      APP_ENV=local

APP_DEBUG=true

а также в config/app.php проверьте эти значения

      'env' => env('APP_ENV', 'local'),

'debug' => true,

Я столкнулся с той же проблемой, поэтому я проверил файл handler.php папки исключений, где прокомментирована функция рендеринга, которая имеет строку возвращаемого значения, поэтому страница становится пустой.

public function render($request, Exception $exception)
{        
    //return parent::render($request, $exception);
}

Если приведенные выше ответы не помогли вам, вы можете проверить конфигурационные файлы, которые вы могли изменить, и начать отладку оттуда.

В моем случае вышеупомянутые решения не работали для меня, потому что основной причиной моей проблемы было изменение часового пояса в файле config/app.php (с UTC по умолчанию для laravel, я изменил его на EST5EDT). По какой-то причине изменение настроек часового пояса не позволяет laravel регистрировать ошибки в папке хранилища, и я получаю пустой экран (нет сообщения об ошибке!). Вместо этого я изменил часовой пояс на America/New_York, и журналы ошибок снова работают.

Надеюсь это поможет.

Другие вопросы по тегам