我有一个基于LAMP的网站/应用程序,我准备开始为客户提供服务。 使用我目前的系统,每个客户端都需要一个完整的网站实例(从web-root开始的完整文件夹结构)。 我想分离出核心应用程序,同时只为每个客户端创build必要的定制文件。
以下是我正在寻找的方法:“如果文件存在于客户机文件夹中,请使用该文件,否则请使用核心应用程序文件夹中的文件”。 一种有条件或优先级的符号链接,但为整个文件夹树工作。 这样我就不必在整个框架中更改代码,并且分离可以对应用程序透明地进行。
这个function是否存在于Linux中,还是我需要在Web服务器上实现的东西?
谢谢!
你可以使用像aufs或者UnionFS这样的union文件系统来将目录重叠在一起。 访问文件涉及按特定顺序检查叠加层,直到find文件。
常见的方法是为您的应用程序使用文件夹结构,如普通代码的/app和本地configuration的/config config。 然后,将符号链接/app映射到通用的源代码目录,并为/config一个实际的目录。 这很容易重现和有效。 除此之外,它允许一个非常简单的更新选项,因为你只需要replace一个公共目录。
我会认为这是一个非常基本的质量标准,并build议修复您的应用程序,以允许这一点。
除此之外,您最初要求的function不存在。
你所描述的通常是通过版本来完成的。 最近使用的版本控制系统是Subversion和Git。
如果您设置了一个基础存储库,则可以为每个客户安装分支它,并根据需要提供修补程序和差异来修改源。 既然你将有不同的主应用程序的分支,你将不得不testing应用在每个分支的基础应用程序上的补丁,但实际上没有其他办法。
既然你使用的是Linux,并且所有主要的发行版都提供了SCM,你将不会有太多麻烦设置它们中的任何一个。