Halaman Kosong: wordpress di nginx + php-fpm

18

Selamat siang.

Meskipun posting ini membahas pengaturan serupa untuk menambang melayani halaman kosong sesekali setelah melakukan instalasi yang berhasil, saya tidak dapat menayangkan apa pun selain halaman kosong. Tidak ada kesalahan /var/log/nginx/error.log, /var/log/php-fpm.logatau /var/log/nginx/us/sharonrhodes/blog/error.log.

Pengaturan saya:

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

File Konfigurasi

php-fpm.conf:

[global]
pid = run / php-fpm / php-fpm.pid
error_log = log / php-fpm.log
log_level = pemberitahuan

[www]
dengarkan = 127.0.0.1:9000
listen.owner = www
listen.group = www
listen.mode = 0660
pengguna = www
grup = www

pm = dinamis
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

nginx.conf:

pengguna www;
proses pekerja_ 1;

pemberitahuan error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;


acara {
    koneksi pekerja_1024;
}


http {
    termasuk mime.types;
    default_type application / octet-stream;
    sendfile aktif;
    keepalive_timeout 65;

    gzip aktif;

    termasuk /etc/nginx/sites-enabled/*.conf;
}

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

upstream php {
    server 127.0.0.1:9000;
}

server {
    pemberitahuan 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 / blog;
    index index.php;

    location = /favicon.ico {
            log_not_found off;
            access_log off;
    }

    location = /robots.txt {
            perbolehkan semua;
            log_not_found off;
            access_log off;
    }

    lokasi / {
            # Ini keren karena tidak ada php yang disentuh untuk konten statis                                                                                        
            try_files $ uri $ uri / /index.php?q=$uri&$args;
    }

    lokasi ~ \ .php $ {
            fastcgi_split_path_info ^ (. + \. php) (/.+) $;
            #CATATAN: Anda harus memiliki "cgi.fix_pathinfo = 0;" di php.ini                                                                                          
            termasuk fastcgi_params;
            fastcgi_intercept_errors aktif;
            fastcgi_pass php;
    }

    lokasi ~ * \. (js | css | png | jpg | jpeg | gif | ico) $ {
            kedaluwarsa maks;
            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;

# Hanya PHP, diperlukan jika PHP dibangun dengan --enable-force-cgi-redirect                                                                                         
fastcgi_param REDIRECT_STATUS 200;
ikan troutwine
sumber
halaman kosong biasanya berarti ada kesalahan fatal. Lihatlah error_log Anda untuk info lebih lanjut
Mike
1
Saya seharusnya menyatakan ini, tetapi tidak ada kesalahan pada /var/log/nginx/error.log, /var/log/php-fpm.log atau / var / log / nginx / us / sharonrhodes / blog / error. catatan.
ikan troutwine

Jawaban:

37

Secara default, sumber Nginx tidak mendefinisikan SCRIPT_FILENAME dalam file fastcgi_params, jadi kecuali jika repo tempat Anda menginstal Nginx, Anda perlu melakukannya sendiri.

Periksa apakah baris berikut ada di file fastcgi_params Anda:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

dan jika tidak maka tambahkan.

Martin Fjordvald
sumber
Sayangnya, saya telah fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;mendefinisikan tepat di bagian atas /etc/nginx/conf/fastcgi.conf. Saya akan mengedit posting asli untuk mencerminkan ini.
troutwine
4
Anda menyertakan file fastcgi_params, bukan fastcgi.conf. Jawaban saya masih valid.
Martin Fjordvald
4

Yang ini hanya sedikit saya- dan itu sepenuhnya salah saya. Saya ingin membagikan apa yang memperbaiki saya. Dalam kasus saya, index.php tidak memuat (halaman kosong) tetapi wp-admin berfungsi.

Saya memiliki tema khusus dan saya baru saja bermigrasi dari akun hosting bersama ke VPS. Saya melakukan rsync dan tema saya (/srv/blog.clifton.io/wp-content/themes/theme-here) adalah symlink. Tentu saja symlink ini rusak karena menggunakan jalur dari akun hosting saya sebelumnya.

Semoga ini membantu! (dan berharap itu akan mencatat "TEMA TIDAK DITEMUKAN" atau serupa)

Brian Clifton
sumber
menghabiskan 2 hari di sana. Menghapus tema tanpa sadar dan ada halaman kosong. Saya pasti harus menunjukkan tema tidak ditemukan kesalahan.
SA Malik