280 votes

Comment changer le répertoire racine d'un serveur apache ?

Quelqu'un sait-il comment modifier la racine du document du serveur Apache ? Je veux essentiellement localhost pour venir de /users/spencer/projects au lieu de /var/www .

Modifier

J'ai fini par trouver une solution. Certains ont suggéré que je change le httpd.conf mais j'ai fini par trouver un fichier en /etc/apache2/sites-available/default et changé le répertoire racine de /var/www à /home/myusername/projects_folder et ça a marché.

1 votes

Stack Overflow est un site de questions sur la programmation et le développement. Cette question semble être hors sujet car elle ne concerne pas la programmation ou le développement. Voir Quels sont les sujets sur lesquels je peux poser des questions ici dans le centre d'aide. Peut-être Défaut du serveur ou Webmaster Stack Exchange serait un meilleur endroit pour demander.

291voto

mozzbozz Points 182

Veuillez noter que ceci ne s'applique qu'à Ubuntu 14.04 LTS et aux versions plus récentes.

Dans mon Ubuntu 14.04 LTS, la racine du document était définie comme suit /var/www/html . Il a été configuré dans le fichier suivant :

/etc/apache2/sites-available/000-default.conf

Donc faites juste un

sudo nano /etc/apache2/sites-available/000-default.conf

et changez la ligne suivante pour ce que vous voulez :

DocumentRoot /var/www/html

Faites aussi un

sudo nano /etc/apache2/apache2.conf

et trouver ceci

<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

et le changement /var/www/html dans votre répertoire préféré

et le sauvegarder.

Après avoir enregistré vos modifications, redémarrez le serveur web apache2 et vous aurez terminé :)

sudo service apache2 restart

Si vous préférez un éditeur de texte graphique, vous pouvez simplement remplacer la balise sudo nano par un gksu gedit .

0 votes

Sur mon ubuntu 13.10, je ne trouve aucun fichier *.conf sous /etc/apache2/sites-available/, est-ce dû à une version différente ?

1 votes

@Paul Lo : Je n'ai pas essayé cela sur Ubuntu 13.10, seulement sur Ubuntu 14.04 ; car je suis presque sûr que la première fois que j'ai configuré apache (qui était sur Ubuntu 12.04), ce répertoire n'existait pas. Donc oui, je suppose que cela n'est disponible que sur Ubuntu 14.04 LTS et plus récent. Cependant, vous pouvez jeter un coup d'œil aux autres réponses. Les votes positifs suggèrent qu'elles ont aidé d'autres personnes, peut-être qu'elles fonctionnent également avec Ubuntu 13.10.

1 votes

Cependant, merci d'avoir demandé, j'ai juste édité cette information dans la réponse pour que personne d'autre ne tombe dans le piège d'essayer ceci avec des versions plus anciennes d'Ubuntu (y).

230voto

RDL Points 3589

vous devez modifier le paramètre DocumentRoot de votre site Web. httpd.conf fichier. Il y a de fortes chances que ce soit sous quelque chose comme /etc/apache2/conf/httpd.conf

Utilisez votre éditeur préféré (je recommande Vim ) et cherchez le DocumentRoot et le changer en /users/spencer/projects .

Regardez également un peu plus bas pour trouver un paramètre qui ressemble à ceci :

<Directory "/var/www">

Vous voudrez également changer ce qui se trouve dans les guillemets pour votre nouveau répertoire. Cela donne à Apache l'accès à la lecture de ce répertoire lorsqu'un utilisateur fait une requête qui l'appelle.

Maintenant, redémarrez votre service apache : httpd -k restart

Vous devriez être prêt à partir.

Edition : les fichiers de configuration des sites apache2 sont maintenant typiquement conservés dans /etc/apache2/sites-available/ (Debian, Ubuntu, etc)

7 votes

J'ai ouvert /etc/apache2/httpd.conf , mais le fichier était vide. Je l'ouvre avec gedit.

4 votes

Le fichier peut se trouver dans /etc/httpd/conf/httpd.conf, en fonction de votre version de Linux.

3 votes

Le fichier httpd.conf est vide mais j'ai trouvé un fichier dans etc/apache2/sites-available/default et j'ai changé le répertoire racine à cet endroit. J'aurais probablement dû mentionner que ce n'est pas sur un serveur réel. Je suis en train de mettre en place un environnement de développement local. Je ne sais pas si cela fait une différence.

44voto

Nick Points 2909

J'ai dû modifier /etc/apache2/sites-available/default . Les lignes sont les mêmes que celles mentionnées par RDL.

3 votes

Une modification suggérée par @pabloab avait ceci à dire : "Apache 2.4 et plus nécessite .conf à la fin, et par défaut ont un 000- comme préfixe". Le résultat est le suivant /etc/apache2/sites-available/000-default.conf . Je ne l'ai pas testé, mais cela peut aider certaines personnes.

0 votes

^^ cela l'a réparé. Où est-il indiqué que j'ai besoin de .conf à la fin de mes fichiers sites-available ? !? J'ai environ 20 hôtes virtuels qui ont été désactivés et hors ligne après une mise à jour, et après quelques heures, trouver ceci et renommer mes fichiers sites-available a réglé le problème pour moi.

0 votes

Pour exécuter Apache dans un répertoire utilisateur, vous devez ajouter l'utilisateur au groupe Apache et Apache au groupe utilisateur. Je suggère d'ajouter les 3 commandes suivantes à la réponse : Ouvrez le terminal avec votre utilisateur et exécutez : sudo usermod -a -G www-data $USER ; sudo adduser $USER www-data ; sudo adduser www-data $USER ;

4voto

Nitin Points 89

Si vous ne pouviez pas trouver http.conf et a suivi le chemin de Nick.

Redémarrez Apache en utilisant sudo service apache2 restart

4voto

shashidhara Points 11

Je travaillais avec LAMP et Pour modifier le dossier racine du document j'ai édité par défaut qui se trouve dans /etc/apache2/sites-available dossier. Si vous voulez faire la même chose, il suffit d'éditer comme suit

DocumentRoot /home/username/new_root_folder
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/username/new_root_folder>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

Après cela, si vous tapez localhost dans le navigateur, il chargera */home/username/new_root_folder* (nom d'utilisateur) contenu.

0 votes

Quel est le nom du fichier ? 000-default.conf ?

0 votes

Pour exécuter Apache dans un répertoire utilisateur, vous devez ajouter l'utilisateur au groupe Apache et Apache au groupe utilisateur. Je suggère d'ajouter les 3 commandes suivantes à la réponse : Ouvrez le terminal avec votre utilisateur et exécutez : sudo usermod -a -G www-data $USER ; sudo adduser $USER www-data ; sudo adduser www-data $USER ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X