Laravel 5-env local debug true ошибок не отображается

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

среда имеет значение local (в поле .env file) , и если я запускаю

php artisan env

Я понимаю это

Current application environment: local

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

return [

    'debug' => true,

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

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

что я упустил?

12 ответов


Я работал над проблемой 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) из моего метода дескриптора. Это было еще более неприятно, потому что это промежуточное программное обеспечение не применялось к каждому маршруту, поэтому я предположил, что была прерывистая ошибка, которая выбрасывалась, Но не отображалась на этих маршрутах.


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

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

вместо

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


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


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


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

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

надеюсь, что это помогает.


для меня то, что отлично работало, было отключением hhvm в Хоумстед.и YAML, то я перезагрузка бродяги --provision и это все!


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


я фактически решил проблему ООН-комментируя строку
Dotenv::load(__DIR__.'/../'); на bootstrap/app.php.

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

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


на config / app.в PHP и если это так :

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

затем он изменится на:

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

этого.


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

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