感谢您花时间阅读本文。
这就是我想要的:
我将有一个主服务器,它将保存客户端的包信息,他们订购的主题以及他们从我的市场附加的a_ds。
我不希望他们的网站成为子域,而是他们自己的域,它将由我在共享环境中托管。
现在,我想以这样的方式设置我的CI项目,这些将会发生。每个客户都将获得自己的项目空间和数据库,但我希望他们的特定项目从我的数据库/ CI功能中获取他们的设置。
我知道我的写作非常糟糕,但即便谷歌也因此失败了。你们是我最后的希望。
提前致谢!!
答案 0 :(得分:2)
您是否打算从服务器中的一个CodeIgniter源运行这些多个站点,应用程序配置会根据访问的域而有所不同?
如果是这种情况,那么这里有一个可供您选择的选项:
在application/config
中组织不同的配置,如下所示:
application/
config/
domains/
foo.com/
database.php
config.php
bar.net/
database.php
config.php
baz.org/
database.php
config.php
这些application/config/domains/*/(database|config).php
文件中的每一个都包含仅针对特定域的配置(您必须以某种方式生成这些)。
示例:
//In database.php files
return array(
'username' => 'client1',
'password' => 'password!',
'database' => 'client1_db'
);
//In config.php files
return array(
'base_url' => 'http://baz.org'
);
然后根据请求中使用的域包含正确的文件:
在application/config/database.php
:
$client_vars = include __DIR__ . '/domains/' . $_SERVER['HTTP_HOST'] . '/database.php';
/* validate $client_vars to ensure that client is not overriding anything important. Throw an error to inform client. */
$db['default'] = array_replace($db['default'], $client_vars);
/* Rest of DB settings. */
在application/config/config.php
:
$client_vars = include __DIR__ . '/domains/' . $_SERVER['HTTP_HOST'] .'/database.php';
/* validate $client_vars to ensure that client is not overriding anything important. Throw an error to inform client */
$config = array_replace($config, $client_vars);
/* Rest of config settings */
这是一个可能的解决方案的粗略概念,尽管这根本不是很安全。只需两美分。