Comment configurer apache2 avec des liens symboliques dans / var / www /?

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 permet d’accéder à /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:

  Options Indexes FollowSymLinks AllowOverride None Require all granted  

Donc, je pense qu’il y a quelque chose qui ne va pas avec les permissions 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 ainsi de suite.

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 permissions empêchent apache de vous accéder

 drwxrwx--- 3 user user 4096 okt 13 17:31 .. 

Vous devez donner des permissions d’exécution pour les autres:

 chmod o+x /home/juul/Workspaces/ 

(et peut-être sur /home/juul/ aussi).

J’ai un apache standard installer 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” devrait 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 "")   Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all  DocumentRoot /home/user/Workspaces/site1 ServerName site1  

Solution pour: lien symbolique non autorisé ou cible de lien non accessible: /var/www/html/mySymbolicLink .

C’est clairement un problème avec les permissions. Le problème est que le code html de votre répertoire personnel 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 personnel.

La solution serait alors d’append 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 permissions 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 .