我在我的服务器(单独的应用程序目录和单个系统目录)上运行多个运行CodeIgniter安装的网站。这一直非常有效,我认为目前没有任何理由改变它。
我发现自己一直在编写库类来扩展/覆盖CI,如果我发现错误或提高效率,我必须多次回到几个网站进行同样的调整,以免打破一个错误的网站。因此,我需要更改每个文件,然后测试该网站是否存在错误。
我一直在思考在中心位置使用单个库目录并将所有网站符号链接到该中心目录的解决方案。然后,当我更改文件时,它会立即传播到所有下游网站。它仍然需要我测试每个错误,但我不必多次进行更改。任何特定于单个网站的内容都将是非共享文件(仍然在其他地方没有使用的链接目录中)或者可以放在本地帮助程序中。
另外,我通过CI版本保留单独的“系统”目录,因此我可以在必要时独立地迁移我的网站 - 这个中央库文件将附加到特定版本以减少可能的中断。
有没有人看到采用这种方法的潜在问题或陷阱?有没有人在另一个方向完成这个我应该考虑的事情?
提前致谢!
答案 0 :(得分: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/
How to Handle Multiple Projects in CodeIgniter?
http://codeigniter.com/forums/viewthread/56436/
答案 1 :(得分:2)
我有一个系统目录和我的CI应用程序的单独应用程序目录。为了在我的应用程序之间共享库和一些视图模板,我创建了一个“公共”目录,与CI系统位于同一文件夹中,并且具有与常规应用程序文件夹和使用符号链接相同的结构,但是您可以修改加载程序class,以便它也可以在Common文件夹中查找。我的设置看起来像这样:
/var/CodeIgniter/
/var/Common/
/var/Common/config/
/var/Common/controllers/
...
/var/Common/libraries/
...
/var/www/someapp/
/var/www/someotherapp/
...
答案 2 :(得分:1)
我写了一个MY_Loader来做到这一点。
答案 3 :(得分:1)
我不确定你如何处理发布你的网站(假设你真的做了这些),但我会考虑版本控制。例如,在SVN中,您可以在另一个svn目录(或文件)中创建外部,然后只更新抓取外部文件的当前svn目录。这种方法从其他方法中获益,即当您修改公共库时,其他方法不会立即受到影响。在您有时间使用公共库测试所有站点之前,这可以防止意外中断。然后,只要准备好测试更改,就可以更新每个站点的文件夹。这是“更多工作”,但它可以防止代码重复和意外中断。