OVH : Changer la configuration Apache de mon hébergement (offre perso) pour pointer le sous-dossier `public` de mon site Laravel ?

Le problème exposé dans ce sujet a été résolu.

Hello !

J’ai regardé dans les docs d’OVH et dans leur Manager d’Hébergement mais n’ai rien trouvé à propos de la modification de la configuration d’Apache de leur serveur pour le faire pointer sur le répertoire public de mon site Laravel, qui contient le fichier index.php.

En fait je vous explique :

  • Dans l’onglet "FTP - SSH", on peut voir que Chemin du répertoire home : est valué à "/home/XYZ".

  • J’ai besoin que Laravel soit installé directement à la racine de mon site, c’est dans la doc Laravel. Sinon ça expose le site à des risques de sécurité. J’ai donc vérifié dans le Manager d’Hébergement d’OVH, et apparemment cette racine est correctement définie par Dossier racine : sur : ./www, ce qui se traduit je suppose par /home/XYZ/www d’après le point précédent. Cette valeur est trouvée pour chaque domaine de la liste des domaines qui s’affiche quand on clique sur l’onglet "Multisite".

Mais du coup il me manque l’option de config qui me permettrait de définir où est le répertoire publique de mon site. Je ne pense pas que ce soit Dossier racine :.

Qu’en pensez-vous ? Y a-t-il des admins réseau qui ont déjà travaillé sur OVH pour un sujet équivalent au mien svp ?

Merci bien belle journée à vous,

+0 -0

Ah non mais en fait j’ai mal compris la doc de Laravel, tout est ok.

Cf. le commentaire de la question qui devrait en fait être une solution : https://stackoverflow.com/questions/61635722/laravel-out-of-servers-root-directory

Dans mon cas je dois configurer chaque domaine dans l’onglet "Multisite" en valuant "Dossier racine :" à "./www/public" (sans slash final d’après la doc d’Apache). Et surtout ne pas mettre Laravel dans ce répertoire mais directement sous "./www". Le répertoire "./www/public" est bien sûr fourni par Laravel.

En tout cas c’est ce que je comprends… Si quelqu’un peut confirmer au cas où… :-)

+0 -0

C’est bien ça, les multi-sites sont des virtual hosts pour Apache, ils servent à associer une URL à un répertoire. Si tu as un multi-site qui pointe sur ./www/public, son URL servira ce qui est dans public, et pas ce qui est dans www. Si tu ne souhaites pas exposer ce qui est dans www, veille à n’avoir aucun multi-site qui pointe dessus ou sur un dossier parent.

Le répertoire home, de type /home/XYZ n’a aucune importance pour toi, c’est simplement l’emplacement de ton hébergement sur les serveurs de stockage.

+1 -0

C’est bien ça, les multi-sites sont des virtual hosts pour Apache, ils servent à associer une URL à un répertoire. Si tu as un multi-site qui pointe sur ./www/public, son URL servira ce qui est dans public, et pas ce qui est dans www. Si tu ne souhaites pas exposer ce qui est dans www, veille à n’avoir aucun multi-site qui pointe dessus ou sur un dossier parent.

Le répertoire home, de type /home/XYZ n’a aucune importance pour toi, c’est simplement l’emplacement de ton hébergement sur les serveurs de stockage.

Zephyr

Oki docki super, c’est pour ça que dans la doc Laravel ils précisent vite fait de ne pas mettre leur répertoire directement sous la directoryroot. C’est tellement évident… Chelou qu’ils aient pensé à le préciser… Surtout que dedans y a un répertoire "public" qui de par son nom est bien sûr amené à devenir la directoryroot…

Et sinon, comment savoir dans ovh ce qui se cache exactement derrière le "." de ". /www"? Je pensais que ça désignait le répertoire home "/home/XYZ" du coup. Enfin on s’en fiche de toute façon mais c’est par curiosité :)

Tu peux également mettre tes fichiers à la racine de ton hébergement, et créer un dossier public à la place de www, si tu veux. L’hébergement a une configuration par défaut mais tu es libre sur la gestion de tes répertoires et de tes virtual hosts.

En effet, les multi-sites sont configurés avec un chemin relatif à la racine de l’hébergement, donc . désigne ici le répertoire home. Par contre je ne sais pas pourquoi ils affichent le chemin de ce répertoire home, a priori c’est inutile pour l’utilisateur, mais je me trompe peut-être.

Pour la configuration des multi-sites, tu ne peux pas mettre de chemin absolu, ce sera rejeté par l’espace client. Par contre dans ton applicatif je pense que si tu utilises des chemins absolus, ça fonctionne, mais il vaut mieux ne pas le faire car le répertoire home peut être parfois amené à changer.

+2 -0

Et sinon, comment savoir dans ovh ce qui se cache exactement derrière le "." de ". /www"? Je pensais que ça désignait le répertoire home "/home/XYZ" du coup. Enfin on s’en fiche de toute façon mais c’est par curiosité :)

HerbeQuiBenchEtSquat

Le . ne désigne pas le répertoire HOME de façon générale, mais simplement le répertoire courant (aussi dit le working directory). Si tu changes de répertoire (à coup de cd par exemple, opération possible via SFTP), tu changes donc la valeur de .. De façon générale, . prend la valeur de ce qui est retourné par pwd.

Exemple dans une session SFTP, la valeur de . est à la valeur /tmp au début, mais devient /tmp/test1 après changement de répertoire (via cd) :

sftp> pwd
Remote working directory: /tmp
sftp> cd test1/
sftp> pwd
Remote working directory: /tmp/test1  # . a changé
sftp> cd .
sftp> pwd
Remote working directory: /tmp/test1  # Toujours la même chose
sftp> cd ./././././.
sftp> pwd
Remote working directory: /tmp/test1  # Encore la même chose
sftp>

Donc tant que tu restes dans le repertoire HOME, le . sera bien à cette valeur. Mais cela ne vaut plus si tu changes de répertoire.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte