Dans notre exemple, nous cherchons à faire pointer le sous-domaine mon_site.flho.net vers le dossier /httpdocs/app_symfony/web. Ce dossier /web est donc à déclarer comme DocumentRoot.
Pour cela, on se connecte en SSH à son Plesk, et on crée un fichier vhost.conf dans le dossier conf :
$ cd /var/www/vhosts/flho.net/subdomains/mon_site/conf/
$ vi vhost.conf
L'éditeur Linux vi a ouvert un fichier vide - vhost.conf - que l'on rédige de la sorte
DocumentRoot /var/www/vhosts/flho.net/subdomains/mon_site/httpdocs/app_symfony/web
ServerName mon_site.flho.net
<Directory /var/www/vhosts/flho.net/subdomains/mon_site/httpdocs/app_symfony/web>
AllowOverride All
Allow from All
<ifModule sapi_apache2.c>
php_admin_value open_basedir none
</ifModule>
<ifModule mod_php5.c>
php_admin_value open_basedir none
</ifModule>
</Directory>
Alias /sf /var/www/vhosts/flho.net/subdomains/mon_site/httpdocs/app_symfony/lib/vendor/symfony/data/web/sf
<Directory /var/www/vhosts/flho.net/subdomains/mon_site/httpdocs/app_symfony/lib/vendor/symfony/data/web/sf>
AllowOverride All
Allow from All
</Directory>
nota : la seconde partie (Alias) ne concerne que Symfony (lien vers les fichiers graphiques)
On enregistre et quitte ce fichier
<Echap>
:wq
$ /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=mon_site.flho.net
On redémarre Apache pour prendre en compte le nouvel Hôte Virtuel :/etc/init.d/httpd restart
Dès lors, le DocumentRoot est /httpdocs/app_symfony/web et on pointe bien sur l'index.php dans ce dossier lorsque l'on tape http://mon_site.flho.net
sauf ...
sauf quand cela ne marche pas :-(
Lorsque cela ne marche pas, on vérifie toutes les étapes et on redémarre le serveur Plesk (jusqu'à présent, on redémarrait le serveur Apache dans Plesk) :
/usr/local/psa/admin/sbin/websrvmng -r
on recommence alors les deux dernières étapes :
$ /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=mon_site.flho.net
/etc/init.d/httpd restart... et notre sous-domaine pointe alors vers le NOUVEAU DocumentRoot !
Note : j'ai trouvé cela en demandant (help) les options du manager :$ /usr/local/psa/admin/sbin/websrvmng -h
The missing option : -v -a
Récemment (= aujourd'hui), Plesk ne voulait pas mettre à jour son httpd.include, malgré les commandes évoquées précédemment. En fait, Plesk redémarrait ... sans prendre en compte mon nouveau vhost.conf, alors que la même opération avait été efficace pour 4 sous-domaines.
Grâce à ce Post de 2005 (sic), j'ai modifié ma commande de redémarrage des services de Plesk :
/usr/local/psa/admin/sbin/websrvmng -v -a
Les options -v -a ont fait la différence !!
Selon la doc (= l'afficher avec /usr/local/psa/admin/sbin/websrvmng -h) :
-a, --reconfigure-all
create configuration files for all domains
-v, --no-daemon
non-daemon mode without delay on restart apache
Je suppose que Plesk, ce gros fainéant, voyait qu'il avait déjà inclus des vhost.conf dans son httpd.include et ne voulait pas "rescanner" tout ce fichier pour savoir si l'un manquait à l'appel : l'option "-a" l'a forcé à revoir sa copie ;-)
1 commentaires:
Juste merci :)
Je cherchais depuis un bon petit moment ! Tu es mon sauveur du jour :D
@+
Enregistrer un commentaire