yii2 在共享主机环境中部署

示例

将高级项目模板部署到共享托管要比基本的模板难一些,因为它有两个webroot,共享托管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将是我们的前端目录,因此将frontend / web的内容移入其中。将backend / web的内容移动到www / admin。在每种情况下,您都需要调整index.phpindex-test.php中的路径。

调整会话和Cookie

最初,后端和前端旨在运行在不同的域中。当我们将它们全部移到同一域时,前端和后端将共享相同的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' => [
        // 这是用于后端登录的会话cookie的名称
        'name' => 'advanced-backend',
        'cookieParams' => [
            'path' => '/admin',
        ],
    ],
],

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

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