带有PHP5-FPM--.php文件的Nginx提供空白屏幕

带有PHP5-FPM--.php文件的Nginx提供空白屏幕,nginx,webserver,php,Nginx,Webserver,Php,我的头撞在墙上,试图让nginx启动并运行php5 fpm。我觉得这是我忽略的一个小细节,所以我休息了一下,几天后又回来了。今晚又搞了几个小时都没用 无论如何,问题是:我已经启动并运行了nginx。它似乎能够正确地提供网页。例如,的基础网站服务良好。然而,我的php测试(位于)返回为空白。以前它是作为502坏网关回来的 通过我的研究,我明白了这意味着它不能正确地通过php fpm进行路由。不是百分之百的 这是我的/sites available/config: server { serv

我的头撞在墙上,试图让nginx启动并运行php5 fpm。我觉得这是我忽略的一个小细节,所以我休息了一下,几天后又回来了。今晚又搞了几个小时都没用

无论如何,问题是:我已经启动并运行了nginx。它似乎能够正确地提供网页。例如,的基础网站服务良好。然而,我的php测试(位于)返回为空白。以前它是作为502坏网关回来的

通过我的研究,我明白了这意味着它不能正确地通过php fpm进行路由。不是百分之百的

这是我的/sites available/config:

server {
    server_name www.shidenadvanced.com shidenadvanced.com;
    access_log /srv/sites/shidenadvanced/logs/access.log;
    error_log /srv/sites/shidenadvanced/logs/error.log;

    root /srv/sites/shidenadvanced/www;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.html;
    }

    #location ~ \.php$ {
    #    try_files $uri =404;
    #    include /etc/nginx/fastcgi_params;
    #    fastcgi_pass unix:/var/run/php-fpm5.sock;
    #    fastcgi_index index.php;
    #    fastcgi_param SCRIPT_FILENAME /srv/sites/shidenadvanced/www$fastcgi_script_name;
    #}

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

除此之外,我还保留了大部分设置。不完全确定发生了什么。有人能解释一下吗?

试试这个。我对您处理fastcgi的方式做了一些更改

server {
server_name www.shidenadvanced.com shidenadvanced.com;
access_log /srv/sites/shidenadvanced/logs/access.log;
error_log /srv/sites/shidenadvanced/logs/error.log;

root /srv/sites/shidenadvanced/www;
index index.php index.html index.htm;

location / {
    try_files $uri $uri/ /index.html;
}

# use fastcgi for all php files
location ~ \.php$
{
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

location ~ /\.ht {
    deny all;
}
}

我个人更喜欢插座解决方案:

fastcgi_pass unix:/path/tp/myfirst.socket;
而不是

fastcgi_pass 127.0.0.1:9000;
但您也需要主机的fpm配置:

[hak-rentrisch_de]
listen = /path/tp/myfirst.socket
listen.owner = hostuser
listen.group = hostgroup
listen.mode = 0666

listen.backlog = -1
listen.allowed_clients = 127.0.0.1

user = hostuser
group = hostgroup

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 500

php_admin_value[include_path] = .:/var/www/libs 
[...]

亲切问候

您的错误日志中是否有任何内容?还有
/var/run/
中存在的套接字吗?错误日志的输出:2013/01/26 05:02:52[crit]3647#0:*20 connect()到unix:/var/run/php-fpm5.sock在连接到上游时失败(2:没有这样的文件或目录),客户端:74.110.180.71,服务器:www.shidenadvanced.com,请求:“GET/test.php HTTP/1.1”,上游:"fastcgi://unix:/var/run/php-fpm5.sock:,host:“www.shidenadvanced.com”--这是最近的一行。但是php-fpm5.sock确实存在。/var/run/php5-fpm.sock,这个问题很简单,只是为了确定:您提到您已经启动并运行了nginx,您也启动(并配置)了吗php fpm守护进程?我很确定我有。我有我提到的文件/var/run/php5-fpm.sock。我还查看了/etc/php5/fpm/pool.d/www.conf以确保它正在侦听该套接字。当我键入“service php5 fpm status”时“它返回正在运行的状态。我多次尝试重新启动php5 fpm和nginx。您解决了这个问题吗?我已经在输出中使用了套接字实现。您在这里提到的第二个文件是什么?第二个文件是池配置。查看nginx配置,在将其更改为此配置时,它对pool dir有一些包含,它会给我一个“502坏网关”响应。我本来就在这一点上,认为这意味着它根本找不到PHP服务(尽管我可能在这一点上弄错了)。我花了一天半的时间,在一个新的空白页上使用突然出现的php5 fpm版本。将这一行添加到我的php位置语句解决了我的问题
fastcgi\u param SCRIPT\u FILENAME$document\u root$fastcgi\u SCRIPT\u name