Configuration :
Debian 10 à jour hébergeant un L.A.M.P. à jour lui aussi.
Drupal 8 et 9 (PHP 7, Symfony)
Apache2 en configuration standard, mes seules implémentations se limitant à l'activation de sites gérés par le nom.
Bonjour à tous,
Je me permet de vous solliciter face à un problème certainement simple a résoudre, mais qui malheureusement pour moi me dépasse.
Je ne suis pas spécialiste de l'administration Apache, et je développe du Web service sur la plateforme Drupal. Je ne connais pas d'autres plateformes, je suppose que c'est aussi le cas pour elles mais avec Drupal, nous sommes régulièrement amenés à évoluer en terminal distant dans l'arborescence de nos projets pour réaliser des commandes locales spécifiques à Drupal comme sa console, voir son shell drush.
Jusque là, rien de bien violent. Sauf que mon serveur Apache étant dans sa configuration par défaut est exécutée en tant qu'utilisateur www-data du groupe d'utilisateur du même nom.
Pour que du côté Apache tout fonctionne, il va de soi que l'intégralité de l'arborescence de mes projets Drupal soit la propriété de cet utilisateur, sans quoi, tout le côté dynamique de Drupal ne peut être mis en œuvre. En d'autres termes, le User de mon instance Apache doit pouvoir écrire dans les dossiers qu'il manipule.
Du coup, lors de mes actions en terminal distant, je me trouvais dans l'obligation de m'approprier la paternité de cette arborescence pour y œuvrer avec mes commandes drush et console. Et surtout, ne pas oublier de restituer cette paternité à www-data après manipulations, ou pour chaque test de contrôle.
Je me suis dit que pour régler ce problème, il me suffirait de ne travailler qu'avec une seule identité, hors, www-data n'en est pas une. Seule mon identité d'utilisateur locale de mon système est concrète. J'en ai alors conclu qu'il me suffirait de trouver le moyen de lancer Apache en tant que moi plutôt qu'en tant que www-data. Cela n'a pas été bien compliqué. J'ai modifié le fichier envvars situé sous /etc/apache2 sur mon installation Debian 10 pour mettre en place mon nom d'utilisateur local en lieu et place de www-data dans les lignes :
J'ai redémarré mon serveur après avoir cette fois volontairement laissé la propriété de mon arborescence Web à mon utilisateur locale. Bingo, ça marche à la perfection.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 export APACHE_RUN_USER=xxxxx export APACHE_RUN_GROUP=xxxxx
Cependant il y a un MAIS. C'était trop beau.
Comme Apache est lancé en tant que mon utilisateur locale, lorsque je me connecte en shell distant pour effectuer mes opérations de mises à jour du cœur de Drupal via composer et autres actions, que se passe-t-il lorsque je me déconnecte ? Vous l'avez deviné, mon instance d'Apache s'arrête. C'est ballot.
Est-ce possible de conserver cette configuration Apache en trouvant un moyen d'éviter d'arrêter mon instance Apache lorsque je me déconnecte ?
Si oui, comment. Je sèche complètement.
Merci pour votre aide.
Partager