Nginx ne suit pas les liens symboliques
J'ai installé nginx sur Ubuntu 12.04. Cependant, nginx ne semble pas suivre les liens symboliques. Je comprends qu'il y est une config changement nécessaire pour cela, mais je ne suis pas en mesure de trouver où faire le changement. Toute aide appréciée.
Vous devez vous connecter pour publier un commentaire.
Ont un look à la suite d'une option de configuration à partir de nginx docs:
location / { disable_symlinks off; }
. Aucune raison pourquoi cela se produit?nginx.conf
de configuration, pas votre site web de configuration. Edit/etc/nginx/nginx.conf
et de la place de ladisable_symlinks off;
dans lehttp
bloc.off
est déjà la valeur par défaut. En d'autres termes, par défaut, tous les liens symboliques sont déjà suivi; ne pas suivre les liens symboliques est une caractéristique de sécurité supplémentaire (qui est désactivée par défaut).Dans mon cas
nginx
a déjà été configuré de manière à suivre les liens symboliques. Mais le problème est que l'utilisateurnginx
ne pouvait pas accéder à mes fichiers et donc de lien symbolique à mon répertoire home n'a pas de travail.Exemple
Supposons que nous avons un lien symbolique
/usr/share/nginx/www/mylink
->/home/u/html
Donner des autorisations
Donner la read et execute les autorisations à l'aide
chmod
ettrouver
:Notes:
L'autorisation
x
est nommée execute. Mais lorsqu'il est appliqué à un répertoire, cette autorisation permet à recurse l'arborescence du répertoire (voir Unix modes).La commande
find ... -exec chmod ...
de manière récursive modifie les permissions. Nous pourrions aussi utiliser la commandechmod -R +rx /home/myuser/html
mais cette dernière commande donne également la permission d'exécution à tous les fichiers, et nous n'en voulons pas. L'option-type d
exécuterchmod
à seulement répertoires.La dernière option de commande donne de l'autorisation d'écriture si vos scripts PHP besoin d'écrire des données. Essayez de limiter l'autorisation d'écriture pour seulement répertoires requis pour des raisons de sécurité.
Test
Pas besoin de redémarrer
ngnix
, appuyez sur Ctrl+F5 dans votre navigateur.Attention: Il n'est pas recommandé de créer des liens symboliques pointant vers votre répertoire d'accueil en raison d'une erreur de lecture/écriture d'accès ou d'une erreur de lien symbolique peut exposer vos données numériques...
Référence: Arch wiki sur nginx
si olibre de réponse ne permet pas de modifier le fichier /etc/nginx/sites-available/default et ajoutez cette ligne où vous avez indiqué votre répertoire racine du serveur.
enregistrez le fichier et redémarrez le serveur