Je souhaite configurer un serveur Web local sur mon Ubuntu (14.04). J'ai donc installé tous les logiciels pour obtenir un serveur LAMP.
Le problème est que je fais quelque chose de mal en créant mes hôtes virtuels. Je voulais créer différents sous-domaines sur mon hôte local. Ainsi, par exemple, site1.localhost et site2.localhost.
Dans mon répertoire /var/www/
, j'ai créé un lien symbolique "site1" qui va à /home/user/Workspaces/site1
.
Dans mon fichier error.log Apache, j'ai eu l'erreur suivante.
[core:error] [pid 12679] [client 127.0.0.1:59006] AH00037: Symbolic link not allowed or link target not accessible: /var/www/site1
Dans ma configuration Apache, j'ai:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Donc, je pense qu'il y a quelque chose qui ne va pas avec les autorisations des dossiers. J'ai cherché sur Google et j'ai trouvé quelques personnes avec le même problème, mais toutes les réponses fournies n'ont pas fonctionné. J'ai ajouté mon propre nom d'utilisateur au groupe www-data et des choses comme ça.
Donc, ls -la /var/www
renvoie:
total 12
drwxrwsr-x 3 user www-data 4096 okt 13 19:08 .
drwxr-xr-x 14 root root 4096 okt 1 22:50 ..
drwxr-xr-x 2 root www-data 4096 okt 1 22:50 html
lrwxrwxrwx 1 root www-data 29 okt 13 19:08 site1 -> /home/user/Workspaces/site1/
et ls -la /home/juul/Workspaces/site1
renvoie:
total 24
drwxrwxr-x 4 user www-data 4096 okt 13 18:21 .
drwxrwx--- 3 user user 4096 okt 13 17:31 ..
-rw-rw-r-- 1 user user 0 okt 13 18:21 index.html
drwxrwxr-x 4 user www-data 4096 okt 13 16:12 .metadata
drwxrwxr-x 5 user www-data 4096 okt 13 16:53 Project
J'espère que quelqu'un pourra m'aider avec ça :-)
Ces autorisations empêchent Apache
de vous accéder.
drwxrwx--- 3 user user 4096 okt 13 17:31 ..
Vous devez donner des autorisations d'exécution pour les autres:
chmod o+x /home/juul/Workspaces/
(et peut-être aussi sur /home/juul/
).
J'ai une installation standard d'Apache sur 14.04. Il n'y a pas de fichiers ou de répertoires spécifiant "www-data". Avez-vous changé tout cela vous-même? Il existe de nombreuses informations obsolètes ou simplement incorrectes sur la configuration des serveurs Web. Soyez donc prudent avec qui vous suivez et annulez ce qui ne fonctionne pas.
Cela dit, "site1" doit se trouver dans le répertoire html
et appartenir à vous. Il n'est pas nécessaire que ce soit un lien symbolique. vous pouvez spécifier un répertoire différent dans le fichier de configuration. Quelque chose comme ça:
# Add this to the end of the existing 000-default.conf file (after "</VirtualHost>")
<VirtualHost *:80>
<Directory /home/user/Workspaces/site1>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
DocumentRoot /home/user/Workspaces/site1
ServerName site1
</VirtualHost>
Solution pour: Lien symbolique non autorisé ou cible de lien non accessible: /var/www/html/mySymbolicLink
.
C'est clairement un problème avec les autorisations. Le problème est que le code HTML situé dans votre répertoire de base appartient à votre utilisateur et que le serveur Apache est exécuté par un autre utilisateur. Il ne peut donc pas accéder à votre répertoire de base.
La solution serait alors d'ajouter l'utilisateur exécutant Apache à votre groupe, normalement identique à votre nom d'utilisateur. Donc, dans ma boîte CentOS, je l’ai fait comme:
Sudo usermod -a -G dev Apache
Donc, cela ajoute l'utilisateur Apache au groupe dev. Maintenant, je dois donner des autorisations d'exécution.
Dans /home
:
chmod g+x dev -R
Cela accordera une autorisation d'exécution à mon dossier uniquement pour les membres du groupe. Et c'est tout. Vous devrez modifier l'utilisateur Apache pour tout ce qui exécute votre serveur Web. Je crois que pour Ubuntu, l'utilisateur est www-data
.