หน้าว่าง: เวิร์ดเพรสบน nginx + php-fpm


18

ขอให้เป็นวันที่ดี.

ในขณะที่โพสต์นี้กล่าวถึงการตั้งค่าที่คล้ายกันกับการให้บริการหน้าว่างในบางครั้งหลังจากที่ทำการติดตั้งสำเร็จฉันไม่สามารถให้บริการได้นอกจากหน้าเปล่า ไม่มีข้อผิดพลาดในปัจจุบัน/var/log/nginx/error.log, หรือ/var/log/php-fpm.log/var/log/nginx/us/sharonrhodes/blog/error.log

การตั้งค่าของฉัน:

  • Wordpress 3.0.4
  • nginx 0.8.54
  • php-fpm 5.3.5 (fpm-fcgi)
  • Arch Linux

ไฟล์การกำหนดค่า

PHP-fpm.conf:

[โลก]
pid = run / php-fpm / php-fpm.pid
error_log = log / php-fpm.log
log_level = ประกาศ

[www]
Listen = 127.0.0.1:9000
Listen.owner = www
Listen.group = www
Listen.mode = 0660
ผู้ใช้ = www
กลุ่ม = www

pm = ไดนามิก
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;
worker_processes 1;

error_log /var/log/nginx/error.log ประกาศ;
pid /var/run/nginx.pid;


กิจกรรม {
    worker_connections 1024;
}


http {
    รวมถึง mime.types;
    default_type application / octet-stream;
    sendfile บน;
    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 blog.sharonrhodes.us;
    root / srv / apps / us / sharonrhodes / บล็อก;
    ดัชนี index.php;

    location = /favicon.ico {
            log_not_found off;
            ปิดการเข้าถึง;
    }

    location = /robots.txt {
            อนุญาตทั้งหมด
            log_not_found off;
            ปิดการเข้าถึง;
    }

    ตำแหน่ง / {
            # นี่เจ๋งเพราะไม่มีการสัมผัส php สำหรับเนื้อหาคงที่                                                                                        
            try_files $ uri $ uri / /index.php?q=$uri&$args;
    }

    ตำแหน่ง ~ \ .php $ {
            fastcgi_split_path_info ^ (. + \. php) (/.+) $;
            #NOTE: คุณควรมี "cgi.fix_pathinfo = 0;" ใน php.ini                                                                                          
            รวม fastcgi_params;
            fastcgi_intercept_errors เปิด;
            fastcgi_pass php;
    }

    location ~ * \. (js | css | png | jpg | jpeg | gif | ico) $ {
            หมดอายุสูงสุด
            log_not_found off;
    }
}

/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 $ 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 ของคุณสำหรับข้อมูลเพิ่มเติม
Mike

1
ฉันควรระบุสิ่งนี้ แต่ไม่มีข้อผิดพลาดใน /var/log/nginx/error.log, /var/log/php-fpm.log หรือ / var / log / nginx / us / sharonrhodes / บล็อก / ข้อผิดพลาด เข้าสู่ระบบ
troutwine

คำตอบ:


37

โดยค่าเริ่มต้นแหล่งที่มาของ Nginx ไม่ได้กำหนด SCRIPT_FILENAME ในไฟล์ fastcgi_params ดังนั้นเว้นแต่ว่า repo ที่คุณติดตั้ง 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ฉันจะแก้ไขโพสต์ต้นฉบับเพื่อแสดงถึงสิ่งนี้
troutwine

4
คุณรวมไฟล์ fastcgi_params ไม่ใช่ fastcgi.conf คำตอบของฉันยังคงใช้ได้
Martin Fjordvald

4

หนึ่งนี้เพียงเล็กน้อยฉัน - และมันเป็นความผิดของฉันโดยสิ้นเชิง ฉันต้องการแบ่งปันสิ่งที่แก้ไขให้ฉัน ในกรณีของฉัน index.php ไม่ได้โหลด (หน้าว่าง) แต่ wp-admin ทำงาน

ฉันมีธีมที่กำหนดเองและฉันเพิ่งย้ายจากบัญชีโฮสติ้งที่แชร์ไปยัง VPS ฉันทำ rsync และธีมของฉัน (/srv/blog.clifton.io/wp-content/themes/theme-here) เป็น symlink แน่นอนว่า symlink นี้พังเนื่องจากใช้เส้นทางจากบัญชีโฮสติ้งก่อนหน้าของฉัน

หวังว่านี่จะช่วยได้! (และหวังว่ามันจะเข้าสู่ระบบ "รูปแบบไม่พบ" หรือคล้ายกัน)


ใช้เวลา 2 วันกับมัน ลบชุดรูปแบบโดยไม่รู้ตัวและมีหน้าว่าง ฉันควรแสดงชุดรูปแบบไม่พบข้อผิดพลาดอย่างแน่นอน
SA Malik
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.