Mode d'exécution d'une instance d'Apache
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 :
Code:
1 2
| export APACHE_RUN_USER=xxxxx
export APACHE_RUN_GROUP=xxxxx |
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.
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.
Merci pour les explications
Merci DarkStar123456,
Je n'avais pas pensé à utiliser su comme ça. Du coup, je me suis créé un utilisateur local supplémentaire, et c'est avec lui que je me connecte en SSH. C'est parfait comme ça.
En fait, à la base, mon serveur apache tourne en tant que www-data:www-data hors cet utilisateur est un utilisateur virtuel, sans shell et sans mot de passe, on ne peut pas ouvrir de session avec. En clair, su www-data ne fonctionne pas. C'est pourquoi je me suis créé un utilisateur supplémentaire.