Yii 同一域名上部署高级模板
在共享主机上使用高级项目模板
将高级项目模板部署到共享托管是较常见的棘手问题,因为它有两个 WEB 目录,共享托管 Web 服务器不支持。我们需要调整目录结构,因此前端 URL 将为 http://site.local
,后端 URL 将为 http://site.local/admin
。
移动到代码到单个 WEB 目录中
首先我们需要一个 WEB 目录。 创建一个新目录并将其命名为与您的托管 webroot
名称匹配,例如www
或public_html
等。 然后创建以下结构,其中 www
是您刚刚创建的托管 WEB 目录
www
admin
backend
common
console
environments
frontend
...
www
将是我们的前端目录,所以将frontend/web
的内容移动到其中。 将 backend/web
的内容移动到www/admin
。 然后调整 前后端的 index.php
和index-test.php
中的路径。
调整 sessions 与 cookies
最初的后端和前端都是在不同的域运行。 当我们将它全部移动到同一个域时,前端和后端将共享相同的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',
],
],
],
替代设置
如果设置上面提供的模板的方式对您无效,请尝试 Oleg Belostotskiy 的 配置和文档地址: https://github.com/mickgeek/yii2-advanced-one-domain-config
原文出处:
http://www.yiiframework.com/doc-2.0/guide-tutorial-shared-hosting.html
https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/topic-shared-hosting.md
本文出自简爱博客,转载时请注明出处及相应链接。