web-dev-qa-db-fra.com

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

Est-ce que quelqu'un sait comment changer la racine du document du serveur Apache? En gros, je veux que localhost vienne du répertoire /users/spencer/projects au lieu de /var/www.

Modifier

J'ai fini par le comprendre. Certains m'ont suggéré de changer le fichier httpd.conf, mais j'ai fini par trouver un fichier dans /etc/Apache2/sites-available/default et de changer le répertoire racine de /var/www à /home/myusername/projects_folder, ce qui a fonctionné. 

222
Spencer Cooley

Vous devez modifier le paramètre DocumentRoot dans votre fichier httpd.conf. Il y a des chances que ce soit sous quelque chose comme /etc/Apache2/conf/httpd.conf

Utilisez votre éditeur préféré (je recommande Vim ) et cherchez la variable DocumentRoot et remplacez-la par /users/spencer/projects. Regardez aussi un peu plus bas pour un réglage qui ressemble à ceci:

<Directory "/var/www">

Vous voudrez également changer le contenu des guillemets dans votre nouveau répertoire. Cela donne à Apache un accès en lecture à partir de ce répertoire lorsqu'un utilisateur fait une demande qui appelle dessus.

Maintenant, redémarrez votre service Apache (httpd -k restart) et vous devriez être prêt à partir.

Edit: les fichiers de configuration de site Apache2 sont maintenant généralement conservés dans /etc/Apache2/sites-available/ (Debian, Ubuntu, etc.).

188
RDL

Veuillez noter que cela s'applique uniquement à Ubuntu 14.04 LTS et aux versions plus récentes.

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

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

Alors juste faire un

Sudo nano /etc/Apache2/sites-available/000-default.conf

et changez la ligne suivante en ce que vous voulez:

DocumentRoot /var/www/html

Aussi faire un 

Sudo nano /etc/Apache2/Apache2.conf

et trouve ça 

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

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

et enregistrez-le.

Après avoir enregistré vos modifications, redémarrez simplement 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 le Sudo nano par un gksu gedit.

245
mozzbozz

Je devais éditer /etc/Apache2/sites-available/default. Les lignes sont les mêmes que celles mentionnées par RDL.

42
Nick

Ceci est pour Ubunutu 14.04:

Dans le fichier /etc/Apache2/Apache2.conf, cela devrait être comme ci-dessous sans le nom du répertoire:

<Directory /home/username>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

et dans le fichier /etc/Apache2/sites-available/000-default.conf, vous devez inclure le nom de répertoire personnalisé, à savoir www:

DocumentRoot /home/username/www

Sinon, vous obtiendrez une erreur lors du chargement du serveur: Forbidden You don't have permission to access / on this server

19
androsfat

La bonne façon de changer de répertoire ou d’exécuter à partir de plusieurs répertoires sous un port différent pour Apache2 est la suivante:

Pour Apache2, les fichiers de configuration se trouvent sous /etc/Apache2 et n'utilisent pas un fichier de configuration unique comme dans les versions antérieures, mais sont divisés en fichiers de configuration plus petits, /etc/Apache2/Apache2.conf étant le fichier de configuration principal. Pour servir les fichiers d'un répertoire différent, nous avons besoin d'un nouveau fichier de configuration virtualhost. Les fichiers de virtualhost conf sont situés dans /etc/Apache2/sites-available (ne modifiez pas les fichiers dans les sites activés). L'installation par défaut d'Apache utilise le fichier de configuration virtualhost 000-default.conf.

Commencez par créer un nouveau fichier virtualhost en copiant le fichier virtualhost par défaut utilisé par l'installation par défaut d'Apache (celui qui s'exécute sur localhost sur le port 80). Allez dans le répertoire /etc/Apache2/sites-available puis créez une copie par Sudo cp 000-default.conf example.com.conf, modifiez maintenant le fichier par Sudo gedit example.com.conf en:

<VirtualHost *:80>
    ServerAdmin example@localhost
    DocumentRoot /home/ubuntu/example.com    
</VirtualHost>

J'ai supprimé les lignes non importantes du fichier ci-dessus par souci de brièveté. Ici, DocumentRoot est le chemin du répertoire à partir duquel les fichiers du site Web doivent être servis, tel que index.html.

Créez le répertoire à partir duquel vous voulez servir les fichiers, par exemple; mkdir example.com et modifier le propriétaire et le groupe par défaut du répertoire, par exemple, si votre nom d'utilisateur connecté est ubuntu, modifiez les autorisations en tant que Sudo chown ubuntu:www-data example.com. Ceci accorde un accès complet à l'utilisateur ubuntu et permet un accès en lecture et en exécution au groupe www-data.

Maintenant, éditez le fichier de configuration Apache /etc/Apache2/Apache2.conf en émettant la commande Sudo gedit Apache2.conf et recherchez la ligne <Directory /var/www/> et sous la balise de fermeture </Directory>, ajoutez ce qui suit:

<Directory /home/ubuntu/example.com>
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

Il existe maintenant deux commandes pour activer ou désactiver les fichiers de configuration de virtualhost, qui sont respectivement a2ensite et a2dissite. Maintenant que notre fichier example.com.conf utilise le même port (80) que celui utilisé par le fichier de configuration par défaut (000-default.conf), nous devons désactiver le fichier de configuration par défaut en émettant la commande Sudo a2dissite 000-default.conf et activer notre fichier de configuration virtualhost par Sudo a2ensite example.com.conf.

Maintenant, redémarrez ou rechargez le serveur avec la commande Sudo service Apache2 restart. Maintenant, Apache sert les fichiers du répertoire example.com à localhost sur le port par défaut de 80.

La commande a2ensite crée essentiellement un lien symbolique vers le fichier conf sous le répertoire activé par le site.

Ne modifiez pas les fichiers dans le répertoire actif (ou * compatible), comme indiqué dans cette réponse https://stackoverflow.com/a/41568701/2532763

Pour modifier le port et exécuter à partir de plusieurs répertoires sur différents ports:

Maintenant, si vous devez exécuter le répertoire sur un autre port, modifiez le numéro de port de 80 à 8080 en modifiant le fichier virtualhost comme suit:

<VirtualHost *:8080>
    ServerAdmin user@localhost
    DocumentRoot /home/ubuntu/work
</VirtualHost>

et éditer /etc/Apache2/ports.conf et ajouter Listen 8080 juste en dessous de la ligne Listen 80

Nous pouvons maintenant activer le fichier de configuration virtualhost par défaut qui s'exécute sur le port 80 car le répertoire exemple.com utilise le port 8080, sous la forme Sudo a2ensite 000-default.conf

Maintenant, redémarrez ou rechargez le serveur avec la commande Sudo service Apache2 restart. Maintenant, les deux répertoires sont accessibles à partir de localhost et localhost:8080

8
lordvcs

Pour Apache2 on Linux Mint 17.3 Cinnamon 64 bits, les travaux suivants:

  1. Dans /etc/Apache2/sites-available/, ouvrez le fichier 000-default.conf et modifiez la racine Document par le chemin absolu de votre répertoire.

    Sudo vim /etc/Apache2/sites-available/000-default.conf

  2. Dans /etc/Apache2/, ouvrez httpd.conf et ajoutez une balise <Directory> référençant votre répertoire et contenant exactement les mêmes paramètres que la balise pour var/www

    Sudo vim /etc/Apache2/Apache2.conf

    Sur ma machine, cela ressemblait à ceci:


<Directory /home/my_user_name/php/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Remarque: Dans la première étape, vous souhaiterez probablement modifier racine du document dans le fichier default-ssl.conf également à des fins SSL. Mais pour autant que je sache, cela n'est pas nécessaire pour faire fonctionner un environnement de développement général.

4
stackato

Je travaillais avec LAMP etPour changer le dossier racine du documenti ai édité le dossier default qui se trouve dans /etc/Apache2/sites-available folder Si vous voulez faire la même chose, éditez 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/nom_utilisateur/new_root_folder * content.

4
Shashidhara

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

Redémarrez Apache en utilisant Sudo service Apache2 restart

3
Nitin

Si vous utilisez Ubuntu 16.04 ..__, veuillez mettre à jour le fichier 000-default.conf dans le répertoire/etc/Apache2/sites-available.

ici -> ServerAdmin webmaster @ localhost DocumentRoot/var/www/html/YourFolder

2
Shashank Saxena

J'avais fait du /var/www un lien virtuel vers le répertoire requis (par exemple, /users/username/projects) et tout allait bien après.

Cependant, naturellement, le /var/www original doit être supprimé - ou renommé.

1
maan81

Dans Apache version 2.4.18 (Ubuntu).

1. Allez à ce fichier /etc/Apache2/Apache2.conf Recherchez <Directory /var/www/> et remplacez-le dans votre répertoire ......

2. Allez dans /etc/Apache2/sites-available/000-default.confsearch pour DocumentRoot /var/www/html et remplacez-le par votre racine de document ....

1
habibun

Si quelqu'un a installé LAMP dans le dossier /opt, le /etc/Apache2 n'est pas ce que vous recherchez.

Recherchez le fichier httpd.conf dans /opt/lampp/etc/httpd.conf.

Modifiez la ligne dans ce dossier et enregistrez-la à partir du terminal.

1
nextgtech

S'applique à Ubuntu 14.04 et aux versions ultérieures. Assurez-vous de sauvegarder les fichiers suivants avant d’apporter des modifications.

1.Ouvrez /etc/Apache2/Apache2.conf et recherchez la directive <Directory /var/www/> et remplacez le chemin par /home/<USERNAME>/public_html. Vous pouvez utiliser * au lieu de.

2.Ouvrez /etc/Apache2/sites-available/000-default.conf et remplacez la propriété DocumentRoot value de /var/www/html à /home/<USERNAME>/public_html. Aussi <Directory /var/www/html> à <Directory /home/<USERNAME>/public_html.

3.Ouvrez /etc/mods-available/php7.1.conf. Rechercher et commenter le code suivant

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

N'activez pas le drapeau php_admin_flag engine OFF car la raison est mentionnée dans le commentaire ci-dessus Code de la directive. Aussi la version php peut être 5.0, 7.0 ou tout ce que vous avez installé.

Créez le répertoire public_html dans home/<USERNAME>.

Redémarrez le service Apache en exécutant la commande Sudo service Apache2 restart.

Testez en exécutant un exemple de script sur le serveur.

0
user1184294

Dans RedHat 7.0: /etc/httpd/conf/httpd.conf

0
ehacinom

Si vous utilisez Linux Mint (opinion personnelle, de toutes les distributions, celle-ci me rend heureux), suivez ceci:

1- Allez dans/etc/Apache2/sites-available et modifiez 000-default.conf 2- Recherchez DocumentRoot, par exemple DocumentRoot/var/www/html, que vous avez modifié dans votre répertoire respectif; 3- Ouvrez le terminal et tapez: Sudo service Apache2 restart

EDITED ----- Je me rends compte que dans Mint vous choisissez /etc/Apache2/Apache.conf, remplacez/var/www par votre chemin respectif, puis redémarrez le serveur (étape 3).

C'est tout.

0
Marcelo Agimóvel