it-roy-ru.com

Laravel 5 - env ​​local debug true без ошибок

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

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

php artisan env

Я понял

Current application environment: local

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

return [

    'debug' => true,

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

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

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

27
peppeocchi

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

77
Aleksei Akireikin

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

12
phaberest

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

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

3
Blair

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

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

вместо

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

3
Vishnja

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

1
dbertels

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

1
Svet

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

0
XanT

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

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

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

0
camille

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

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

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

0
Fahad

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

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

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

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

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

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

этот.

0
Olpha Zarrouk

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

0
Octavio Herrera