无法让PHP在Nginx上运行 - 错误404

时间:2014-02-08 19:45:58

标签: 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。

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

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

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

Debian Wheezy 7.3 on xen

1 个答案:

答案 0 :(得分:1)

试试这个配置:

server {
    listen   80;
    server_name domain.com www.domain.com;
    root /srv/www/domain.com/public_html;
    index index.php;

    location ~ ^(.+\.php)(/.*)?$ {
        fastcgi_pass  localhost:9000;
        include fastcgi_params;
    }
}

(假设您的index.php文件位于/srv/www/domain.com/public_html)