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