1

我运行多个网站,所有网站都运行在我的服务器上的单个 CodeIgniter 安装(单独的应用程序目录和单个系统目录)。这一直工作得非常好,我认为目前没有任何理由改变它。

我发现自己一直在编写库类来扩展/覆盖 CI,如果我发现错误或提高效率,我必须返回多个网站进行相同的调整,否则可能会破坏其中一个网站. 因此,它要求我更改每个文件,然后测试该站点的错误。

我一直在考虑在中央位置使用单个库目录并将我的所有网站符号链接到该中央目录的解决方案。然后,当我进行文件更改时,它会立即传播到所有下游网站。它仍然需要我测试每个错误,但我不必多次进行更改。任何特定于单个网站的文件要么是非共享文件(仍在链接目录中,只是没有在其他地方使用),要么可以放在本地帮助程序中。

此外,我按 CI 版本保留了单独的“系统”目录,因此我可以在必要时独立迁移我的网站——这个中央库文件将附加到特定版本以减少可能的中断。

有没有人看到采用这种方法的潜在问题或陷阱?有没有人在我应该考虑的另一个方向上实现了这一点?

提前致谢!

4

4 回答 4

3

我认为这实际上是有道理的:] 去吧。即使在官方 CodeIgniter 页面上,他们也提到这是可能的。

另外,我看不出应该有任何问题的一个原因。

编辑:他们在这里触及多个站点的问题:http: //codeigniter.com/user_guide/general/managing_apps.html

还:

http://codeigniter.com/wiki/Multiple_Applications/
http://www.exclusivetutorials.com/setting-multiple-websites-in-codeigniter-installation/
如何在 CodeIgniter 中处理多个项目?
http://codeigniter.com/forums/viewthread/56436/

于 2010-02-11T21:24:57.813 回答
2

我的 CI 应用程序有一个系统目录和单独的应用程序目录。为了在我的应用程序之间共享库和一些视图模板,我创建了一个“Common”目录,在与 CI 系统相同的文件夹中,与常规应用程序文件夹具有相同的结构并使用符号链接,但您可以修改 Loader类,以便它也可以在 Common 文件夹中查找。我的设置如下所示:

/var/CodeIgniter/
/var/Common/
/var/Common/config/
/var/Common/controllers/
...
/var/Common/libraries/
...
/var/www/someapp/
/var/www/someotherapp/
...
于 2010-02-12T08:15:25.600 回答
1

我写了一个 MY_Loader 来做到这一点。

http://ellislab.com/forums/viewthread/136321/

于 2010-02-12T09:49:54.940 回答
1

我不确定你如何处理发布你的网站(假设你实际上做了任何事情),但我会研究版本控制。例如,在 SVN 中,您可以创建外部到另一个 svn 目录(或文件),然后只需更新当前获取外部文件的 svn 目录。这种方法从其他方法中获得了一个好处,即当您修改公共库时,其他方法不会立即受到影响。这可以防止在您有时间使用公共库测试所有站点之前出现不必要的中断。然后,您可以在准备好测试更改时更新每个站点的文件夹。这是“更多工作”,但它可以防止代码重复和不必要的中断。

于 2010-02-19T15:40:58.090 回答