无法让PHP在Nginx上运行 - 错误502 Bad Gateway

时间:2014-02-08 09:23:59

标签: php nginx

我对nginx很新,并且认为用它来提供php是非常简单的,因为这种设置很常见,但它似乎比我预期的要复杂得多。

这是我的配置..

    server {
            listen 80;
            server_name domain.com www.domain.com;

            location / {
                    root   /srv/www/domain.com/public_html;
                    index index.php;
            }

    # serve static files directly
    #location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$
    #    access_log        off;
    #    expires           30d;

            location ~ [^/]\.php(/|$) {
                    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
                    if (!-f $document_root$fastcgi_script_name) {
                            return 404;
                    }

                    fastcgi_pass /var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
            }
    }

如果我用“index.html”文件替换“index.php”,nginx会完美地提供html。但切换到php会导致502错误。

我见过指南,建议修改从iptables到php-fpm到php.ini,到fast-cgi到sites-available ......?

我不确定这些教程中有多少正在尝试做什么......现在我只想用我的index.php来提供phpinfo()。下一步是什么?

是否有一个明确的指南可用于使用nginx提供php的各种选项?

2 个答案:

答案 0 :(得分:1)

您必须安装php-fpm并添加此部分:http://wiki.nginx.org/PHPFcgiExample

答案 1 :(得分:1)

我假设您已成功安装php-fpm (FastCGI Process Manager)

转到php-fpm/php.ini

找到第cgi.fix_pathinfo=1行,取消注释并将值1更改为0

cgi.fix_pathinfo=0

现在重新启动php-fpm服务。

通过您的终端

service php5-fpm restart(我不确定你的Linux发行版必须是相同的)