在共享托管环境中部署

将高级项目模板部署到共享托管比基本托管更复杂,因为它有两个 webroots,共享托管 Web 服务器不支持。我们需要调整目录结构,以便前端 URL 为 http://site.local ,后端 URL 为 http://site.local/admin

将条目脚本移动到单个 webroot 中

首先,我们需要一个 webroot 目录。创建一个新目录并将其命名为与你的托管 webroot 名称匹配,例如 www 或 public_html 等。然后创建以下结构,其中 www 是你刚刚创建的托管 webroot 目录:

www
    admin
backend
common
console
environments
frontend
...

www 将是我们的前端目录,因此将前端/ web 的内容移动到其中。将后端/ web 的内容移动到 www / admin 。在每种情况下,你都需要调整 index.phpindex-test.php 中的路径。

最初的后端和前端旨在运行在不同的域。当我们将它们全部移动到同一个域时,前端和后端将共享相同的 cookie,从而产生冲突。为了解决这个问题,请按如下方式调整后端应用程序配置 backend / config / main.php

'components' => [
    'request' => [
        'csrfParam' => '_csrf-backend',
        'csrfCookie' => [
            'httpOnly' => true,
            'path' => '/admin',
        ],
    ],
    'user' => [
        'identityClass' => 'common\models\User',
        'enableAutoLogin' => true,
        'identityCookie' => [
            'name' => '_identity-backend',
            'path' => '/admin',
            'httpOnly' => true,
        ],
    ],
    'session' => [
        // this is the name of the session cookie used for login on the backend
        'name' => 'advanced-backend',
        'cookieParams' => [
            'path' => '/admin',
        ],
    ],
],

希望这有助于共享托管用户部署高级应用程序。

学分: https//github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/topic-shared-hosting.md