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

[其它 Other] 【分享】让CI支持多站点

[复制链接]
发表于 2010-12-5 13:49:20 | 显示全部楼层 |阅读模式
本帖最后由 baiyuxiong 于 2010-12-5 13:51 编辑

请勿转载,谢谢
实现不是很难,下面简单讲解。
第一步:下载CI并解压到apache的根目录 。
第二步:把system下的application目录移到与system目录平级,并复制一份,分别改名为app_a,app_b。
第三步:将system平级目录下的index.php放到system目录里,并改名为inc.php,现在整个目录树看起来是这样的:
1.png

可以看到,system下有inc.php文件,是由CI的入口文件index.php改名的,另外有两个app目录。

第四步:在app_a和app_b目录下新建index.php文件,并加入以下内容:
PHP复制代码
 
<?php
//这句定义了APP的目录地址,
define('APPFOLDER', dirname(__file__));
//引用CI,如果app和system不在同一级目录下,对引用路径要做相应的修改
include('../system/inc.php');
?>
 
复制代码


第五步,修改inc.php文件,打开system目录下的inc.php。
修改26行为:
PHP复制代码
$system_folder = dirname(__file__);
复制代码


修改43行为:
PHP复制代码
$application_folder = APPFOLDER;
复制代码


将63行到74行注释掉.
PHP复制代码
 
/*
if (strpos($system_folder, '/') === FALSE)
{
 
if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE)
 
{
 
$system_folder = realpath(dirname(__FILE__)).'/'.$system_folder;
 
}
}
else
{
 
// Swap directory separators to Unix style for consistency
 
$system_folder = str_replace("\\", "/", $system_folder);
}
*/

 
复制代码


修改好了,分别访问app_a,app_b测试一下看吧。
我的地址为:http://localhost/CodeIgniter_1.7.2/app_a/,看到welcome了吧,哈哈

下面简单写个代码测试一下。
在app_a的model下建一个模型test_model.php
PHP复制代码
<?php
class test_model extends Model {
 
 
function __construct()
 
{
 
parent::Model();
 
}
 
 
function getHello()
 
{
 
return "Hello,CI";
 
}
}
复制代码

再在控制器下加入面的代码
PHP复制代码
 
 
function test()
 
 
{
 
    $this->load->model('test_model');
 
    $data['hello'] = $this->test_model->getHello();
 
    $this->load->view('hello',$data);
 
 
}
 
复制代码

增加视图hello.php
PHP复制代码
<?php
 
echo $hello;
复制代码

访问地址http://localhost/CodeIgniter_1.7.2/app_a/index.php/welcome/test

看到Hello,CI表明访问正常。

如有疑问,欢迎联系我。请勿转载,谢谢
发表于 2010-12-10 11:38:25 | 显示全部楼层
向这样的试验教程把程序大包上,虽然简单,但是方便大家直接下载!声明不是偷懒啊!
发表于 2010-12-10 11:38:56 | 显示全部楼层
向这样的试验教程把程序大包上,虽然简单,但是方便大家直接下载!声明不是偷懒啊!
发表于 2010-12-10 11:39:08 | 显示全部楼层
向这样的试验教程把程序大包上,虽然简单,但是方便大家直接下载!声明不是偷懒啊!
发表于 2010-12-12 10:46:34 | 显示全部楼层
怎么感觉 只是多加了一层目录,就是每个目录有单独的 app

给多站点 关系不大吧。
 楼主| 发表于 2010-12-14 00:10:47 | 显示全部楼层
回复 5# 上善若水


   这样的话, 只需要一个system目录,能在外面同时放多个app
发表于 2010-12-30 15:23:54 | 显示全部楼层
V 1.7.3下面好像没有这个inc.php文件的呀
 楼主| 发表于 2010-12-30 16:44:06 | 显示全部楼层
V 1.7.3下面好像没有这个inc.php文件的呀
liangpz521 发表于 2010-12-30 15:23


将system平级目录下的index.php放到system目录里,并改名为inc.php

认真看上面的步骤
发表于 2011-7-15 11:41:43 | 显示全部楼层
里面的APPFOLDER是什么意思呢??? 哪儿可以看到他的方法呢?
发表于 2011-7-15 11:45:28 | 显示全部楼层
本帖最后由 ttway 于 2011-7-15 11:48 编辑

把index.php放到system 必须要重命名么??? 现在2.0版本的里面的东西好像不一样了???

本版积分规则