আমার সাধারণ পরীক্ষার পৃষ্ঠায় পৌঁছানোর চেষ্টা করার সময় 403 নিষিদ্ধ


13

আমি সবেমাত্র nginx ইনস্টল করেছি এবং আমি আমার প্রথম সাইট সেটআপ করার চেষ্টা করছি। আমি পিএনএফ-এফপিএম সহ এনজিনেক্স ব্যবহার করার চেষ্টা করছি। nginx ইনস্টল করা আছে (যখন আমি আমার আইপিতে যাই তখন আমি 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এনগিনেক্সের মালিক (আমি 777কোনও উপায়ই পাইনি ফাইল সহ পুরো পথটি ইঙ্গিত করেছিলাম )।

আমি পরীক্ষা করে দেখেছি যে এনগিনেক্স প্রকৃতপক্ষে 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 ~ /\. {

যদি বিষয়টি না হয় তবে আমাকে জানান!


ওএমজি আমি এখন খুব বোকা বোধ করছি (আমি এই মুহুর্তে কিছুটা "উহহ্ম্ম্ম্ম্ম্ম্ম" এর জন্য অভিনীত হয়েছি এই বিষয়টি বিবেচনা করে) আপনার দ্রুত সাড়া দেওয়ার জন্য ধন্যবাদ!
ব্যবহারকারী 6669
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.