嘿所有,Kohana的新人,我有一个简单的问题。
我有一个网站,其中有三个子部分,由子域名组织(即admin.site.com,community.site.com,www.site.com),但每个子部分都将从同一个数据库中提取,应该共享相同的模型。有没有办法组织它,以便我可以为每个子域使用相同的Kohana模型/系统/模块文件,但保持应用程序文件夹分开?类似的东西:
/home/user/admin/
application/
bootstrap.php
cache/
...
index.php
/home/user/community/
application/
bootstrap.php
cache/
...
index.php
/home/user/public_html/
application/
bootstrap.php
cache/
...
index.php
/home/user/kohana/
modules/
...
models/
...
system/
这样我可以在三个站点中保持Kohana最新只有一个更新,而且我可以使用相同的模块和模型类。有什么方法可以让这件事发生吗?或者我应该使用其他方法吗?
谢谢!
答案 0 :(得分:6)
我想出了如何做到这一点,所以我想我会回答它以防其他人需要知道。
我将system
和modules
个文件夹移出了webroot(到/home/user/kohana/
)并创建了一个名为sites
的文件夹。然后,我在/home/user/kohana/sites/
为我的三个子域(admin
,community
和www
中的每个子域创建了三个单独的文件夹。我将application
文件夹的内容复制到每个文件夹中,然后将index.php
和.htaccess
文件复制到每个子域的webroots。
在每个index.php
文件的顶部,我添加了:
$install_dir = '../kohana/';
并编辑以下目录变量以包含新路径:
...
$application = $install_dir.'sites/admin';
...
$modules = $install_dir.'modules';
...
$system = $install_dir.'system';
它有效!因为没有意识到移动目录是多么容易,我觉得有点愚蠢。希望我的解释是连贯的,并在将来帮助其他人。