用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3644|回复: 7
收起左侧

[版本 2.x] 请教一个项目布署的问题

[复制链接]
发表于 2011-12-4 18:03:36 | 显示全部楼层 |阅读模式
各位高手,小弟有个问题想请教
我准备要做一个项目
刚刚接触CI,使用的是2.0.3
我的问题是这样的
1.不同的应用使用不同的二级域名,比如
汽车频道:car.xxx.com
摩托车频道:moto.xxx.com
会员中心:i.xxx.com
……

2.如果按手册中介绍的在\application下每个应用建一个文件夹比如\application\car、\application\moto、\application\i等等
然后每个文件夹里会分别有config、controllers、models、views等目录
那么按照这样布署的话有个问题是,如果有公用的models、views或config配置文件该如何布署呢,可以建一个\application\public?
那该如何调用呢?

3.是否可以为每一个应用建一个与system同级的文件夹,里面的目录结构与\application一样,只是名字不同,然后更改index.php入口文件调用不同应用呢。如果这种方式可行,那么和上面一样,如果有公用的文件该如何调用

4.如果采用2和3的方式布署,那么是否可以支持session跨域

5.是否还有其他的方式进行布署

谢谢各位帮忙解答
发表于 2011-12-5 12:59:45 | 显示全部楼层
帮顶下!我也想知道
发表于 2011-12-5 14:21:35 | 显示全部楼层
顶一下
发表于 2011-12-5 14:32:14 | 显示全部楼层
同问~   如何在一个框架下面包含两个不同的应用,该如何组织呢
发表于 2011-12-5 15:03:21 | 显示全部楼层
可以用 .htaccess 部署在一台服务器上。

session应该也不受影响吧。


如果是多台,如果session入库应该也可以的吧。

思路,未实践
发表于 2011-12-5 16:18:44 | 显示全部楼层
本帖最后由 qi_ruo 于 2011-12-5 16:58 编辑

1 hosts文件
PHP复制代码
127.0.0.1   example.com
127.0.0.1   car.example.com
127.0.0.1   moto.example.com
复制代码


2 虚拟主机
PHP复制代码
<VirtualHost *:80>
    DocumentRoot "D:/www/example"
    ServerName example.com
    ServerAlias *.example.com
</VirtualHost>
复制代码


3 如果使用手册上的方法,即把各个子站放在application目录,如application/main, application/car, application/moto...修改index.php

PHP复制代码
$application_folder = 'application';
复制代码

修改为
PHP复制代码
switch($_SERVER['HTTP_HOST'])
{
    case 'car.example.com':
        $application_folder = 'application/car';
    break;
    case 'moto.example.com':
        $application_folder = 'application/moto';
    break;
    default:
        $application_folder = 'application/main';
}
复制代码


4 你说的第二种方法即建立与system同级的文件夹作为各个应用的主目录,与上面的方法没有什么不同,只需要对应修改$application_folder变量即可。

5 公共的文件如library, helper, model等,如果新建一个目录存放,不太好调用,估计要修改核心文件才行,我觉得不如放在system目录下面,虽然不优雅,也不失为一种解决的办法,不知大家有什么好办法没有。

6 Session
如果要使各子站共享Session,需要做如下设置:
1) 各个应用下的config.php中的$config['encryption_key']需要相同
2) 各个应用下的config.php中的$config['cookie_domain'] = ".example.com";

7 Cookie
如果要使各子站共享Cookie,在设置Cookie变量的时候需要指定cookie_domain
PHP复制代码
$cookie = array(
    'name'      => 'somevar',
    'value'     => 'somevalue',
    'expire'    => '86500',
    'domain'    => '.example.com',
    'path'      => '/'
);
$this->input->set_cookie($cookie);
//echo $this->input->cookie('somevar');
复制代码

最后 如果LZ各个应用关联比较紧的话,建议还是写在一个应用里然后用htaccess重写路由,这样比较好!

发表于 2011-12-5 17:47:50 | 显示全部楼层
mark了 慢慢研究~
发表于 2011-12-6 11:47:10 | 显示全部楼层
学习了。。。。六楼好详细

本版积分规则