Bonjour,

J'ai terminé mon site, enfin ! Je souhaite désormai l'héberger. Je suis chez Gandi. J'ai donc déployé mon site en utilisant Git ce qui a installé mon projet et téléchargé toutes ses dépendances. J'ai ensuite créé un lien symbolique entre le dossier public et htdocs de cette façon :

ln -s public/ htdocs/

En me rendant à l'adresse de mon site, j'obtient alors une erreur 403 Forbidden. J'assume que c'est un problème de droit, je met donc les droits 777 au dossier htdocs et public, seulement j'ai toujours mon erreur 403.

Si quelqu'un peut m'aider...

Merci !

6 réponses


Bonjour.
As-tu tout simplement pensé à regarder dans les logs du serveur ?

Wizix
Auteur

J'ai l'erreur suivante :

AH01276: Cannot serve directory /srv/data/web/vhosts/<adresse_du_site>/htdocs/: No matching DirectoryIndex (index.php,index.html,index.htm) found, and server-generated directory index forbidden by Options directive

il n'y a effectivement pas d'index.php à la racine de Laravel. il faut faire pointer le virtualhost d'apache sur le répertoire public

si tu ne peux pas modifier cette config tu peux mettre une règle de réécriture dans un fichier .htaccess (à condition d'avoir apache et mod_rewrite) :

RewriteEngine On
RewriteCond %{REQUEST_URI} !public/
RewriteRule ^(.*)$ public/$1 [L]

Bonjour, j'ai le même problème sur GANDI.
Avez-vous trouvé une solution ? merci

MA SOLUTION
transférer tout le dossier-projet laravel dans le dossier-racine “htdocs“ avec à l'intérieur le même .htacess que @weshpoussin a proposé ci-dessus.

Gandi “simple hosting“ est configuré pour recevoir obligatoirement un fichier 'index.php' ou 'index.html' dans 'htdocs'.

Or, Laravel possède déjà un fichier 'index.php' dans le dossier '/public'.
Et comme la création d'un lien symbolique 'htdocs' --> '/public' n'a pas fonctionné our moi, j'ai déplacé tout mon projet directement dans 'htdocs'. J'ai changé aussi les permissions de tout mon dossier, mais je suis pas sur que ce soit finalement nécessaire.

Gandi avec son outil cPanel m'a permis de constater que le 'mod_rewrite' d'apache était bien activé et l'historique des logs me confirmait bien qu'il manquait un “index.php“ dans le dossier racine :

AH01276: Cannot serve directory /srv/data/web/vhosts/www.xxx.fr/htdocs/: No matching DirectoryIndex (index.php,index.html,index.htm) found, and server-generated directory index forbidden by Options directive

J'ignore si il existe une meilleure manière de faire, et si mon projet est bien sécurisé dans ce cas-là. Mais ça fonctionne :)

!!! J'AI TROUVE UNE MEILLEURE MANIERE DE FAIRE !!!
https://blog.forret.com/2020/03/05/hosting-a-laravel-project-on-gandi/

créer le lien symbolique sur sa version local 'dev'
puis balancer le tout à la racine du projet sur le serveur gandi

et Ô miraclanhhh... CA MARCHE !!!