Hébergement web
Transfert de fichiers
Afin de garantir la sécurité des échanges, tous les fichiers doivent être transférés via SFTP ou SSH. Veuillez vous référer à la page Générer les clés SSH pour générer une clé, obligatoire pour vous connecter.
Attention, le port 22 utilisé par le SFTP/SSH est fermé par défaut. Pour l’ouvrir, veuillez faire une demande en indiquant votre adresse IP de sortie (visible sur https://ip.dri.fr par exemple).
Le transfert direct en SFTP vers l’arborescence du site est cependant déconseillé car cela peut conduire à des problèmes de permissions.
Dans ce cas l’utilisateur doit avoir l’option « webmaster » cochée et passer par la commande sudo -u www-deploy
pour faire des opérations (voir la partie Les fichiers « Web » )
Pour ajouter, supprimer ou modifier une clé existante ou le profil, veuillez vous rendre sur la fiche de votre serveur en allant dans Sites & Applications => L’application => Services => Environnement => Utilisateurs / Accès SFTP.
Pour pouvoir appliquer les droits en poussant directement dans l’arborescence, il y a deux solutions :
Utiliser rsync en appelant la commande rsync présente sur le serveur avec la commande sudo afin de changer d’utilisateur :
rsync --rsync-path="sudo -u www-deploy rsync" -e "ssh -i ~/.ssh/id_ed25519" <suite des options>
Utiliser WinSCP qui offre cette possibilité : https://winscp.net/eng/docs/faq_su
Attention cependant, le chemin indiqué dans la documentation de WinSCP ne correspond pas à notre implémentation, il faut indiquer dans notre cas:
sudo -u www-deploy /usr/lib/sftp-server

Les fichiers « Web »
Le répertoire racine de votre hébergement se situe dans votre « home » sous ~/www/php/<NomDeDomaine>
. Ce répertoire est un lien symbolique de /srv/php/<NomDeDomaine>
sur votre VM.
Une gestion des droits par ACL est présente et devrait vous permettre d’éviter tous problème d’accès.
Le DocumentRoot est paramétrable si besoin via un ticket ÉVA Pilote.
Certains paramètres PHP sont également modifiables sur demande par ticket ÉVA Pilote.
Un utilisateur spécial www-deploy
ainsi qu’un groupe webmasters
est créé pour les services Web, qui a les droits sur l’arborescence du site.
Les utilisateurs ayant le profil « webmaster » sont rattachés au groupe webmasters
et peuvent faire des opérations avec cet utilisateur via la commande sudo.
Il est fortement conseillé de procéder de cette façon pour éviter les problèmes de droits avec les fichiers gérés par l’utilisateur du serveur web (en général, www-data
)
Exemple en lançant le script composer
dans l’arborescence d’un site web pour installer les dépendances PHP :
sudo -u www-deploy composer install
L’appartenance au groupe webmasters permet également l’édition de tâches planifiées (« cron ») avec la commande suivante :
sudo -u www-data crontab -e
Si vous obtenez un message d’erreur il est possible que votre utilisateur ne dispose pas du profil « webmaster », dans ce cas veuillez contacter le support afin qu’il procède à la mise à jour de votre compte.
Du fait de ce mécanisme, il est déconseillé de transférer des fichiers directement dans l’arborescence depuis votre utilisateur, car ils risquent de ne pas être créés avec des droits suffisants.
Si vous constatez de fortes incohérences dans les permissions de l’arborescence de votre site, veuillez consulter le support qui pourra remettre l’ensemble dans un état cohérent (propriétaire www-deploy
, groupe www-data
, droits d’accès à l’utilisateur www-deploy
,
le tout suivant ce qui a été choisi soit en lecture seule, soit en lecture/écriture; attention cependant aux droits existants qui seront écrasés). Veuillez noter qu’actuellement il n’est pas facilement possible d’avoir une partie de l’arborescence en lecture seule et une autre en lecture/écriture.
Usage d’une commande PHP en mode Docker
Note
Les anciennes versions non-supportées (inférieures à 8.0) sont proposées en mode Docker. De façon générale, une version récente de PHP sera installé en mode « natif ».
Pour vérifier que PHP est hébergé dans un conteneur, vous pouvez par exemple lancer la commande suivante : whereis php
Le résultat dépend du chemin. Si le résultat obtenu est /usr/local/bin/php
, PHP est dans un conteneur. Dans le cas contraire, le résultat obtenu sera /usr/bin/php
(éventuellement suivi de la version si vous en avez
plusieurs)
Si PHP est dans un conteneur, il faut préciser l’ensemble de la chaîne de commande pour que celle-ci s’exécute correctement, toujours via l’utilisateur www-deploy
pour éviter les problèmes de droits.
sudo -u www-deploy /usr/local/bin/php /srv/www/php/<vhost/docroot>/<PathTo>/<script.php>
composer
est déjà présent dans le conteneur, on peut l’utiliser via :
sudo -u www-deploy /usr/local/bin/php /usr/local/bin/composer --working-dir=/srv/www/php/<vhost/docroot> <Ligne de commande>
Les fichiers de configuration de composer
sont dans votre home/composer
Après avoir installé drush
sudo -u www-deploy /usr/local/bin/php /srv/www/php/<vhost/docroot>/<PathTo>/drush.php --root=/srv/www/php/<vhost/docroot>
Après avoir installé wp-cli
sudo -u www-deploy /usr/local/bin/php /srv/www/php/<vhost/docroot>/<PathTo>/wp-cli --allow-root --path=/srv/www/php/<vhost/docroot>
Problèmes possibles avec l’hébergement web
Paramètres par défaut pouvant poser problème :
L’arborescence d’un site est créée en lecture seule, si vous avez besoin des droits d’écriture, merci de faire une demande au support.
Les paramètres indiqués après le nom d’un fichier se terminant par
php
sont bloqués. Si vous utilisez cette fonctionnalité (par exemple pour le PATH_INFO), vous devez faire une demande au support pour l’activer.