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.
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.
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
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!
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.
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