NGINX PHP फ़ाइलों को निष्पादित नहीं कर रहा है


9

मुझे इसके लिए कोई उत्तर नहीं मिला। स्थापित PHP5 + NGINX + PHP-FPM और php फ़ाइलों को निष्पादित नहीं कर सकता है, इसे एक "ओह! यह लिंक टूटा हुआ प्रतीत होता है।" CHROME में त्रुटि। मेरे पास कोई मूल्यवान त्रुटि लॉग रिपोर्ट नहीं है, मेरे पास रूट में एक index.php है, एक कस्टम phpinfo.php फ़ाइल बनाने की कोशिश की, न तो काम किया।

मैं HTML फ़ाइलों को लोड कर सकता हूँ, लेकिन PHP को नहीं।

यहाँ NGINX में मेरा स्थानीय साइट विन्यास है:

server {
    listen       80;
    server_name  im;
    access_log /var/www/website/access.log;
    error_log /var/www/website/error.log;

    location / {
        root   /var/www/website;
        index  index.html index.htm index.php;
    }


    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/website$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

}

Www-data के लिए सभी निर्देशिकाओं का स्वामित्व बदल गया: www-data, ने php फ़ाइल पर 777 बनाया, कुछ भी नहीं। पुनः आरंभ किया गया nginx, FPM, कुछ भी नहीं।

मदद? :(


अपनी त्रुटि लॉग में देखें
माइक

पहले से ही किया था, "मेरे पास कोई मूल्यवान त्रुटि लॉग रिपोर्ट नहीं है"। यह पूरी तरह से खाली है।
गेब्रियल ए। ज़ोरिल्ला

समस्या के निदान के लिए आपको अधिक डेटा की आवश्यकता है। मैं 'fastcgi_intercept_errors?' जोड़कर शुरू करने का सुझाव दूंगा। किसी भी FPM त्रुटियों को लॉग इन करने के लिए (अगर fastcgi_params में नहीं है)। बहुत अधिक विवरण प्राप्त करने के लिए अपनी error_log लाइन में 'डिबग' भी जोड़ें (मुख्य nginx error_log (संभवतः / var / लॉग में) की जाँच करें)। आपका सर्वर_नाम निर्देश असामान्य दिखता है - सुनिश्चित नहीं है कि आपने इसे इस पद के लिए प्रतिस्थापित किया है या यह वास्तव में ऐसा है। एक सामान्य अनुशंसा के रूप में, अपने मूल निर्देश को अपने स्थान ब्लॉक से बाहर ले जाएँ। (अंतिम (असंभावित) सुझाव: सुनिश्चित करें कि आपका डिफ़ॉल्ट सर्वर उन html पृष्ठों की सेवा नहीं कर रहा है जिन्हें आप देख सकते हैं)।
साइबरबरी86

जवाबों:


9

यह एक "उफ़ मिलता है! यह लिंक टूटा हुआ प्रतीत होता है।" CHROME में त्रुटि।

यदि त्रुटि पृष्ठ 512 बाइट्स से कम है, तो Chrome अपना त्रुटि पृष्ठ दिखाता है।

मुझे संदेह है कि आपके पास निम्नलिखित पंक्ति है fastcgi_params:

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

और यदि ऐसा है, क्योंकि rootनिर्देश में परिभाषित किया गया location /है कभी नहीं लागू किया जाएगा location ~ \.php$, इस प्रकार SCRIPT_FILENAMEURI हो जाता है।

यह rootनिर्देश को serverस्तर के संदर्भ में स्थानांतरित करके हल किया जा सकता है:

server {
    listen       80;
    server_name  im;
    access_log /var/www/website/access.log;
    error_log /var/www/website/error.log;

    root   /var/www/website;

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

}

बिंगो। सुझाए गए और काम किए गए सर्वर ब्लॉक को रूट किया। धन्यवाद!
गेब्रियल ए। ज़ोरिल्ला

@quanta: क्या ओपी ने अपने प्रश्न में विन्यास को संपादित किया? क्योंकि यह एक हार्डकोड मार्ग है, इसे तब भी पूरी तरह से ठीक काम करना चाहिए जब रूट निर्देश स्थान संदर्भ में परिभाषित किया गया हो। एकमात्र ऐसा मामला जहां यह काम नहीं करेगा अगर वह $ $ document_root का उपयोग करके अपनी Fastcgi_params फ़ाइल में SCRIPT_FILENAME को परिभाषित करता है और इस प्रकार उसके हार्डकोड को ओवरराइड करता है।
मार्टिन फॉर्डोर्वाल्ड

@MartinF: नहीं, OP ने कॉन्फिग को एडिट नहीं किया। आप सही हे। मैं अपने उत्तर को संपादित करूंगा।
क्वांटा

-3

मेरे मामले में यह php-zip पैकेज को याद नहीं कर रहा था। इसे ठीक करने के लिए, मैं भागा:

yum install -y php-zip
systemctl restart php-fpm nginx

3
जाहिर है, ओपी का कारण पूरी तरह से कुछ और के लिए था।
स्वेन

इसका मतलब यह नहीं है कि जो कोई इस मुद्दे के साथ इस पृष्ठ पर अपना रास्ता खोजता है, उसके पास ओपी के समान कारण होगा, वे बहुत अच्छी तरह से इसका कारण हो सकते हैं जो कि वेज्ड्रो ने किया और इस उत्तर को उपयोगी पाया। यह सवाल उस कारण के लिए विशिष्ट नहीं है, यह उस लक्षण के लिए विशिष्ट है, और जाहिर है कि इसके कई कारण हैं, इसलिए विभिन्न कारणों वाले लोग यहां समाप्त हो सकते हैं।
सिंथेट

-4
    fastcgi_pass unix:/var/run/php5-fpm.sock;

4
सर्वर दोष में आपका स्वागत है! ऐसा लगता है कि आपके पास यहाँ अच्छा उत्तर प्रदान करने के लिए ज्ञान हो सकता है, लेकिन कृपया पढ़ने पर विचार करें मैं एक अच्छा उत्तर कैसे लिखूँ? हमारे सहायता केंद्र में और फिर संशोधित करें और अपने उत्तर पर विस्तार करें। आपके कमांड / कोड / सेटिंग्स तकनीकी रूप से समाधान हो सकते हैं लेकिन कुछ स्पष्टीकरण का स्वागत है। अग्रिम में धन्यवाद।
HBruijn

4
इसके अलावा: यहां तक ​​कि अगर एक लाइन जो समस्या को हल करती है, वह कहां जाती है? ओपी दो दिखाता है locations। क्या लाइन एक में जाती है? अन्य? दोनों? कृपया इसे पूरा करने के लिए अपने उत्तर को संपादित करें।
डेविड माकोगन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.