【问题标题】:Share a Kohana install between sites在站点之间共享 Kohana 安装
【发布时间】:2010-10-27 18:43:20
【问题描述】:

大家好,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 在三个站点上保持最新状态,而且我可以使用相同的模块和模型类。有什么办法可以做到这一点?还是我应该使用其他方法?

谢谢!

【问题讨论】:

标签: php kohana kohana-3 hmvc


【解决方案1】:

我想出了如何做到这一点,所以我想我会回答它以防其他人需要知道。

我将我的systemmodules 文件夹从webroot 中移出(到/home/user/kohana/)并在那里创建了一个名为sites 的文件夹。然后我在/home/user/kohana/sites/ 中为我的三个子域(admincommunitywww)中的每一个创建了三个单独的文件夹。我将application 文件夹的内容复制到每个文件夹,然后将index.php.htaccess 文件复制到每个子域的webroot。

在每个index.php 文件的顶部,我添加了:

$install_dir = '../kohana/';

并编辑以下目录变量以包含新路径:

...
$application = $install_dir.'sites/admin';
...
$modules = $install_dir.'modules';
...
$system = $install_dir.'system';

它奏效了!我觉得有点愚蠢,因为我没有意识到移动目录是多么容易。希望我的解释是连贯的,并在未来对其他人有所帮助。

【讨论】:

  • 您也可以将应用程序文件夹移到 Web 根目录之外,并且只在 Web 根目录中拥有公共静态资产,例如 Javascript、图像和样式表。您需要保留在 web 根目录中的只是 index.php。
  • 是的,index.php,当然还有 .htaccess 文件
猜你喜欢
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
  • 2010-12-20
  • 1970-01-01
  • 2021-09-18
相关资源
最近更新 更多