web-dev-qa-db-fra.com

Erreur dans le gestionnaire d'exceptions. - Laravel

C'est une question liée à Laravel-install. J'ai une configuration de serveur Unix ouverte au public:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/mydomain"
ServerName mydomain.org
ServerAlias www.mydomain.org
ErrorLog "/var/log/mydomain.org-error_log"
CustomLog "/var/log/mydomain.org-access_log" common
</VirtualHost>

Je peux servir des documents sur/var/www/mydomain i.e. http://mondomaine.org/test.php avec test.php contenant:

<?php echo 'test';

fonctionne bien.

En bash, avec Laravel installé via Composer et en regardant les fichiers:

# ls /var/www/mydomain/my-laravel-project

.gitattributes  CONTRIBUTING.md artisan         composer.json   phpunit.xml readme.md       vendor
.gitignore      app             bootstrap       composer.lock   public          server.php

Alors quand je navigue sur:

http://mydomain.org/my-laravel-project/public/

pourquoi mon application rapporte-t-elle:

Error in exception handler. 

dans le navigateur - sur un écran blanc vierge? Je m'attends à voir l'écran de démarrage de Laravel.

De plus, les fichiers journaux ne révèlent rien non plus.

114
cookie

L'option la plus sûre consiste à changer le groupe des répertoires de stockage en groupe de serveurs Web (généralement Apache ou www-data, mais cela peut varier selon les systèmes d'exploitation) et conserver les autorisations du répertoire sous la forme 775.

chgrp -R www-data app/storage

Ou avec chown.

chown -R :www-data app/storage

Ensuite, assurez-vous que les autorisations de répertoire sont 775.

chmod -R 775 app/storage

Du site Web Laravel

Laravel peut nécessiter la configuration d’un ensemble d’autorisations: les dossiers au sein de l'application/stockage nécessite un accès en écriture par le serveur Web.

244
Jason Lewis

Laravel 5.2

chmod -R 777 de stockage

Ancien Laravel Chmod 777 app/stockage/*

Notez que si vous avez un serveur dédié raisonnablement verrouillé sans aucun compte utilisateur autre que le vôtre, 777 ne devrait pas poser plus de risque de sécurité qu'autre chose. Un utilisateur malveillant aurait besoin d'une autre vulnérabilité pour pouvoir en tirer parti. À ce stade, l'autorisation 777 est probablement de toute façon sans objet. Si toutefois vous ne faites pas confiance à un serveur partagé avec d'autres utilisateurs, vous devrez alors vous pencher sur des autorisations plus compliquées ou vérifier si votre fournisseur d'hébergement a déjà fourni l'isolation.

Ils devraient vraiment mettre cela dans la documentation de démarrage rapide et fournir des exemples pour diverses configurations. Vous devrez peut-être également l'exécuter à nouveau après le premier chargement, car davantage de répertoires sont créés automatiquement. Recherchez dans vos journaux les erreurs d'écriture.

De plus, votre racine de document devrait être/chemin/vers/laravel-project/public

18
malhal

J'ai supprimé les anciennes sessions dans le dossier app/storage/sessions et ai donné une permission 775 à app/storage après que cela fonctionne comme un feu!

chmod -R 775 app/storage

Bonne chance!

2
Abdulaziz Noor

Le train en marche a passé cela depuis très longtemps, mais j'ai quand même un autre conseil concernant "Erreur dans le gestionnaire d'exceptions".

Cela m’arrivait lorsque j’exécutais «php artisan», ce qui est un bon moyen d’évaluer si votre environnement fonctionne en général. 

Je l'ai exécuté et il m'a donné cette erreur, et je ne pouvais pas identifier le problème avant d'éditer le fichier artisan dans le répertoire racine de mon projet et d'ajouter une instruction try catch: 

try {
    $artisan = Illuminate\Console\Application::start($app);
}
catch (Exception $e)
{
    dd($e->getMessage());
}

À ce moment-là, j'ai enfin vu un message éclairant:

string(41) "Connection refused [tcp://127.0.0.1:6379]"

ce qui dans mon cas était une mauvaise configuration redis, mais dans votre cas pourrait être n'importe quoi. 

J'espère que cela aidera quelqu'un, ou du moins la prochaine fois que je viendrai ici, je trouverai ma propre réponse.

1
NiRR

Le moyen le plus rapide de résoudre ce problème est de commencer artisan avec Sudo. Cela donnera à l'artisan toutes les autorisations dont il a besoin et ne causera pas non plus de problèmes de sécurité.

alors, au lieu de cela, commencez par servir avec:

$ php artisan serve

essayez d'utiliser:

$ Sudo php artisan serve 

vous n'aurez donc pas à modifier votre permission

0
Skeletor