IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Mode d'exécution d'une instance d'Apache


Sujet :

Apache

  1. #1
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Je ne suis pas spécialiste de l'administration système mais étant développeur web, j'ai déjà été confronté à ce même genre de problème.

    D'une part, lors de la connexion SSH, ne serait-il pas possible de se connecter directement en tant que user qui doit avoir la propriété ?
    Sinon, il suffit d'utiliser la commande su userName pour faire comme si on s'était directement connecté en tant que userName

    Aussi; pour changer l'appartenance, il suffit de taper : chown -R userName:userGroup /etc/www.
    Cette commande va appliquer l'appartenance à userName & userGroup pour le dossier www situé dans /etc ainsi qu'à tous les enfants grâce au -R (oui, c'est bien un R majuscule dans ce cas-ci)

  3. #3
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut 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.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Redémarrer une instance MySql en mode --log
    Par Isiloki dans le forum Administration
    Réponses: 0
    Dernier message: 02/05/2012, 14h36
  2. Forcer l'exécution d'une application en mode Run et non pas Debug
    Par benthebest dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 18/04/2012, 22h27
  3. Réponses: 4
    Dernier message: 09/05/2008, 20h20
  4. Réponses: 1
    Dernier message: 28/09/2007, 09h42
  5. Exécuter plusieurs instances d'Apache et migrer de PHP 4 à PHP 5, par Arnold Daniels
    Par Yogui dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 12/10/2006, 18h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo