web-dev-qa-db-fra.com

Création d'un lien symbolique dans l'annuaire Sites

J'ai un fichier dans mon répertoire ~/Sites qui fonctionne bien lorsque je le navigue à travers coderama.local/~coderama/index2.php

Maintenant, je veux être délicat et déplacer mon fichier index2.php ailleurs sur mon système, je le fais donc en créant un lien symbolique. Cependant, lorsque j'essaie d'accéder à coderama.local/~coderama/index2.php, l'erreur suivante s'affiche.

Des idées quelqu'un?

Merci!

Interdit

Vous n'êtes pas autorisé à accéder à /~coderama/index2.php sur ce serveur.

58
Coderama

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

Mais il peut parfois être très pratique de permettre le suivi de liens symboliques, en particulier lors du développement de certains types d’applications. Ce que vous devez faire, c'est 1) modifier la configuration d'Apache pour permettre 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 les fichiers de configuration d’Apache sur un Mac)

b) vous verrez quelques répertoires ici. L'un s'appelle des utilisateurs

c) utilisateurs de cd

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

e) Éditez ce fichier (j'utilise vi) - mais vous devez le faire avec Sudo:

Sudo vi marvo.conf

f) Vous verrez quelque chose comme

<Directory "/Users/marvo/Sites/">
    Options Indexes MultiViews 
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

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

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.

Vous devez maintenant redémarrer Apache pour qu'il prenne en compte les modifications de configuration. Googling un peu, j'ai trouvé que cela est plus facilement fait à partir de la ligne de commande avec la commande suivante:

Sudo /usr/sbin/apachectl restart

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

Maintenant, ce lien symbolique devrait bien fonctionner sur vos pages de sites.

101
Marvo

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

Le problème réside dans les autorisations définies sur chaque dossier du chemin, à partir de ~/. L’indicateur execute doit être défini pour les répertoires afin de pouvoir renvoyer l’arborescence de répertoires. Donc, dans mon cas, j'ai lié de façon symétrique un dossier de thème de ~/Dropbox/projects/theme à une installation wordpress sur ~/Site/wordpress.

La réponse était:

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

C'est un vieux problème, mais si quelqu'un accède à cette page, cela pourrait être utile. :)

56
agarie

Ressemble à un problème de sécurité (également suggéré par Matt)

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

5
Coderama

En plus de la réponse de Marvo. Ce qui m'a aidé était de Changer l'autorisation sur Documents folder:

cd ~
chmod a+rx Documents/
1
Gal Bracha

Je ne me souviens pas de la raison précise pour laquelle, 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. .

1
Matt Williamson

Assurez-vous également que vous avez une directive dans votre httpd-vhosts.conf

Sinon, vous obtenez le même '403 interdit dans le navigateur', avec 'le client refusé par la configuration du serveur dans le journal des erreurs.

0
snowbound