[configuration] Nginx 403 त्रुटि: [फ़ोल्डर] की निर्देशिका अनुक्रमणिका प्रतिबंधित है



Answers

मुझे यहां एक अच्छा उदाहरण मिला: https://github.com/daylerees/laravel-website-configs/blob/6db24701073dbe34d2d58fea3a3c6b3c0cd5685b/nginx.conf

यह कॉन्फ़िगरेशन मेरे लिए काम करता है:

server {
    server_name www.mysite2.name;
    return 301 $scheme://mysite2.name$request_uri;
}
server {
    #This config is based on https://github.com/daylerees/laravel-website-configs/blob/6db24701073dbe34d2d58fea3a3c6b3c0cd5685b/nginx.conf
    server_name mysite2.name;

     # The location of our project's public directory.
    root /usr/share/nginx/mysite2/live/public/;

     # Point index to the Laravel front controller.
    index           index.php;

    location / {
        # URLs to attempt, including pretty ones.
        try_files   $uri $uri/ /index.php?$query_string;
    }

    # Remove trailing slash to please routing system.
    if (!-d $request_filename) {
            rewrite     ^/(.+)/$ /$1 permanent;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #   # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #   # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param                   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

}

फिर ब्राउजर में एकमात्र आउटपुट लैरावेल त्रुटि थी: "अरे, ऐसा लगता है कि कुछ गलत हो गया।"

एक समस्या आईडीईए जो उस समस्या को ठीक कर सकती है वह chmod -R 777 app/storage (जिसे मैंने यहां पाया: https://stackoverflow.com/a/18624752/470749 )। लेकिन कुछ विश्व-लेखन योग्य बनाना खराब सुरक्षा है।

मुझे लगता है कि chmod -R 755 app/storage काम करता है और अधिक सुरक्षित है।

Question

मेरे पास 3 डोमेन नाम हैं और मैं Nginx का उपयोग कर एक सर्वर (एक डिजिटल महासागर बूंद) पर सभी 3 साइटों को होस्ट करने की कोशिश कर रहा हूं।

mysite1.name mysite2.name mysite3.name

उनमें से केवल 1 काम करता है। अन्य दो परिणाम 403 त्रुटियों में (उसी तरह)।

मेरे nginx त्रुटि लॉग में, मैं देखता हूं: [error] 13108#0: *1 directory index of "/usr/share/nginx/mysite2.name/live/" is forbidden

मेरी साइट-सक्षम कॉन्फ़िगरेशन है:

server {
        server_name www.mysite2.name;
        return 301 $scheme://mysite2.name$request_uri;
}
server {
        server_name     mysite2.name;

        root /usr/share/nginx/mysite2.name/live/;
        index index.html index.htm index.php;

        location / {
                try_files $uri $uri/ /index.html index.php;
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

सभी 3 साइटों में लगभग समान कॉन्फ़िगरेशन फ़ाइलें हैं।

प्रत्येक साइट की फ़ाइलें फ़ोल्डरों में होती हैं जैसे /usr/share/nginx/mysite1.name/someFolder, और फिर /usr/share/nginx/mysite1.name/live उस पर एक सिम्लिंक है। (Mysite2 और mysite3 के लिए वही।)

मैंने Nginx 403 को सभी फाइलों के लिए मना कर दिया है लेकिन इससे मदद नहीं मिली है।

क्या गलत हो सकता है पर कोई विचार?




try_files को index.php पथ पर इंगित करने के लिए बदलें, " try_files " में आपने उल्लेख किया है कि यह ऐसा कुछ होना चाहिए

location / {
    try_files $uri $uri/ /public/index.php$request_uri;
}

और "codeigniter" प्रोजेक्ट में इसे इस तरह से आजमाएं

location / {
    try_files $uri $uri/ /public_web/index.php$request_uri;
}



उबंटू या लिनक्स में करने के लिए सरल तरीके से

403 निषिद्ध nginx / 1.10.3 (उबंटू)

अपने सिस्टम के साथ पहले nginx सर्वर बंद करो

सूडो सेवा nginx बंद करो

और apache2 सर्वर शुरू करें

सुडो सेवा apache2 पुनरारंभ करें

मुझे उम्मीद है कि यह काम करेगा। मैंने कोशिश की कि यह मेरे लिए काम कर रहा है।




मुझे इसी तरह की त्रुटि का सामना करना पड़ा
--- वेबपृष्ठ में "403 निषिद्ध"
--- "13: त्रुटि लॉग में /var/log/nginx/error.log पर अनुमति अस्वीकार"

मेरे लिए 3 चरणों के नीचे काम किया:

1: ओपन टर्मिनल, नीचे कुछ ऐसा देखा

user1@comp1:/home/www/

तो, मेरा उपयोगकर्ता नाम "user1" है (ऊपर से)

2: /etc/nginx/nginx.conf में परिवर्तित उपयोगकर्ता

# user www-data;
user user1;

3: nginx रीलोडेड

sudo nginx -s reload  

इसके अतिरिक्त, मैंने फ़ाइल / फ़ोल्डर अनुमतियां लागू की हैं (इससे पहले कि मैंने 3 चरणों से ऊपर किया हो)
(मेरी निर्देशिका में 755, कहें / dir1 /) और (644 उस निर्देशिका के तहत फाइलों के लिए):
(मुझे यकीन नहीं है, अगर यह अतिरिक्त कदम वास्तव में आवश्यक है, तो 3 चरणों से ऊपर पर्याप्त हो सकता है):

chmod 755 ./dir1/
chmod 644 ./dir1/*.*

उम्मीद है कि यह किसी को जल्दी मदद करता है। शुभकामनाएँ।




आपको अपनी स्थिर फाइल निर्देशिका पर निष्पादन अनुमति की आवश्यकता है। इसके अलावा उन्हें आपके nginx उपयोगकर्ता और समूह द्वारा दिखाया जाना चाहिए।




मुझे एक ही समस्या थी, लॉगफाइल ने मुझे यह त्रुटि दिखायी:

2016/03/30 14:35:51 [error] 11915#0: *3 directory index of "path_scripts/viewerjs/" is forbidden, client: IP.IP.IP.IP,     server: domain.com, request: "GET /scripts/viewerjs/ HTTP/1.1", host: "domain", referrer: "domain.com/new_project/do_update"

मैं कोडिनेटर फ्रेमवर्क के साथ एक PHP एप होस्ट कर रहा हूँ। जब मैं अपलोड की गई फाइलों को देखना चाहता था तो मुझे 403 Error मिली।

समस्या यह थी कि nginx.conf ठीक से परिभाषित नहीं किया गया था। के बजाय

index index.html index.htm index.php

मैं केवल शामिल था

index index.php

मेरे पास मेरी जड़ में index.php है और मैंने सोचा कि वह पर्याप्त था, मैं गलत था;) संकेत ने मुझे NginxLibrary दिया




आपको यह Nginx नीति (उदाहरण के लिए "deny") के कारण मिल सकता है, या आप इसे Nginx गलत कॉन्फ़िगरेशन के कारण प्राप्त कर सकते हैं, या आप इसे सिस्टम सिस्टम प्रतिबंधों के कारण प्राप्त कर सकते हैं।

आप यह निर्धारित कर सकते हैं कि बाद में (और संभावित रूप से स्ट्रेस का उपयोग करके गलत कॉन्फ़िगरेशन का सबूत देखें (सिवाय इसके कि, ओपी को उस तक पहुंच नहीं होगी):

# pidof nginx
11853 11852

# strace -p 11853 -p 11852 -e trace=file -f
Process 11853 attached - interrupt to quit
Process 11852 attached - interrupt to quit
[pid 11853] stat("/var/www/html/kibanaindex.html", 0x7ffe04e93000) = -1 ENOENT (No such file or directory)
[pid 11853] stat("/var/www/html/kibana", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
^CProcess 11853 detached
Process 11852 detached

यहां मैं nginx द्वारा की गई फाइल सिस्टम गतिविधि का निरीक्षण कर रहा हूं, जबकि एक परीक्षण चलाया गया था (मुझे आपके जैसा ही त्रुटि थी)।

उस समय मेरी कॉन्फ़िगर का एक चयनित भाग यहां दिया गया है

    location /kibana/3/ {
        alias /var/www/html/kibana;
        index index.html;
    }

मेरे मामले में, जैसा कि स्ट्रेस काफी स्पष्ट रूप से दिखाता है, "इंडेक्स" में "उपनाम" में शामिल होने की अपेक्षा नहीं थी, और ऐसा लगता है कि मुझे हमेशा निर्देशिका नामों को ए / के साथ जोड़ने की आदत में आने की आवश्यकता है, इसलिए मेरे मामले में, निम्नलिखित काम किया:

    location /kibana/3/ {
        alias /var/www/html/kibana/;
        index index.html;
    }



location ~* \.php$ {
    ...
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    
}

डिफ़ॉल्ट बदलें

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

सेवा मेरे

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

मेरी समस्या हल हो गई।




Related