Ne pas déployer une application Laravel sur EC2

J’ai mon projet Laravel qui fonctionne sur mon hôte local. Je l’ai déployé sur EC2, mais rien ne se passe. Tout ce que je vois dans la console de développement est une erreur interne (500).

Qu’est-ce que je rate? Que dois-je changer avant de déployer sur AWS? Voici l’URL: http://ec2-52-88-99-75.us-west-2.compute.amazonaws.com

Voici le fichier httpd.conf: http://collabedit.com/sdcxm

Après avoir installé Laravel, vous devrez peut-être configurer certaines permissions. Les répertoires dans le stockage et les répertoires bootstrap / cache doivent être accessibles en écriture par votre serveur Web. – http://laravel.com/docs/master#configuration

Le dossier Laravel «Storage» et le dossier «bootstrap / cache» doivent être accessibles à la fois par l’utilisateur de la ligne de commande (celui qui exécute la mise à jour du compositeur) et l’utilisateur du serveur Web par défaut (www-data) au cas où vous utilisez ubuntu. exemple.

Les trois commandes suivantes garantiront que les deux ont le droit de le faire. Exécutez-les à la racine de votre projet

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1` sudo setfacl -R -mu:"$HTTPDUSER":rwX -mu:`whoami`:rwX storage bootstrap/cache sudo setfacl -dR -mu:"$HTTPDUSER":rwX -mu:`whoami`:rwX storage bootstrap/cache 

Cela devrait commencer à afficher des erreurs spécifiques que vous pouvez déboguer. Assurez-vous également que l’option de débogage est définie sur true dans app.php

 yourproject/config/app.php 'debug' => true, 

Assurez-vous également d’avoir un fichier .env par défaut qui spécifie l’environnement à la racine du projet.

 yourproject/.env //should have this APP_ENV = dev 

De même, si vous utilisez des sessions, assurez-vous d’avoir une clé générée en utilisant cette commande et de ne pas configurer config / app.php comme

‘clé’ => env (‘APP_KEY’, ‘SomeRandomSsortingng’),

 yourproject/config/app.php php artisan key:generate 

Un des pièges courants pour les nouvelles instances Amazon EC2 consiste à affecter un groupe de sécurité à votre instance pour laquelle les ports 80 et 443 ne sont pas autorisés en entrée. Veuillez vérifier le groupe de sécurité de votre instance EC2 et autoriser ces ports dans le groupe sinon déjà.

Cela a fonctionné pour moi:

 [root@example-laravel-server ~]# chown -R apache:apache /var/www/laravel/laravel/storage