web-dev-qa-db-fra.com

Laravel 5 - env ​​local debug true aucune erreur affichée

J'essaie d'activer le débogage pour mon application, mais il semble que je n'ai aucun retour.

L’environnement est défini sur local (dans le fichier .env) et si j’exécute

php artisan env

J'ai compris

Current application environment: local

La configuration de débogage pour mon env local est définie sur true

return [

    'debug' => true,

De plus, si je mets dans mon fichier de configuration principal (app.php dans le dossier config) le debug = true, j'ai toujours le sentiment qu'il y a une erreur dans le code.

Je n'ai qu'une page vide s'il y a une erreur dans le code (comme pour debug = false)

Qu'est-ce que je rate?

27
peppeocchi

J'ai résolu le problème par chmod -R 777 storage/ sur mon ordinateur hôte (Mac OS X). Sur mon ordinateur invité (Ubuntu 14.04), chmod -R 777 storage/ n'a pas modifié les autorisations en réalité.

77
Aleksei Akireikin

php artisan optimize et si cela ne fonctionne toujours pas, supprimez le fichier storage/meta/compiled.php mentionné dans la rubrique forum sur Laracasts

J'ai eu le même problème et la commande artisan a fait l'affaire.

METTRE À JOUR

J'ai découvert qu'une bonne façon de contourner les problèmes liés aux dossiers de stockage est de définir www-data en tant que propriétaire . J'utilise deux commandes:

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

et

Sudo chown www-data: storage -R

À partir de Laravel 5.1, il peut être nécessaire de faire cette dernière commande également sur le dossier bootstrap.

12
phaberest

J'ai eu une situation où j'avais exactement le même symptôme, certaines routes ne fournissaient aucun retour, juste une page blanche, aucune erreur dans le journal, aucune information.

Il s'avère que j'ajoutais un nouveau middleware et que j'ai oublié de renvoyer $next($request) à partir de ma méthode de traitement. C'était encore plus frustrant, car ce middleware ne s'appliquait pas à tous les itinéraires. J'ai donc supposé qu'une erreur intermittente était générée mais non affichée sur ces itinéraires.

3
Blair

Juste pour être complet, j'ai eu ce problème lorsque l'erreur s'est produite dans les méthodes qui ont utilisé Model::findOrFail($someId). Le remplacer par Model::find($someId) a affiché le journal des erreurs.

1
dbertels

Même sous Windows, il faut faire: chmod -R 777 storage/Vous pouvez le lancer avec Git Bash

1
Svet

De plus, si vous venez d'installer Lumen, assurez-vous d'avoir renommé .env.example en .env dans votre répertoire principal de l'application, car cela ne fonctionnera pas si votre configuration est toujours nommée. Le fichier d'environnement est toujours nommé .env.example.

0
XanT

Si les réponses ci-dessus ne vous conviennent pas, vous pouvez vérifier les fichiers de configuration que vous avez éventuellement modifiés et lancer le débogage à partir de là. 

Dans mon cas, les solutions ci-dessus ne fonctionnaient pas pour moi parce que la cause fondamentale de mon problème était le changement de fuseau horaire dans le fichier config/app.php (à partir de laravel UTC par défaut, je l'ai changé en EST5EDT). Pour une raison quelconque, le changement de réglage du fuseau horaire empêche laravel de consigner les erreurs dans le dossier de stockage et mon écran est vide (aucun message d'erreur whoops!). J'ai changé le fuseau horaire en Amérique/New_York à la place et les journaux d'erreurs fonctionnent à nouveau.

J'espère que cela t'aides.

0
camille

J'ai en fait résolu le problème en un-commentant la ligne 
Dotenv::load(__DIR__.'/../'); dans bootstrap/app.php.

Pour qu'il le charge avant de le compiler et de le mettre en cache, 
php artisan optimize fonctionne bien pour vous, si vous avez Laravel (Not Lumen)

Mais si vous regardez leur documentation, elle est commentée par défaut. Je pense qu’ils l’auraient peut-être déjà corrigée http://Lumen.laravel.com/docs/installation .

0
Fahad

J'ai fait face au même problème, donc j'ai vérifié le fichier handler.php du dossier des exceptions où la fonction de rendu ayant une ligne de valeur de retour est commentée afin que la page soit vierge.

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

Allez àconfig/app.phpet si c'est comme ça: 

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

Ensuite, cela devient: 

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

ce.

0
Olpha Zarrouk

Pour moi, ce qui a parfaitement fonctionné a été de désactiver hhvm dans le fichier Homestead.yaml , puis je l 'ai fait vagrant reload --provision et c'était tout!

0
Octavio Herrera