58 votes

Créer un lien symbolique dans le répertoire Sites

J'ai un fichier dans mon répertoire ~/Sites qui fonctionne bien lorsque j'y accède via coderama.local/~coderama/index2.php

Maintenant, je veux faire quelque chose de plus compliqué et déplacer mon fichier index2.php ailleurs sur mon système, donc je crée un lien symbolique. Cependant, lorsque j'essaie d'accéder à coderama.local/~coderama/index2.php j'obtiens désormais l'erreur suivante.

Des idées quelqu'un ?

Merci !

Interdit

Vous n'avez pas la permission d'accéder à /~coderama/index2.php sur ce serveur.

101voto

Marvo Points 5444

C'est une option Apache configurable. Il semblerait que par défaut sur les Macs (et probablement la plupart des installations), Apache est configuré pour ne pas suivre les liens symboliques. Je suppose (comme d'autres le mentionnent ci-dessus) que c'est pour des raisons de sécurité.

Mais il peut être très pratique parfois d'activer le suivi des liens symboliques, en particulier pendant le développement de certains types d'applications. Ce que vous devez faire, c'est 1) modifier la configuration d'Apache pour autoriser le suivi des liens symboliques, puis 2) redémarrer Apache.

L'étape de configuration est effectuée comme suit :

a) cd /etc/apache2 (c'est ici que se trouvent par défaut les fichiers de configuration d'Apache sur un Mac)

b) vous verrez ici quelques répertoires. L'un d'eux s'appelle users

c) cd users

d) ls devrait révéler un fichier .conf avec votre nom d'utilisateur (login.conf) Je suis "marvo" donc le mien s'appelle "marvo.conf"

e) Modifiez ce fichier (j'utilise vi) - mais vous devez le faire en utilisant sudo :

sudo vi marvo.conf

f) Vous verrez quelque chose comme

    Options Indexes MultiViews 
    AllowOverride None
    Order allow,deny
    Allow from all

g) Ajoutez l'option "FollowSymLinks" pour que la deuxième ligne de ce fichier .conf ressemble à :

Options Indexes MultiViews FollowSymLinks

(Vous pouvez trouver d'autres options de configuration sur le net. J'ai trouvé cette page : http://httpd.apache.org/docs/2.0/mod/core.html#directory)

h) Enregistrez le fichier.

Maintenant, vous devez redémarrer Apache pour qu'il prenne en compte le changement de configuration. Après quelques recherches, j'ai trouvé que cela se fait le plus facilement en ligne de commande avec la commande suivante :

sudo /usr/sbin/apachectl restart

(Trouvé ici : http://mcapewell.wordpress.com/2006/09/22/restart-apache-in-mac-os-x/)

Maintenant ce lien symbolique devrait fonctionner parfaitement sur vos pages Sites.

56voto

agarie Points 1888

J'ai eu le même problème. Malheureusement, la réponse de Marvo n'était pas suffisante.

Le problème réside dans les permissions définies sur chaque dossier du chemin, à partir de ~/. Les répertoires doivent avoir le drapeau execute activé pour pouvoir parcourir l'arborescence des dossiers. Ainsi, dans mon cas, j'ai créé un lien symbolique d'un dossier de thème de ~/Dropbox/projects/theme vers une installation de wordpress sur ~/Site/wordpress.

La réponse était :

chmod a+x ~/Dropbox/
chmod a+rx ~/Dropbox/projects

C'est un ancien problème, mais si quelqu'un arrive sur cette page, cela peut être utile. :)

5voto

Coderama Points 1955

Il semble qu'il s'agisse d'un problème de sécurité (également suggéré par Matt)

http://discussions.apple.com/thread.jspa?threadID=1771399

1voto

Matt Williamson Points 10894

Je ne me souviens pas de la raison spécifique, mais cela ne fonctionne pas. C'est un problème de sécurité. Vous pouvez utiliser XAMPP http://www.apachefriends.org/en/xampp-macosx.html ou MAMP http://www.mamp.info/en/index.html pour contourner ce problème.

1voto

Gal Bracha Points 1360

En plus de la réponse de Marvo. Ce qui m'a aidé a été de changer les autorisations sur le dossier Documents :

cd ~
chmod a+rx Documents/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X