J'essaie de déployer mon application Laravel dans Apache2 localement, mais lorsque j'essaie de naviguer jusqu'à http://myapp.localhost.com/
, l'erreur suivante s'affiche:
Forbidden
You don't have permission to access / on this server.
Apache/2.4.7 (Ubuntu) Server at myapp.localhost.com Port 80
J'ai créé myapp.conf
dans /etc/Apache2/sites-available
pour configurer l'hôte virtuel:
<VirtualHost *:80>
ServerName myapp.localhost.com
DocumentRoot "/home/user/projects/myapp/public"
<Directory "/home/user/projects/myapp/public">
AllowOverride all
</Directory>
</VirtualHost>
Et créé un lien symbolique dans /etc/Apache2/sites-enabled
(Sudo ln -s ../sites-available/myapp.conf
)
A également modifié le fichier /etc/hosts
et ajouté:
127.0.0.1 myapp.localhost.com
Une idée de la raison pour laquelle je reçois cette erreur? J'ai également le même problème lorsque j'essaie de déployer l'application sur heroku
, qui utilise également Apache2
.
Il me manque le
Options Indexes FollowSymLinks Includes ExecCGI
dans votre myapp.conf. Depuis Apache-2.4, mod_authz_Host est utilisé et Require
(exemple Require all granted
) doit être utilisé.
Au fait ... ceci:
Vous n'êtes pas autorisé à accéder à/sur ce serveur.
Je me souviens d'Apache comme valeur par défaut lors de l'utilisation de httpd.conf. Êtes-vous sûr que les sites-*/*
sont utilisés?
Dans votre VirtualHost, écrivez DocumentRoot pour qu'il pointe vers votre application Laravel dans vos répertoires personnels. De plus, vous devez ajouter le répertoire indiqué ci-dessous, avec votre propre chemin.
<Directory /home/john/Laravel_Projects/links/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
La deuxième étape consiste à accéder à votre projet Laravel et à exécuter la commande suivante.
Sudo chmod -R 777 storage bootstrap/cache
A la fin, redémarrez votre Apache2:
Sudo service Apache2 restart