403 Terlarang saat mencoba mencapai halaman pengujian sederhana saya

13

Saya baru saja menginstal nginx dan saya mencoba mengatur situs pertama saya. Saya mencoba menggunakan nginx dengan php-fpm. nginx terinstal (ketika saya pergi ke ip saya, saya mendapatkan sambutan default ke halaman nginx).

Sekarang saya mencoba menjalankan skrip sederhana:

<?php
phpinfo();

Tapi saya terus menekan halaman 403 Forbidden. Dalam log host virtual saya, saya bisa melihat banyak baris seperti:

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"

File /srv/www/test/index.phpyang nginx adalah pemiliknya (saya pergi sebagai 777path lengkap termasuk file tidak berhasil).

Saya telah memeriksa bahwa nginx memang berjalan di bawah pengguna dan grup nginx/nginxdi konfigurasi dan itu. Di nginx.conf saya telah mengubah path default config include untuk memastikan tidak ada konfigurasi lain yang menghalangi ( include /etc/nginx/sites-enabled/).

Konfigurasi yang saya gunakan terlihat seperti (jika Anda membutuhkan konfigurasi lain (php-fpm / nginx.conf) tolong beri tahu saya):

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;
    }
}
pengguna6669
sumber

Jawaban:

22

Konfigurasi Anda sengaja memblokirnya:

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

Itu akan cocok dengan permintaan apa pun di mana garis miring diikuti oleh karakter apa pun; yang .karakter dalam ekspresi reguler berarti "karakter apapun".

Saya berasumsi Anda bermaksud memeriksa literal .; itu akan menjadi konfigurasi ini:

location ~ /\. {

Beri tahu saya kalau bukan itu masalahnya!

Shane Madden
sumber
OMG Saya merasa sangat bodoh sekarang (mengingat fakta bahwa saya telah membintangi ini untuk uhhhmmm 'sementara'). Terima kasih atas tanggapan yang cepat!
user6669