Nginx pnp4nagios与php5-fpm

时间:2012-09-14 08:46:37

标签: nginx php

我现在已经在这一天了。我认为现在是时候寻求帮助了。

我正在将我的nagios移动到nginx。我有nagios运行以及我最近开发的django应用程序。 Pnp4nagios虽然给了我一些麻烦。我在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;
}

这导致: Folder Wrong

正如你所看到的,pnp4nagios认为它的index.php存在于172.16.10.28/index.php但是事实并非如此。这是一个子页面(或者我应该称之为什么?)。我希望它指向172.16.10.28/pnp4nagios/index.php,但我不知道如何在我的nginx配置中执行此操作。我宁愿不改变pnp4nagios中的任何内容。但如果它只是一条或几条线,那么我愿意做出妥协。我的“root”网址中已经有一个index.php。这就是我想要一个子文件夹的原因。

引导我达到这个目的的例子是: Example1 Example2

所以回顾一下我想要的东西(或者我认为我需要的东西)就是这样:img src="/index.php...img src="/pnp4nagios/index.php...

PS。我没有足够的积分来创建pnp4nagios标签

2 个答案:

答案 0 :(得分:3)

这对我有用:

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; 

}   

答案 1 :(得分:1)

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

rewrite /pathinfo/(.*)/ $1 break;