51 votes

Comment faire fonctionner Apache en tant qu'utilisateur courant

Je pense que pour une machine de développement, il est plus pratique de lancer Apache en tant qu'utilisateur courant pour simplifier le problème des permissions ? Comment faire ? Je pense que c'est suexec mais comment le configurer dans Ubuntu+Apache ?

67voto

Eric Points 800

Modifiez le fichier suivant en tant que root : /etc/apache2/envvars

à l'aide de la commande :

sudo nano /etc/apache2/envvars

changez l'utilisateur et le groupe pour vous-même s'il n'y a qu'un seul utilisateur et vous n'aurez plus jamais de problèmes de permissions.

Par exemple, si vous ne vous connectez et ne faites fonctionner le serveur qu'en tant qu'utilisateur "big_dog" :

export APACHE_RUN_USER=big_dog
export APACHE_RUN_GROUP=big_dog

D'ailleurs, vous pourriez changer cet utilisateur en l'utilisateur actuel, j'en suis sûr. Ensuite, en installant user_dir, vous avez tous les sites web dont vous êtes le seul à avoir le contrôle total (à moins que vous ne modifiiez ceci).

Redémarrez le serveur (si vous n'êtes pas sûr, redémarrez simplement le serveur ou goole) et vous êtes prêt à partir.

29voto

Rinzwind Points 270388

Pour ma part, j'ajouterais l'utilisateur au www-data groupe avec ...

sudo adduser {username} www-data

Simple et efficace. Pas de fichiers de configuration ou de permissions à gérer.

2voto

CodeAlfa Points 51

Vous pouvez le faire à l'aide de la fonction mpm_itk_module module.

Installation sur Ubuntu 20.04 :

sudo apt install libapache2-mpm-itk

Créer un hôte virtuel pour les sites de votre dossier personnel

<VirtualHost codealfa:*>
    ServerName codealfa
    ServerAlias codealfa
    DocumentRoot "/home/codealfa/www"

    <IfModule mpm_itk_module>
        AssignUserId codealfa codealfa
    </IfModule>

    <Directory /home/codealfa/www>
        Options Indexes FollowSymLinks Includes ExecCGI
        DirectoryIndex index.html index.php
        Order deny,allow
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Ajoutez votre domaine (dans ce cas, j'utilise le nom d'utilisateur comme domaine) à /etc/hosts

127.0.0.1    codealfa

Redémarrer apache

sudo systemctl restart apache2

Installez tous vos sites dans des sous-dossiers sous /home/codealfa/www et y accéder dans votre navigateur à partir de http://codealfa/ . Par exemple, installer un site à /home/codealfa/www/site1 et vous pouvez la consulter dans votre navigateur à l'adresse suivante http://codealfa/site1/ .

1voto

Kresimir Pendic Points 1030

Pourquoi faire cela, j'ai eu des problèmes de perm dans le passé, mais c'est mon processus de développement à partir d'aujourd'hui :

  • installer une nouvelle machine linux (virtuelle ou locale comme un ordinateur portable)

  • norme d'exécution sudo apt-get install lamp-server^ proc pour faire monter la lampe

  • faire un lien sym vers mon répertoire personnel où se trouvent les projets de ce type :

    ln -s /home/user/html /var/www/html

  • faire un lien sym vers le fichier de configuration des hôtes

    ln -s /home/user/html/Apache-VirtualHosts.conf /etc/apache/sites-enabled/000-default

c'est tout :)

Il fonctionne comme prévu, pas de problèmes avec les perms des utilisateurs ou quelque chose de similaire avec le serveur apache, pour mysql j'ai un processus un peu plus long

hth, cheers

0voto

Mufaka Points 54

En dehors de la question "devriez-vous faire cela", vous pouvez trouver où l'utilisateur pour apache est défini en exécutant :

grep www- /etc/apache2/apache2.conf

Il s'agit ensuite de modifier ces instances dans le fichier /etc/apache2/apache2.conf et de recharger Apache ( sudo /etc/init.d/apache2 reload ).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X