Modifier le DocumentRoot

#1
Bonjour à tous je suis heureux de rejoindre votre communauté, je passe dès aujourd'hui chez planethoster avec une offre World.
Le service client a été très convainquant. Merci à Marc André d'avoir pris le temps de me répondre (si il passe par là).

Ceci dit passons à la question :

Je n'utilise pas de CMS je suis sur un framework perso. J'étais sur VPS jusqu'à maintenant et je modifiais le DocumentRoot dans le VHOST d'apache pour le faire pointer vers /home/user/www/public, qui contient mon index.php (point d'entré unique de mon application).

La seule astuce que j'ai trouvé pour palier à ça chez planethoster c'est de mettre un htacces dans le répertoire public_html avec la directive :

Config Apache:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domaine.com$
RewriteRule ^(/home/user/public_html)?$ /public/index.php [L]
Je n'aime pas trop cette manière de faire parce que ça implique d'avoir 2 directive. Une dans le VHOST (où je n'ai pas accès), qui va pointer vers le répertoire public_html puis une seconde directive via le htaccess qui ce trouve dans le répertoire public_html et qui va pointer vers le sous répertoire /public/index.php.

Est ce qu'il y a un moyen quelconque de modifier le vrais DocumentRoot dans le VHOST pour n'avoir qu'une seule directive ?

Merci pour vos éventuels retours.
 

PH-Marc-André.B.

Modérateur
Membre du personnel
#3
Bonjour,

Sur notre plate-forme The World le changement du httpd.conf n'est pas possible mais ce le serait avec notre solution HybridCloud dédiée.

Il faudra hélas se résoudre à mettre la redirection .htaccess comme vous avez décrit.

Merci pour votre compréhension,
 

JulieRama

New Member
#5
Pour rediriger vers une autre dossier la racine du domaine principal, j'ai une autre manip que je trouve plus pratique :
Dans mon cas, j'ai toute une arborescence Capistrano à déployer sur le domaine principal de planetHoster.
l'arborescence étant infâme, avec des dossiers partagés, de releases, tmp, je ne me voyais pas faire des manipulations de htaccess. Surtout que je migre régulièrement entre les serveurs locaux, dev et prod...

Du coup ma solution est de :
1 créer un nouveau dossier pour mettre ses fichiers web
2 supprimer le dossier public_html
3 le remplacer pour un lien symbolique du même nom via la commande ssh

> ln -s /home/id_planethoster/mon_site_déployé/current/public /home/id_planethoster/public_html

Au final www pointe vers public_html qui pointe vers le dossier où se trouve mon site !

Après quelques heures à tourner sur le back office, dans les docs PH et Capistrano à me gratter la tête pour résoudre mon problème, ça marche nickel !

Edit: quelques élément de configuration pour laravel et capistrano pour PlanetHoster

Ruby:
# Deploy.rb
set :deploy_to, "/home/id_PH/monsite/"
set :tmp_dir, "/home/id_PH/tmp"

# la commande setfacl n'existe pas sur le server
# donc j'ai désactivé temporairement  les commandes suivantes
# en atendant de trouver une solution

# Ensure the paths in :file_permissions_paths exist?
set :laravel_ensure_acl_paths_exist, false

# Set ACLs for the paths in laravel_acl_paths?
set :laravel_set_acl_paths, false

# capfile
require 'capistrano/laravel'
SSHKit.config.command_map[:composer] = "/home/id_PH/composer.phar"
SSHKit.config.command_map[:php] = "/opt/alt/php73/usr/bin/php"
SSHKit.config.command_map[:npm] = "/opt/alt/alt-nodejs8/root/usr/bin/npm --scripts-prepend-node-path=true"
SSHKit.config.command_map[:node] = "/opt/alt/alt-nodejs8/root/usr/bin/node"
SSHKit.config.command_map[:run] = "run --scripts-prepend-node-path=true"
 
Dernière édition:
Haut