J'ai installé nginx 1.1.19 sur Ubuntu 12.04 sur ma machine locale et j'ai gardé les paramètres par défaut. /etc/nginx/nginx.conf
sauf pour changer la directive utilisateur.
/etc/nginx/nginx.conf
user nginx www-data;
worker_processes 4;
pid /var/run/nginx.pid;
...
Je veux faire fonctionner un site statique simple avec la racine web dans mon répertoire utilisateur (disons que mon nom d'utilisateur est 'ubuntu'). Voici la configuration de mon site de test.
/etc/nginx/sites-available/test-site
server {
#listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
root /home;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
}
Il est évident que tous mes fichiers se trouvent à la racine du site web et que je ne mettrais PAS cela sur un vrai serveur, mais cela illustre mon propos. Si je crée une page web simple dans /home/index.html (pas dans mon dossier utilisateur ubuntu), je peux accéder à cette page à l'adresse suivante http://localhost/
Cela fonctionne très bien. Maintenant, je veux simplement mettre la racine du site web à l'intérieur du dossier de l'utilisateur. Donc dans /etc/nginx/sites-available/test-site je change la directive root pour qu'elle soit `root /home/ubuntu ;. Je recrée le lien symbolique vers test-site, déplace /home/index.html vers /home/ubuntu/index.html et arrête et démarre le serveur nginx. Maintenant, je reçois l'erreur 403 Forbidden.
Mon premier soupçon était que c'était un problème de permissisons. Cependant, lorsque j'exécute ls -al index.html
Je vois.
-rw-r--r-- 1 nginx www-data 183 Aug 12 13:13 index.html
laquelle me semble la bonne ? Même en exécutant chmod 777 /home/ubuntu/index.html pour que les permissions soient les suivantes
-rwxrwxrwx 1 nginx www-data 183 Aug 12 13:13 index.html
n'est pas utile. /etc/init.d/nginx configtest
ne produit pas d'erreur non plus et je suis sûr que le lien symbolique en /etc/
J'y suis depuis quelques heures et je me demande maintenant ce qu'il y a de si spécial dans mon répertoire utilisateur pour que je ne puisse rien servir à l'intérieur ? Ubuntu crypte les répertoires personnels ces jours-ci ? Cela pourrait-il être le problème ? J'ai également ce problème sur une instance EC2 Ubuntu 12.04 (je ne sais pas si les répertoires d'utilisateurs y sont cryptés).