您的位置:首页 > 编程语言 > PHP开发

yii2部署:共享托管环境

2015-11-09 20:19 603 查看
yii2高级模板是前后台分离的,在本地测试的时候通常是绑定两个域名到前后台目录下,从而通过不同的域名访问前后,如:www.frontend.com访问前台,www.backend.com访问后台。

但是有时候我们的线上环境不支持绑定二级域名,这样我们就得通过同一个域名访问我们的前后台了。Yii2通过如下方式实现:

1、在服务器上的web根目录下创建一个admin目录,用于存放后台相关文件

2、将后台backend目录下web目录里的文件放入到admin目录下

3、将前台frontend目录下的web目录里的文件放入到服务器上的web根目录下

变更后目录结构如下:



对于每种情况下,你需要调整`index.php
 和 
index-test.php` 里面引用的目录结构。


分离 Session 和 Cookie

通常情况下,backend 和 frontend 运行在不同的域下,当我们将其都移到同一个域时, frontend 和 backend 将会共享相同的 cookie,这样会造成冲突。为了修复这个问题,如下调整 backend 的应用程序配置文件 
backend/config/main.php

'components' => [
'request' => [
'csrfParam' => '_backendCSRF',
'csrfCookie' => [
'httpOnly' => true,
'path' => '/admin',
],
],
'user' => [
'identityCookie' => [
'name' => '_backendIdentity',
'path' => '/admin',
'httpOnly' => true,
],
],
'session' => [
'name' => 'BACKENDSESSID',
'cookieParams' => [
'path' => '/admin',
],
],
],
到这里你就可以通过你的域名访问前后台了,如通过www.example.com访问前台,www.example.com/admin 访问后台
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: