我对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
答案 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)