Nginx子文件夹的站点配置

时间:2012-11-06 17:55:15

标签: cakephp nginx cakephp-1.3

我想在一个主域名下的子文件夹中创建一个项目(sitename.org/projectname)。这是一个带有nginx 1.2.0的cakephp 1.3项目。我一直在网上搜索/尝试解决方案2天的大部分时间。我最终会添加更多项目作为子文件夹,每个项目都有自己的根目录。

首先,如果站点位于根域中,则为工作配置。

server {
listen   80;
server_name sitename.org

    location / {
            root /export/home/sitename.org/projectname/app/webroot;
            index index.php index.html index.htm;
            try_files $uri $uri/ /index.php?$uri&$args;

             location ~ .*\.php$ {
                    include /etc/nginx/fastcgi_params;
                     fastcgi_pass 127.0.0.1:9000;
                     fastcgi_index index.php;
                     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            }


    }

}

我想要的是当location是子文件夹(sitename.org/projectname)时。我已尝试使用try_files和fastcgi进行各种配置,但我通常最终得到“未指定输入文件”。又名我的配置错了。

任何提示都将不胜感激。

1 个答案:

答案 0 :(得分:3)

通过将根目录更改为更高目录并重写路径,找到了我的答案。希望这可以帮助遇到类似情况的其他人。

location /projectname {
            root /export/home/sitename.org/;
            index index.php index.html index.htm;
            rewrite ^/projectname/(.*)$ /projectname/app/webroot/$1 break;
            try_files $uri $uri/ /projectname/app/webroot/index.php?q=$uri&$args;

            location ~ .*\.php$ {
                    include /etc/nginx/fastcgi_params;
                     fastcgi_pass 127.0.0.1:9000;
                     fastcgi_index index.php;
                    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            }