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
通常情况下,backend 和 frontend 运行在不同的域下,当我们将其都移到同一个域时, frontend 和 backend 将会共享相同的 cookie,这样会造成冲突。为了修复这个问题,如下调整 backend 的应用程序配置文件
但是有时候我们的线上环境不支持绑定二级域名,这样我们就得通过同一个域名访问我们的前后台了。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 访问后台
相关文章推荐
- yii2部署:共享托管环境
- ThinkPHP框架中解决无法加载控制器的问题—原因之一
- php获取客户端IP
- WDCP的pure-ftpd配置
- PHP利用CURL_MULTI实现多线程爆破
- 理解ThinkPHP当中的D方法
- php连接mysql数据库的几种方法
- 文件服务器vsftp的配置
- Elasticsearch-PHP 搜索操作
- php中isset 、empty 区别
- PHP文件访问技术
- 终于搞定阿里云ftp的问题
- 解决chrome默认打开ftp的问题
- PHP常用函数
- 搭建ftp服务器
- Laravel5.0学习系类2之模板引擎blade
- php 框架 laravel安装
- 正则表达式preg_replace学习
- WritePrivateProfileString GetPrivateProfileString 读取写 配置文件
- php7 性能测试