【分享】让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表明访问正常。
如有疑问,欢迎联系我。请勿转载,谢谢 向这样的试验教程把程序大包上,虽然简单,但是方便大家直接下载!声明不是偷懒啊! 向这样的试验教程把程序大包上,虽然简单,但是方便大家直接下载!声明不是偷懒啊! 向这样的试验教程把程序大包上,虽然简单,但是方便大家直接下载!声明不是偷懒啊! 怎么感觉 只是多加了一层目录,就是每个目录有单独的 app
给多站点 关系不大吧。 回复 5# 上善若水
这样的话, 只需要一个system目录,能在外面同时放多个app V 1.7.3下面好像没有这个inc.php文件的呀 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
认真看上面的步骤 里面的APPFOLDER是什么意思呢??? 哪儿可以看到他的方法呢? 本帖最后由 ttway 于 2011-7-15 11:48 编辑
把index.php放到system 必须要重命名么??? 现在2.0版本的里面的东西好像不一样了???
页:
[1]
2