NGiNX:来自其他位置的PHP文件+回退到bootstrap index.php

时间:2014-10-22 20:51:06

标签: php nginx bootstrapping

我有两个具有相同结构目录的目录A包含所有文件,目录B只有不同于A的文件(即其他logo.png)。另外我运行的ZendFramework有一个管理和管理模块,应该触发bootstrap(index.php)。

所以www.my.comwww.my.com/admin/www.my.com/management应触发引导文件,所有其他位置应首先在目录A中查找,然后在B中查找应该从两个文件夹运行php文件。

我正在寻找并尝试数小时和数小时来解决这个问题,但我认为必须有更好或更简单的方法。

有吗?

奇怪的是,ZF的index.php是下载而不是执行的,或者下载的其他php文件未执行。诀窍是location ~* \.php$中的部分。

1 个答案:

答案 0 :(得分:0)

这里我们使用配置文件

server {
    ...

    root /var/www/clients/B/public/;

    # ZendFramework run bootstrap index.php
    location ~ ^/(management|admin)(?:/|\z) {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~* \.php$ {
        include php.conf;
        try_files $uri $uri/ @fallbackPHP;
    }

    location / {
        try_files $uri $uri/ @fallback;
    }

    location @fallback {
        root /var/www/clients/A/public/;
    }

    location @fallbackPHP {
        root /var/www/clients/A/public/;
        include php.conf;
    }
}

和包含的php.conf

try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass php5-fpm-sock-B;
include /etc/nginx/fastcgi_params;