空白页面:wordpress在nginx + php-fpm上

美好的一天。

虽然这篇文章讨论了一个类似的设置,在成功安装之后,偶尔会发布空白页面,但我无法提供除空白页面以外的所有内容。 /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

configuration文件

PHP-fpm.conf:

 [全球]
 pid = run / php-fpm / php-fpm.pid
 error_log = log / php-fpm.log
 log_level =通知

 [万维网]
 listen = 127.0.0.1:9000
 listen.owner = www
 listen.group = www
 listen.mode = 0660
用户= www
组= www

下午=dynamic
 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;
    发送文件;
     keepalive_timeout 65;

     gzip on;

    包括/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 / blog;
     index index.php;

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

     location = /robots.txt {
            允许全部;
             log_not_found off;
             access_logclosures;
     }

    位置 / {
             #这很酷,因为没有PHP的静态内容                                                                                        
             try_files $ uri $ uri / /index.php?q=$uri&$args;
     }

    位置〜\ .php $ {
             fastcgi_split_path_info ^(。+ \。php)(/.+)$;
             #注意:你应该有“cgi.fix_pathinfo = 0;” 在php.ini中                                                                                          
            包括fastcgi_params;
             fastcgi_intercept_errors on;
             fastcgi_pass php;
     }

    位置〜*。(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构build的,则需要PHP                                                                                         
 fastcgi_param REDIRECT_STATUS 200;

默认情况下,Nginx源代码没有在fastcgi_params文件中定义SCRIPT_FILENAME,所以除非你从Nginx安装Nginx的repo,否则你需要自己去做。

检查下列行是否在你的fastcgi_params文件中:

 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 

如果不是的话就添加它。

这只是我 – 而这完全是我的错。 我想分享一下固定我的东西。 在我的情况下,index.php没有加载(空白页),但WP – pipe理员工作。

我有一个自定义的主题,我最近从共享主机帐户迁移到VPS。 我做了一个rsync和我的主题(/srv/blog.clifton.io/wp-content/themes/theme-here)是一个符号链接。 这个符号链接当然打破了,因为它使用了我以前的主机帐户的path。

希望这可以帮助! (并希望它会logging“主题未find”或类似的)