Faire en sorte que Nginx suive les liens symboliques

28

Nginx ne suit pas les liens symboliques. J'obtiens une erreur 404. Dans mon annuaire, j'ai ce lien:

lrwxrwxrwx  1 root root    48 Sep 23 08:52 modules -> /path/to/dir/

mais les fichiers stockés dans /path/to/dirne sont pas trouvés.

hellb0y77
la source
Jetez un œil à nginx.org/en/docs/http/…
Andy
2
OK j'ai résolu avec disable_symlinks off;. Merci!
hellb0y77
Pas de problème, bonne journée!
Andy
Veuillez saisir votre solution comme réponse et l'accepter (c'est un comportement équitable ici) ou supprimer votre question ailleurs.
leonbloy
D'autres idées? Je rencontre ce problème, j'ai essayé de désactiver disable_symlinks; dans ma conf (même si c'est en fait la valeur par défaut de toute façon) et rien ne fonctionne.

Réponses:

38

Insérer disable_symlinks off;dans mon nginx.conf et je résolus, fonctionne très bien!

http {
    disable_symlinks off;
}
hellb0y77
la source
Je suis arrivé nginx: [emerg] unknown directive "disable_symlinks" in /usr/local/etc/nginx/nginx.conf:22après avoir fait ça. J'utilisais nginx/1.8.0sur Mac OS X.
freez-flame
2
@ disable_symlinksfreezed -flame a été ajouté dans la version 1.1.15 ( voir la documentation ), donc cela aurait dû fonctionner. Êtes-vous sûr que vous étiez sur la version 1.8.0 et que c'était dans le contexte autorisé (http, serveur ou emplacement)?
Ville
2
Contexte à utiliser disable_symlinks:http, server, location
Thiago Pereira
1

J'ai trouvé la solution sur ce post .

Plus précisément, ces lignes:

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
Jonathan Martins
la source
1

Utilisez l'option 'bind' en montant les dossiers =)

sudo nano /etc/fstab

Type:

/path/where/my/big/files_dir /var/www/myhost/media_dir bind defaults,bind 0 0

(pas de liens symboliques et n'oubliez pas de redémarrer vds / cpu)

phpWebStudio
la source