baiyuxiong 发表于 2010-12-5 13:49:20

【分享】让CI支持多站点

本帖最后由 baiyuxiong 于 2010-12-5 13:51 编辑

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


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

第四步:在app_a和app_b目录下新建index.php文件,并加入以下内容:

<?php
//这句定义了APP的目录地址,
define('APPFOLDER', dirname(__file__));
//引用CI,如果app和system不在同一级目录下,对引用路径要做相应的修改
include('../system/inc.php');
?>


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

修改43行为:
$application_folder = APPFOLDER;

将63行到74行注释掉.

/*
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
class test_model extends Model {


function __construct()

{

parent::Model();

}


function getHello()

{

return "Hello,CI";

}
}
再在控制器下加入面的代码


function test()


{

    $this->load->model('test_model');

    $data['hello'] = $this->test_model->getHello();

    $this->load->view('hello',$data);


}

增加视图hello.php
<?php

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

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

如有疑问,欢迎联系我。请勿转载,谢谢

008shanke 发表于 2010-12-10 11:38:25

向这样的试验教程把程序大包上,虽然简单,但是方便大家直接下载!声明不是偷懒啊!

008shanke 发表于 2010-12-10 11:38:56

向这样的试验教程把程序大包上,虽然简单,但是方便大家直接下载!声明不是偷懒啊!

008shanke 发表于 2010-12-10 11:39:08

向这样的试验教程把程序大包上,虽然简单,但是方便大家直接下载!声明不是偷懒啊!

上善若水 发表于 2010-12-12 10:46:34

怎么感觉 只是多加了一层目录,就是每个目录有单独的 app

给多站点 关系不大吧。

baiyuxiong 发表于 2010-12-14 00:10:47

回复 5# 上善若水


   这样的话, 只需要一个system目录,能在外面同时放多个app

liangpz521 发表于 2010-12-30 15:23:54

V 1.7.3下面好像没有这个inc.php文件的呀

baiyuxiong 发表于 2010-12-30 16:44:06

V 1.7.3下面好像没有这个inc.php文件的呀
liangpz521 发表于 2010-12-30 15:23 http://codeigniter.org.cn/forums/images/common/back.gif

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

认真看上面的步骤

ttway 发表于 2011-7-15 11:41:43

里面的APPFOLDER是什么意思呢??? 哪儿可以看到他的方法呢?

ttway 发表于 2011-7-15 11:45:28

本帖最后由 ttway 于 2011-7-15 11:48 编辑

把index.php放到system 必须要重命名么??? 现在2.0版本的里面的东西好像不一样了???
页: [1] 2
查看完整版本: 【分享】让CI支持多站点