खाली पृष्ठ: nginx + php-fpm पर वर्डप्रेस


17

अच्छा दिन।

हालांकि यह पोस्ट एक समान सेटअप के बारे में चर्चा करता है, जो कभी-कभी एक सफल इंस्टॉलेशन होने के बाद खाली पन्नों की सेवा के लिए होता है, मैं खाली पन्नों के अलावा कुछ भी परोसने में असमर्थ हूं। कोई त्रुटि मौजूद नहीं है /var/log/nginx/error.log, /var/log/php-fpm.logया /var/log/nginx/us/sharonrhodes/blog/error.log

मेरा सेटअप:

  • वर्डप्रेस 3.0.4
  • nginx 0.8.54
  • php-fpm 5.3.5 (fpm-fcgi)
  • आर्क लिनक्स

कॉन्फ़िगरेशन फ़ाइलें

php-fpm.conf:

[वैश्विक]
pid = run / php-fpm / php-fpm.pid
error_log = log / php-fpm.log
log_level = सूचना

[Www]
सुनो = 127.0.0.1:9000
सुनो.वनवासी = www
सुनो.ग्रुप = www
सुन। सुबह = 0660
उपयोगकर्ता = www
समूह = www

दोपहर = गतिशील
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

nginx.conf:

उपयोगकर्ता www;
कार्यकर्ता_प्रणाली 1;

error_log /var/log/nginx/error.log नोटिस;
pid /var/run/nginx.pid;


आयोजन {
    worker_connections 1024;
}


एचटीटीपी {
    mime.types शामिल करें;
    default_type एप्लिकेशन / ऑक्टेट-स्ट्रीम;
    पर भेज देना;
    Keepalive_timeout 65;

    gzip पर;

    /etc/nginx/sites-enabled/*.conf शामिल करें;
}

/etc/nginx/sites-enabled/blog_sharonrhodes_us.conf:

अपस्ट्रीम php {
    सर्वर 127.0.0.1:9000;
}

सर्वर {
    error_log /var/log/nginx/us/sharonrhodes/blog/error.log सूचना;
    access_log /var/log/nginx/us/sharonrhodes/blog/access.log;

    server_name ब्लॉग.शारोन्रॉड्स.स;
    root / srv / apps / us / sharonrhodes / ब्लॉग;
    index index.php;

    स्थान = /favicon.ico {
            log_not_found बंद;
            access_log बंद;
    }

    स्थान = /robots.txt {
            सभी को अनुमति दें;
            log_not_found बंद;
            access_log बंद;
    }

    स्थान / {
            # यह शांत है क्योंकि स्थिर सामग्री के लिए कोई php नहीं छुआ है                                                                                        
            try_files $ uri $ uri / /index.php?q=$uri&osargs;
    }

    स्थान ~ \ .php $ {
            fastcgi_split_path_info ^ (। + \ _ php) (/.+) $;
            # नोट: आपके पास "cgi.fix_pathinfo = 0;" होना चाहिए। in php.ini                                                                                          
            fastcgi_params शामिल करें;
            fastcgi_intercept_errors on;
            fastcgi_pass php;
    }

    स्थान ~ * \ _ (js | css | png | jpg | jpeg | gif | ico) $ {
            अधिकतम समाप्त;
            log_not_found बंद;
    }
}

/etc/nginx/conf/fastcgi.conf:

fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
fastcgi_param QUERY_STRING $ query_string;
fastcgi_param REQUEST_METHOD $ request_method;
fastcgi_param CONTENT_TYPE $ content_type;
fastcgi_param CONTENT_LENGTH $ content_length;

fastcgi_param SCRIPT_NAME $ fastcgi_script_name;
fastcgi_param REQUEST_URI $ request_uri;
fastcgi_param DOCUMENT_URI $ document_uri;
fastcgi_param DOCUMENT_ROOT $ document_root;
fastcgi_param SERVER_PROTOCOL $ server_protocol;

fastcgi_param GATEWAY_INTERFACE CGI / 1.1;
fastcgi_param SERVER_SOFTWARE nginx / $ nginx_version;

fastcgi_param REMOTE_ADDR $ Remote_addr;
fastcgi_param REMOTE_PORT $ रिमोट_पोर्ट;
fastcgi_param SERVER_ADDR $ server_addr;
fastcgi_param SERVER_PORT $ server_port;
fastcgi_param SERVER_NAME $ server_name;

# PHP केवल आवश्यक है, अगर PHP --enable-force-cgi-redirect के साथ बनाया गया था                                                                                         
fastcgi_param REDIRECT_STATUS 200;

रिक्त पृष्ठ का आमतौर पर मतलब होता है कि कोई घातक त्रुटि है। अधिक जानकारी के लिए अपनी error_log पर एक नज़र डालें
माइक

1
मुझे यह बताना चाहिए था, लेकिन /var/log/nginx/error.log, /var/log/php-fpm.log या / var / log / nginx / us / sharonrhodes / ब्लॉग / त्रुटि में कोई त्रुटि मौजूद नहीं है। लॉग इन करें।
Troutwine

जवाबों:


36

डिफ़ॉल्ट रूप से Nginx स्रोत Fastcgi_params फ़ाइल में SCRIPT_FILENAME को परिभाषित नहीं करता है, इसलिए जब तक कि आपने Nginx को स्थापित किया हुआ रेपो ऐसा नहीं करता है जिसे आपको स्वयं करने की आवश्यकता है।

जाँचें कि क्या निम्न पंक्ति आपकी fastcgi_params फ़ाइल में है:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

और यदि नहीं तो इसे जोड़ें।


दुर्भाग्य से, मैंने fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;सबसे ऊपर सही परिभाषित किया है /etc/nginx/conf/fastcgi.conf। मैं इसे दर्शाने के लिए मूल पोस्ट को संपादित करूंगा।
ट्राउटविन

4
आप फ़ाइल को शामिल करें fastcgi_params, fastcgi.conf नहीं। मेरा जवाब अभी भी मान्य है।
मार्टिन फॉर्डोर्वाल्ड

4

यह सिर्फ मुझे थोड़ा सा लगा- और यह पूरी तरह से मेरी गलती थी। मैं तय करना चाहता था कि मुझे क्या चाहिए। मेरे मामले में, index.php लोड नहीं हो रहा था (रिक्त पृष्ठ) लेकिन wp-admin ने काम किया।

मेरे पास एक कस्टम थीम है और मैंने हाल ही में एक साझा होस्टिंग खाते से एक वीपीएस में स्थानांतरित कर दिया है। मैंने एक rsync किया और मेरी थीम (/srv/blog.clifton.io/wp-content/themes/theme-here) एक सिमलिंक है। यह सहानुभूति निश्चित रूप से टूट गई, क्योंकि यह मेरे पिछले होस्टिंग खाते से पथ का उपयोग कर रहा था।

उम्मीद है की यह मदद करेगा! (और काश यह "इन नॉट फ़ॉन्ड" या इसी तरह के) लॉग होता


उस पर 2 दिन बिताए। अनजाने में एक विषय हटा दिया गया और खाली पृष्ठ थे। मुझे निश्चित रूप से एक विषय दिखाना चाहिए जिसमें त्रुटि नहीं मिली।
एसए मलिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.