J'ai installé nginx sur Ubuntu 12.04. Cependant, nginx ne semble pas suivre les liens symboliques. Je comprends qu'un changement de configuration est requis pour cela, mais je ne parviens pas à trouver où effectuer le changement. Toute aide appréciée.
Jetez un œil à l'option de configuration suivante de nginx docs :
Syntaxe:
disable_symlinks off; disable_symlinks on | if_not_owner [from=part];
Par défaut: disable_symlinks off;
Contexte: http, serveur, emplacement
Cette directive est apparue dans la version 1.1.15.
Dans mon cas, nginx
était déjà configuré pour suivre les liens symboliques. Mais le problème était que l'utilisateur nginx
ne pouvait pas accéder à mes fichiers personnels et que le lien symbolique vers mon répertoire personnel ne fonctionnait pas.
Supposons que nous ayons un lien symbolique /usr/share/nginx/www/mylink
-> /home/u/html
cd /usr/share/nginx/www
mkdir -p /home/u/html
Sudo ln -sv /home/u/html mylink # creates mylink -> /home/u/html
Donnez aux r ead et e x autorisations d'échange en utilisant chmod
et find
:
chmod +rx /home/u
chmod +rw /home/u/html
find /home/u/html/php -type d -exec chmod +rx {} +
find /home/u/html/php -type d -exec chmod +w {} + # optional
Remarques:
L'autorisation x
est nommée e x ecute. Mais lorsqu'elle est appliquée à un répertoire, cette permission permet de récuser l'arborescence du répertoire (voir modes Unix ).
La commande find ... -exec chmod ...
modifie récursivement les autorisations. Nous pourrions également utiliser la commande chmod -R +rx /home/myuser/html
mais cette dernière commande donne également le permission d'exécution à tous les fichiers normaux, et nous ne voulons pas cela. L'option -type d
exécute chmod
uniquement aux répertoires.
La dernière commande facultative donne autorisation d'écriture si vos scripts PHP nécessitent d'écrire des données. Essayez de limiter l'autorisation d'écriture aux répertoires requis uniquement pour des raisons de sécurité.
Pas besoin de redémarrer ngnix
, appuyez simplement sur Ctrl+F5 dans votre navigateur.
Attention: Il n'est pas recommandé de créer des liens symboliques pointant vers votre répertoire personnel car une erreur d'accès en lecture/écriture ou un mauvais lien symbolique peut exposer votre numérique Les données...
Référence: Arch wiki sur nginx
si la réponse d'Olibre ne permet pas de modifier le fichier/etc/nginx/sites-available/default et d'ajouter cette ligne là où vous avez spécifié le répertoire racine de votre serveur.
autoindex on;
enregistrer le fichier et redémarrer le serveur
/etc/init.d/nginx restart