Bonjour J'ai de l'expérience dans la mise en place d'hôtes virtuels pour le développement local, j'espère que cela vous aidera.
Supprimez la ligne dans apache.conf : Include /etc/apache2/sites-available/mySite.conf
Et courir sudo a2ensite mySite.conf
pour activer le serveur virtuel. (Le fichier mySite.conf doit être le même dans ...apache/sites-available/)
Dans votre fichier de configuration VHost, modifiez votre DocumentRoot comme suit
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mySite.loc
ServerAlias www.mySite.loc
DocumentRoot /your/project/path
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Où ServerName
sera le domaine localhost de votre projet et le domaine DocumentRoot /your/project/path
le dossier racine dans lequel votre projet est hébergé (il doit y avoir un index.html ou un index.php). Vous ne devez indiquer que le chemin d'accès au dossier, et non au fichier index.php, comme ceci : /home/yourusername/projects/mysite/public
.
Déplacez également votre projet dans votre répertoire personnel afin qu'il n'ait pas besoin des droits root pour y accéder. Vous pouvez déplacer le projet dans /home/votre nom d'utilisateur/projets/mysite/public
Maintenant, éditez avec sudo le fichier /etc/hosts
avec vim (ou nano ou sublime ou tout autre éditeur de votre choix). Et ajoutez cette ligne :
127.0.0.1 mySite.loc
Et vous le verrez probablement ainsi :
127.0.0.1 localhost
127.0.0.1 mySite.loc
Exécutez maintenant les commandes pour activer le site conf (si vous ne l'avez pas encore fait). Rechargez apache avec : sudo service apache2 reload
et redémarrer apache avec sudo service apache2 restart
.
Ok, vous avez maintenant configuré vos Vhosts correctement, mais vous devez donner les permissions correctes à l'utilisateur et au groupe pour le dossier dans Apache :
Editez le fichier conf d'apache avec sudo, que l'on trouve généralement sur : /etc/apache2/apache2.conf
.
Trouver cette ligne :
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
Commentez-les et remplacez-les par votre nom d'utilisateur et le nom du groupe dont votre projet est propriétaire. Vous pouvez le découvrir en ouvrant le terminal et en changeant de répertoire vers votre projet en utilisant cd
et en utilisant la commande ls -l
Vous verrez maintenant le nom d'utilisateur du dossier et du fichier ainsi que le nom du groupe à gauche de vos fichiers et dossiers :
~
cd Sites/mySite/public
Sites/mySite/public via v7.2.24
ls -l
total 0
-rw-r--r-- 1 mauriciogtz mauriciogtz 0 nov 5 11:15 index.php
Le nom d'utilisateur du propriétaire de la permission de mes fichiers est mauriciogtz (à gauche) et mon groupe est mauriciogtz (à droite).
Ajoutez-les comme suit dans votre fichier conf d'apache :
#User ${APACHE_RUN_USER}
#Group ${APACHE_RUN_GROUP}
User mauriciogtz
Group mauriciogtz
Vous pouvez utiliser Group staff
au lieu du nom du groupe si cela n'a pas fonctionné pour vous. Cherchez maintenant ce bloc de code :
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
Copiez le tout et collez-le juste en dessous et modifiez-le pour qu'il ressemble à ceci :
<Directory /home/mauriciogtz/Sites/mySite/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Lorsque le chemin du répertoire doit être le chemin de votre projet, vous pouvez utiliser pwd
dans le dossier de votre projet pour obtenir le chemin d'accès.
Redémarrer apache une nouvelle fois sudo service apache2 restart
et ce devrait être tout. J'espère que cela vous conviendra.