将Cakephp 3.x应用程序移动到nginx子文件夹中

时间:2017-05-08 23:51:40

标签: cakephp nginx cakephp-3.0

系统

    Ubuntu上的
  • nginx
  • CakePhp 3.4.6

问题

我正在尝试将CakePhp应用程序移动到网络服务器上的子文件夹中。

  1. 假设子文件夹名为 / project
  2. 和根网络服务器目录位于 / var / www / html /
  3. 我在nginx默认中尝试了类似的东西(没有任何成功):

    location /project {
            alias /var/www/html/project/webroot;
            try_files $uri $uri/ /project/webroot/index.php;
    }
    

    子文件夹url-suffix始终被解释为控制器。

    我猜我需要在app.php文件中设置特定的值,所以cakephp知道url有一个前缀,但我还没有找到一个有效的值组合。

    有人在这里有指导吗?

1 个答案:

答案 0 :(得分:0)

它是app.php和nginx重写规则的组合:

  1. config.php/app.php

    'base' => '/project'

  2. /etc/nginx/sites-available/default

  3. `

    location /project {
        if (-f $request_filename) {
            break;
        }
    
        # prevent recursion
        if ($request_uri ~ /webroot/index.php) {
            break;
        }
    
        rewrite ^/project$ /project/ permanent;
        rewrite ^/project/webroot/(.*) /project/webroot/index.php last;
        rewrite ^/project/(.*)$ /project/webroot/$1 last;
    }
    

    `