空白页:nginx+php-fpm 上的 wordpress

tro*_*ine 18 nginx wordpress arch-linux php-fpm

再会。

虽然这篇文章讨论了与我在成功安装后偶尔提供空白页的类似设置,但除了空白页之外,我无法提供任何内容。有没有存在的错误/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)
  • 拱形Linux

配置文件

php-fpm.conf:

[全球的]
pid = 运行/php-fpm/php-fpm.pid
error_log = 日志/php-fpm.log
log_level = 通知

[万维网]
听 = 127.0.0.1:9000
听.所有者 = www
听.group = www
听.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 应用程序/八位字节流;
    发送文件;
    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/blog;
    索引 index.php;

    位置 = /favicon.ico {
            log_not_found 关闭;
            access_log off;
    }

    位置 = /robots.txt {
            允许所有;
            log_not_found 关闭;
            access_log off;
    }

    地点 / {
            # 这很酷,因为静态内容没有触及 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 开启;
            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 $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;

Mar*_*ald 37

默认情况下,Nginx 源不会在 fastcgi_params 文件中定义 SCRIPT_FILENAME,因此除非您安装 Nginx 的存储库这样做,否则您需要自己完成。

检查以下行是否在您的 fastcgi_params 文件中:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
Run Code Online (Sandbox Code Playgroud)

如果没有,则添加它。

  • 您包括文件 fastcgi_params,而不是 fastcgi.conf。我的回答仍然有效。 (5认同)

小智 5

这只咬了我——这完全是我的错。我想分享是什么解决了我的问题。就我而言,index.php 没有加载(空白页面),但 wp-admin 可以工作。

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

希望这可以帮助!(并希望它会记录“THEME NOT FOUND”或类似内容)