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 d'un répertoire différent, nous avons besoin d'un nouveau fichier conf de virtualhost. Les fichiers conf de virtualhost se trouvent 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 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 sur localhost sur le port 80). Accédez au répertoire /etc/apache2/sites-available
, puis effectuez une copie par sudo cp 000-default.conf example.com.conf
, modifiez maintenant le fichier en 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 par souci de concision. Voici DocumentRoot
le chemin d'accès au répertoire à partir duquel les fichiers du site Web doivent être servis tels que index.html
.
Créez le répertoire à partir duquel vous souhaitez servir les fichiers, par exemple; mkdir example.com
et changer le propriétaire et le groupe par défaut du répertoire, par exemple si votre nom d'utilisateur connecté est ubuntu
changer les autorisations comme 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
.
Maintenant éditez le fichier apache conf /etc/apache2/apache2.conf
en exécutant 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>
Il existe maintenant deux commandes pour activer ou désactiver les fichiers de configuration de virtualhost, qui sont a2ensite
et a2dissite
respectivement. Maintenant que notre example.com.conf
fichier 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 ensudo a2ensite example.com.conf
Maintenant, redémarrez ou rechargez le serveur avec la commande sudo service apache2 restart
. Apache sert maintenant les fichiers du répertoire example.com
sur localhost
le port par défaut de 80
.
La a2ensite
commande crée essentiellement un lien symbolique vers le fichier conf sous le répertoire activé par le site
Ne modifiez pas les fichiers au sein du directoy activé pour les sites (ou activé pour les *), 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 l'édition /etc/apache2/ports.conf
et l'ajout Listen 8080
juste en dessous de la ligneListen 80
Nous pouvons maintenant activer le fichier conf par défaut de virtualhost qui s'exécute sur le port 80, car le répertoire example.com utilise le port 8080, comme 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 depuis localhost
etlocalhost:8080