2010-03-23 17 views
10

मैं nginx के लिए निम्न विन्यास का उपयोग करें: http://gist.github.com/340956

हालांकि, इस विन्यास पीएचपी के साथ एक No input file specified त्रुटि होती है। एक ही रास्ता मैं इसे हल करने के लिए सक्षम किया गया है इस लाइन को बदलकर है:

fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

नोट "/" $document_root और $fastcgi_script_name के बीच। मुझे सूचित किया गया कि यह गलत कॉन्फ़िगरेशन है लेकिन कोई भी मुझे यह बताने में सक्षम नहीं है कि मेरी कॉन्फ़िगरेशन को इस अतिरिक्त स्लैश की आवश्यकता क्यों है।

मैं उस अतिरिक्त स्लैश से कैसे छुटकारा पा सकता हूं?

उत्तर

4

बस एक ही मुद्दे का सामना करना पड़ा, तो आप को जोड़कर इसे हल कर सकते/etc/nginx/fastcgi_params

fastcgi_param SCRIPT_FILENAME $request_filename; 

में निम्न पंक्ति मैं, इस लाइन RHEL में लापता पाया, जबकि एक पूरी तरह से काम कर रहा डेबियन nginx में मौजूद।

0

लाइन में स्थित निकालें try_files $uri index.php$uri; 3.

+0

फिर मेरा पुनर्लेखन टूट जाता है, क्योंकि मेरे पास '/ foo/bar' जैसे यूआरएल हैं जो 'index.php/foo/bar' पर रीडायरेक्ट करते हैं। – shadowhand

0

प्राथमिकता का मामला। जब तक आप लगातार होते हैं, वैसे भी ठीक है।

या तो कॉन्फ़िगरेशन फ़ाइल में स्लैश जोड़ें, और सुनिश्चित करें कि अंत में कोई अतिरिक्त स्लैश नहीं है और दस्तावेज़ रूट और स्क्रिप्ट नाम क्रमशः या इसके विपरीत है।

+0

मैं इसे नहीं खरीदता। ऐसा कोई फर्क नहीं पड़ता कि मैं एक रूटिंग स्लैश $ रूट में जोड़ता हूं या नहीं। – shadowhand

1

क्या param PATH_TRANSLATED सही यूआरआई प्राप्त करता है? मुझे लगता है कि यह conf फ़ाइल में चर के तत्काल समापन है जो गणना नहीं करता है। उनके बीच एक स्लैश जोड़ने पर, शायद वे सही ढंग से व्याख्या की जाती हैं।

जब आपको त्रुटि No input file specified मिलती है, तो यह देखने के लिए कि आपका यूआरआई किससे अनुरोध किया गया था, अपना लॉग जांचें।

+0

जब मुझे 'कोई इनपुट फ़ाइल निर्दिष्ट नहीं' त्रुटि मिलती है तो मुझे किस लॉग की जांच करनी चाहिए? nginx लॉग कुछ भी नहीं दिखाते हैं, क्योंकि त्रुटि PHP द्वारा ट्रिगर की जाती है। – shadowhand

+0

मेरे '$ _SERVER' डंप में कोई 'PATH_TRANSLATED' नहीं है। – shadowhand

+0

PHP त्रुटि लॉग भी कोई त्रुटि नहीं दिखाते हैं। – shadowhand

0

जब आप स्पष्ट रूप से ऐसा तरह एक जड़ निर्देश क्या होता है: (nginx + एक RHEL6 सर्वर पर php-एफ पी एम की रेमी स्थापना में)

location ~ \.php$ { 
    # fastcgi_split_path_info ^(.+\.php)(.*)$; 
    include fastcgi.conf; 

    root /var/www/my_webroot; 

    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_index index.php; 
} 
+0

मेरा '$ रूट' 'सर्वर {...}' में परिभाषित किया गया है बहुत अच्छा नहीं? – shadowhand