403 Заборонено, коли я намагався дійти до моєї простої тестової сторінки


13

Я щойно встановив nginx і намагаюся налаштувати свій перший сайт. Я намагаюся використовувати nginx з php-fpm. nginx встановлений (коли я переходжу до свого ip, я отримую за промовчанням сторінку nginx).

Зараз я намагаюся запустити простий сценарій:

<?php
phpinfo();

Але я продовжую натискати на 403 Заборонену сторінку. У журналі мого віртуального хоста я бачу безліч рядків типу:

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"

Файл, /srv/www/test/index.phpяким є nginx, є власником (я пішов на те, що я мав 777повний шлях, включаючи файл безрезультатно).

Я перевірив, що nginx дійсно працює під користувачем і групою nginx/nginxв налаштуваннях, і це так. У nginx.conf я змінив налаштування конфігурації за замовчуванням, включаючи шлях, щоб переконатися, що жоден інший конфігурація не потрапив у шлях ( include /etc/nginx/sites-enabled/).

Конфігурація, яку я використовую, виглядає так (якщо вам потрібні інші конфігурації (php-fpm / nginx.conf), будь ласка, дайте мені знати):

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

Відповіді:


22

Ваш конфігурація навмисно його блокує:

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

Це відповідатиме будь-якому запиту, коли на косій рисі супроводжується символ будь-якого типу; .символ в регулярному виразі означає «будь-який символ».

Я припускаю, що ти мав намір перевірити буквальність .; це буде конфігурація:

location ~ /\. {

Дайте мені знати, якщо це не так!


OMG я зараз відчуваю себе таким дурним (враховуючи той факт, що я в цьому дивився на уххмммм "деякий час"). Дякуємо за вашу швидку відповідь!
user6669
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.