在共享託管環境中部署

將高階專案模板部署到共享託管比基本託管更復雜,因為它有兩個 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