Comment changer le répertoire racine d'un serveur apache? [fermé]
Est-ce que quelqu'un sait comment changer la racine du document du serveur Apache? Je veux essentiellement que localhost
Vienne du répertoire /users/spencer/projects
au lieu de /var/www
.
Modifier
J'ai fini par comprendre. Certains ont suggéré-je changer la httpd.conf
fichier, mais j'ai fini par trouver un fichier dans /etc/apache2/sites-available/default
et changé le répertoire racine de /var/www
à /home/myusername/projects_folder
et que travaillé.
17 réponses
Vous devez modifier le paramètre DocumentRoot
dans votre fichier httpd.conf
. Les Chances sont qu'il sera sous quelque chose comme /etc/apache2/conf/httpd.conf
Utiliser votre éditeur préféré (je recommande Vim) et de regarder pour la DocumentRoot
et remplacez - /users/spencer/projects
. Regardez aussi un peu plus bas pour un paramètre qui ressemble à ceci:
<Directory "/var/www">
Vous voudrez également changer ce qui est dans les guillemets dans votre nouveau répertoire. Cela donne accès à Apache pour lire à partir de ce répertoire lorsqu'un utilisateur fait une demande qui appelle il.
Redémarrez maintenant votre service apache (httpd -k restart
) et vous devriez être prêt à partir.
Edit : les fichiers de configuration du site Apache2 sont maintenant généralement conservés dans /etc/apache2/sites-available/
(Debian, Ubuntu, etc.).
Veuillez noter que cela ne s'applique qu'aux versions Ubuntu 14.04 LTS et plus récentes.
Dans mon 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 faites juste un
sudo nano /etc/apache2/sites-available/000-default.conf
Et changez la ligne suivante en ce que vous voulez:
DocumentRoot /var/www/html
Faites aussi un
sudo nano /etc/apache2/apache2.conf
Et trouvez ceci
<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, il suffit de redémarrer 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 les
sudo nano
par gksu gedit
. J'ai dû modifier /etc/apache2/sites-available/default
. Les lignes sont les mêmes que celles mentionnées par RDL.
C'est pour Ubunutu 14.04:
Dans le fichier /etc/apache2/apache2.conf
, il 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 du répertoire personnalisé, c'est-à-dire www:
DocumentRoot /home/username/www
Sinon comme ci-dessus, il vous donnera une erreur lors du chargement du serveur:
Forbidden You don't have permission to access / on this server
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 sont situés sous /etc/apache2
et n'utilisent pas un seul fichier de configuration comme dans les anciennes versions, mais sont divisés en fichiers de configuration plus petits, /etc/apache2/apache2.conf
étant le fichier de configuration principal. Pour servir des fichiers à partir d'un répertoire différent, nous avons besoin d'un nouveau fichier de conf virtualhost. Les fichiers conf virtualhost se trouvent dans /etc/apache2/sites-available
(ne pas modifier les fichiers dans les sites-activé). L'installation par défaut d'apache utilise le fichier conf de 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 à localhost sur le port 80). Changer dans le répertoire /etc/apache2/sites-available
et ensuite faire copier par sudo cp 000-default.conf example.com.conf
, maintenant éditer le fichier par sudo gedit example.com.conf
à:
<VirtualHost *:80>
ServerAdmin example@localhost
DocumentRoot /home/ubuntu/example.com
</VirtualHost>
J'ai supprimé les lignes Non importantes du fichier ci-dessus pour plus de concision.
Créez le répertoire à partir duquel vous voulez servir les fichiers, par exemple; mkdir example.com
et changement de propriétaire et de groupe par défaut du répertoire, par exemple si votre nom de l'utilisateur connecté est ubuntu
modifier les autorisations que sudo chown ubuntu:www-data example.com
. Cela accorde un accès complet à l'Utilisateur ubuntu
et permet l'accès en lecture et en exécution au groupe www-data
.
Modifiez maintenant le fichier apache conf /etc/apache2/apache2.conf
en émettant la commande sudo gedit apache2.conf
et trouvez la ligne <Directory /var/www/>
et en dessous de la balise de fermeture </Directory>
, ajoutez ce qui suit ci-dessous:
<Directory /home/ubuntu/example.com>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
Maintenant, il y a deux commandes pour activer ou désactiver le les fichiers de configuration virtualhost, qui sont respectivement a2ensite
et a2dissite
. Maintenant, puisque 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 conf virtualhost par sudo a2ensite example.com.conf
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
essentiellement crée un lien symbolique vers le fichier conf sous le répertoire Site-enabled
Ne modifiez pas les fichiers dans le directoy sites-enabled(ou *-enabled), comme indiqué dans cette réponse https://stackoverflow.com/a/41568701/2532763
Pour changer 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 port différent, changez le numéro de port de 80 à 8080 en éditant le fichier virtualhost comme suit:
<VirtualHost *:8080>
ServerAdmin user@localhost
DocumentRoot /home/ubuntu/work
</VirtualHost>
Et modifier /etc/apache2/ports.conf
et ajouter Listen 8080
juste en dessous de la ligne Listen 80
Maintenant, nous pouvons activer le fichier de configuration virtualhost par défaut qui s'exécute sur le port 80 depuis example.com le répertoire utilise le port 8080, comme sudo a2ensite 000-default.conf
Redémarrez ou rechargez le serveur avec la commande sudo service apache2 restart
. Maintenant, les deux répertoires sont accessibles depuis localhost
et localhost:8080
Je travaillais avec une LAMPE et d'Pour modifier le dossier Racine de documents j'ai édité default fichier qui est dans /etc/apache2 / sites-disponible dossier. Si vous voulez faire la même chose, modifiez 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 * contenu.
Pour apache2 sur Linux Mint 17.3 Cannelle 64-bit les ouvrages suivants: -
-
Dans
/etc/apache2/sites-available/
Ouvrez le fichier000-default.conf
et remplacez la racine du Document par le chemin absolu de votre répertoire.sudo vim /etc/apache2/sites-available/000-default.conf
-
Dans
/etc/apache2/
Ouvrezhttpd.conf
et ajoutez une balise<Directory>
référençant votre répertoire et contenant exactement les mêmes paramètres que la balise pourvar/www
.sudo vim /etc/apache2/apache2.conf
Sur ma machine, il ressemblait ce:
<Directory /home/my_user_name/php/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Remarque: Dans la première étape, vous voudrez probablement changer Document Racine dans le default-ssl.conf
, de même pour le SSL fins. Mais pour autant que je sache, ce n'est pas nécessaire pour faire fonctionner un environnement de développement général.
Si vous ne pouviez pas trouver {[0] } et suivi le chemin de Nick.
Redémarrez Apache en utilisant sudo service apache2 restart
Au cas où vous utilisez Ubuntu 16.04. Veuillez mettre à jour le 000-default.conf dans le répertoire /etc/apache2/sites-available.
Ici--> ServerAdmin webmaster @ localhost DocumentRoot / var/www/html / YourFolder
Si quelqu'un a installé LAMP
dans le /opt
dossier puis le /etc/apache2
n'est pas ce que vous cherchez.
Recherchez le fichier httpd.conf
dans /opt/lampp/etc/httpd.conf
.
Modifiez la ligne dans ce dossier et enregistrez-la à partir du terminal.
Dans apache version 2.4.18 (Ubuntu).
1.accédez à 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.conf
recherchez DocumentRoot /var/www/html
et remplacez à votre DocumentRoot....
J'avais fait du /var/www
un lien logiciel vers le répertoire requis ( par exemple. /users/username/projects
) et les choses allaient bien après cela.
Cependant, naturellement, l'original /var/www
doit être supprimé-ou renommé.
Si vous utilisez Linux Mint (opinion personnelle, de toutes les distributions celle-ci me rend heureux), suivez ceci:
1-Allez dans /etc / apache2 / sites-disponible et éditez 000-par défaut.conf 2-Rechercher DocumentRoot, exemple DocumentRoot / var / www / html vous changez dans votre répertoire respectif; 3-Ouvrez le terminal et tapez: sudo service apache2 restart
Édité----- Je me rends compte que dans Mint vous allez pour /etc / apache2 / apache.conf, remplacez / var/www par votre chemin respectif, puis redémarrez le serveur (étape 3).
C'est ça.
S'Applique à Ubuntu 14.04 et les versions ultérieures. Assurez-vous de sauvegarder les fichiers suivants avant d'apporter des modifications.
1.Ouvrez {[1] } et recherchez <Directory /var/www/>
directive et remplacez path 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.Ouvrir /etc/mods-available/php7.1.conf
. Trouver et commenter le code suivant
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_flag engine Off
</Directory>
</IfModule>
Ne pas activer le drapeau php_admin_flag engine OFF
car la raison est mentionnée dans la directive commentaire ci-dessus code. 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.
Au Lieu de changer le répertoire par défaut de votre serveur web, vous pouvez créer un Alias
.
, par conséquent, vous devez créer deux fichiers:
- un dans
/etc/apache2/sites-available/
et - un sur
/etc/apache2/sites-enabled/
Appelez-les tous les deux quelque chose comme example.conf
et insérez-les dans les deux fichiers
Alias <where you want to access (eg. /example)> "<your files directory (eg. /home/user/host/example)>"
Alors vous devriez pouvoir y accéder avec //localhost/example
.
Modifier:
Peut-être que j'ai oublié de mentionner certaines commandes parce que je les oublie: P
ou vous devez modifier le autorisations du dossier / fichier auquel vous essayez d'accéder.
Si vous êtes (comme moi) trouver ce post via Google:
Je l'ai trouvé dans /etc/apache2/sites-available/000-default.conf