403 Interdit en essayant d'accéder à ma page de test simple


13

Je viens d'installer nginx et j'essaie de configurer mon premier site. J'essaie d'utiliser nginx avec php-fpm. nginx est installé (quand je vais sur mon ip, j'obtiens l'accueil par défaut sur la page nginx).

Maintenant, j'essaie de lancer un script simple:

<?php
phpinfo();

Mais je continue de frapper une page interdite 403. Dans le journal de mon hôte virtuel, je peux voir beaucoup de lignes comme:

2012/05/18 01:29:45 [error] 4272#0: *1 access forbidden by rule, client: x.170.147.49, server: example.com, request: "GET / HTTP/1.1", host: "example.com"

Le fichier est /srv/www/test/index.phpdont nginx est le propriétaire (j'ai 777choisi le chemin complet, y compris le fichier en vain).

J'ai vérifié que nginx fonctionne bien sous user et group nginx/nginxdans la configuration et c'est le cas. Dans le nginx.conf, j'ai changé le chemin d'inclusion de la configuration par défaut pour m'assurer qu'aucune autre configuration n'interfère ( include /etc/nginx/sites-enabled/).

La configuration que j'utilise ressemble à (si vous avez besoin d'autres configurations (php-fpm / nginx.conf) veuillez me le faire savoir):

server {
    listen 80;

    server_name example.com;
    root /srv/www/test;
    access_log /var/log/nginx/example-access.log;
    error_log  /var/log/nginx/example-error.log error;

    location ~ /.          { access_log off; log_not_found off; deny all; }
    location ~ ~$           { access_log off; log_not_found off; deny all; }

    location ~* .(js|css|png|jpg|jpeg|gif|ico|xml|swf|flv|eot|ttf|woff|pdf|xls|htc)$ {
        add_header Pragma "public";
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
        access_log off;
        log_not_found off;
        expires   360d;
    }

    location ~ /.ht {
        deny all;
        access_log off;
        log_not_found off;
    }

    location ~ /. {
        access_log off;
        log_not_found off;
        deny all;
    }

    location ~ ^/(index|frontend_dev|admin|staging).php($|/) {
        #rewrite ^/(.*)/$ /$1 permanent;
        fastcgi_split_path_info ^(.+.php)(.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;

    }

    location / {
        index index.php;
        try_files $uri /index.php?$args;
    }
}

Réponses:


22

Votre configuration le bloque intentionnellement:

location ~ /. {
    access_log off;
    log_not_found off;
    deny all;
}

Cela correspondra à toute demande où une barre oblique est suivie d'un caractère de toute nature; le .caractère dans une expression régulière signifie "n'importe quel caractère".

Je suppose que vous vouliez vérifier un littéral .; ce serait cette config:

location ~ /\. {

Faites-moi savoir si ce n'est pas le cas!


OMG, je me sens tellement stupide maintenant (compte tenu du fait que j'ai été en vedette pendant uhhhmmm pendant un certain temps). Merci pour votre réponse rapide!
user6669
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.