我对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的各种选项?
答案 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发行版必须是相同的)