nginx + PHP-FPM = "अनुमति से इनकार" त्रुटि nginx लॉग में 13; कॉन्फ़िगरेशन गलती?


20

मुझे एक RHEL5 सर्वर पर nginx 0.7x + PHP-FPM PHP 5.2.10 के तहत चल रहा है, लेकिन एक दूसरे सर्वर पर PHP 5.3.3 में बंडल-इन PHP-FPM के तहत उस सेटअप को डुप्लिकेट करने की कोशिश कर रहा हूं, मैं कर रहा हूं हर बार अनुमति त्रुटियों के साथ कुछ परेशानी होती है।

FPM शुरू किया गया है, और पुष्टि की है कि Fastcgi 9000 पर सुन रहा है, लेकिन हर बार जब मैं एक GET करता हूं, तो मुझे यह त्रुटि nginx लॉग में दिखाई देती है:

2010/08/12 23:38:53 [crit] 5019#0: *5 stat() "/home/noisepages/www/" failed (13: Permission denied), client: 24.215.173.141, server: dev.noisepages.com, request: "GET / HTTP/1.1", host: "dev.noisepages.com"

नंगे पांव nginx.conf.default काम करता है, कम से कम। यहाँ मेरा nginx.conf है

server {
        listen       80;
        server_name  dev.noisepages.com;
        root   /home/noisepages/www;
        index  index.html index.htm index.php;

        access_log  logs/dev.access.log;
 error_log logs/dev.error.log;

        location / {

 if (-f $request_filename) {
  expires 30d;
  break;
  }

 # this sends all non-existing file or directory requests to index.php
 rewrite ^.*/files/(.*) /wp-includes/ms-files.php?file=$1;
 if (!-e $request_filename) {
     rewrite ^.+?(/wp-.*) $1 last;
  rewrite ^.+?(/.*\.php)$ $1 last;
  rewrite ^ /index.php last;
  }
        }

        location ~ \.php$ {
            include        fastcgi_params;
            fastcgi_pass   unix:/dev/shm/php-fastcgi.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME    /home/dev/www/$fastcgi_script_name;
        }
    }

(अतिरिक्त पुनर्लेखन निर्देश वर्डप्रेस मल्टीसाइट उर्फ ​​वर्डप्रेस एमयू के उपयोग के लिए हैं)

मैंने यह भी सत्यापित किया है कि उपयोगकर्ता www-data न केवल nginx.conf में, बल्कि उपयोगकर्ता और समूह मूल्यों के लिए php-fpm.conf में भी घोषित किया गया है।

शायद मुझे समझ में नहीं आ रहा है कि त्रुटि 13 संदेश का क्या कारण है? ताज्जुब है, मैंने पहले सर्वर पर dev.noisepages.com को अन्य वर्चुअल मेजबानों के एक जोड़े के समानांतर स्थापित करने की कोशिश की है - जिनमें से प्रत्येक ठीक काम कर रहा था - और वही त्रुटि मिली।

जवाबों:


57

आपको यह सुनिश्चित करने की आवश्यकता है कि साइट के रूट +xपर जाने वाले मार्ग के सभी डाइरेक्टरीज़ पर - इसलिए /home, /home/noisepagesऔर/home/noisepages/www


2
हाँ, वास्तव में www के पास सही अनुमति थी लेकिन पूरे रास्ते की नहीं! धन्यवाद! समझ में आता है - मेरी ओर से गूंगा गलती।
पीटर किर्न

1
अगर मैं तुम्हें एक और 10 upvotes दे सकता।
टिम

तुम सच में शांत हो! मैं आपका उत्तर खोजने के लिए Google में 2 घंटे बिताता हूं! धन्यवाद!
सेरही पोलिशचुक

बहुत बहुत धन्यवाद! मैं एक प्रोडक्शन सर्वर पर मैसेज कर रहा था और ऐसा होने पर मैं ठंडे पसीने में डूब गया ...!
लेफ्लेग

5

सुनिश्चित करें कि घर / देव के पास सही अनुमति है

chmod +x /home/dev

2

मेरे पास php-fpm के साथ-साथ विशेषकर php सेशन में अनुमति के मुद्दे थे। यह पता चला कि मुझे बस उस उपयोगकर्ता को संशोधित करना था जो php-fpm प्रक्रियाओं को चलाने के लिए उपयोग करता है, क्योंकि डिफ़ॉल्ट रूप से इसे "कोई नहीं" उपयोगकर्ता के लिए सेट किया गया था।

यहाँ पर ट्यूटोरियल: http://www.duchnik.com/tutorials/setting-up-php-with-nginx/


3
जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
स्कॉट पैक

3
लिंक मृत है ..
क्रिस्टोफ Bühler

1

मुझे एक simlar समस्या थी जो मुझे यहाँ मिली। मेरा समाधान (चुने हुए उत्तर पर आधारित) एक था

chown -R root:www-data /home/noisepages/www
chmod g+w -R /home/noisepages/www

अब यह ठीक काम करता है :)


लेकिन अगर आप चेरोट उपयोगकर्ताओं का उपयोग करते हैं तो आप इसे कैसे कर सकते हैं? चिरोट किए गए उपयोगकर्ताओं का उपयोग करते समय, / होम / उपयोगकर्ता / www फ़ोल्डर उपयोगकर्ता के स्वामित्व में होना चाहिए, और यह काम नहीं करता है।
विंसेंट लाइटर

क्षमा करें, मुझे नहीं पता :(
स्कॉट वॉरेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.