将高级项目模板部署到共享托管要比基本的模板难一些,因为它有两个webroot,共享托管web服务器不支持。我们将需要调整目录结构,以便前端URL为http://site.local,后端URL为http://site.local/admin。
首先,我们需要一个webroot目录。创建一个新目录并将其命名为与您的托管Webroot名称匹配的名称,例如www或public_html等。然后创建以下结构,其中www是您刚创建的托管webroot目录:
www admin backend common console environments frontend ...
www将是我们的前端目录,因此将frontend / web的内容移入其中。将backend / web的内容移动到www / admin。在每种情况下,您都需要调整index.php和index-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' => [ // 这是用于后端登录的会话cookie的名称 'name' => 'advanced-backend', 'cookieParams' => [ 'path' => '/admin', ], ], ],
希望这有助于共享的托管用户部署高级应用程序。
积分:https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/topic-shared-hosting.md