带有php5 fpm的Nginx pnp4nagios

带有php5 fpm的Nginx pnp4nagios,nginx,php,Nginx,Php,我已经做了一天了。我想现在是时候寻求帮助了 我要把我们的nagios搬到nginx。我已经运行了nagios和我最近开发的django应用程序。不过,纳吉奥斯给我带来了一些麻烦。我在Nginx中有以下配置 location ~ ^(/pnp4nagios/.*\.php)(.*)$ { root /usr/share/pnp4nagios/html; include /etc/nginx/fastcgi_params; rewrite ^/pnp4nagios/(.*)

我已经做了一天了。我想现在是时候寻求帮助了

我要把我们的nagios搬到nginx。我已经运行了nagios和我最近开发的django应用程序。不过,纳吉奥斯给我带来了一些麻烦。我在Nginx中有以下配置

location ~ ^(/pnp4nagios/.*\.php)(.*)$ {
    root /usr/share/pnp4nagios/html;

    include /etc/nginx/fastcgi_params;
    rewrite ^/pnp4nagios/(.*)$ /$1 break;

    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param   SCRIPT_FILENAME     /usr/share/pnp4nagios/html/$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
}
这导致:

如您所见,pnp4nagios认为其index.php存在于172.16.10.28/index.php中,但事实并非如此。它是一个子页面(或者我应该叫它什么?)。我希望它指向172.16.10.28/pnp4nagios/index.php,但我不知道如何在我的nginx配置中做到这一点。我宁愿不改变pnp4nagios中的任何内容。但如果只是一句或几句话,我愿意做出妥协。我的“根”url中已经有一个index.php。这就是我想要一个子文件夹的原因

让我想到这一点的例子有:

因此,概括一下我想要的(或我认为我需要的)是从以下内容开始:
img src=“/index.php…
img src=“/pnp4nagios/index.php…


另外,我没有足够的点数来创建pnp4nagios标记

您的配置中有一个重写,它会剥离php4nagios路径组件。因此,看到对
/index.php
的引用并不奇怪。您应该使用相应目录中的
info.php
页面验证生成的CGI变量。令人不快的是:

rewrite/pathinfo/(*)/$1中断

这对我很有效:

location /pnp4nagios {
    alias /usr/share/pnp4nagios/html;
}   

location ~ ^(/pnp4nagios.*\.php)(.*)$ {
    root /usr/share/pnp4nagios/html;
    include /etc/nginx/fastcgi_params;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;

   fastcgi_param SCRIPT_FILENAME $document_root/index.php;
    fastcgi_pass 127.0.0.1:9000; 

}