仅当文件不存在时才使用符号链接

仅当文件不存在时才使用符号链接

我有一个基于 LAMP 的网站/应用程序,我正准备开始为客户提供服务。使用我当前的系统,每个客户都需要一个完整的网站实例(从 web-root 开始的完整文件夹结构)。我想分离出核心应用程序,同时只为每个客户创建必要的自定义文件。

我要找的是:一种表示“如果文件存在于客户端文件夹中,则使用该文件。否则,使用核心应用程序文件夹中的文件”的方法。一种有条件或优先的符号链接,但适用于整个文件夹树。这样我就不必更改整个框架中的代码,并且分离可以对应用程序透明地进行。

Linux 中是否存在此功能,或者我是否需要在 Web 服务器中自己实现它?

谢谢!

答案1

您可以使用联合文件系统,例如奥夫斯或者联合金融服务将目录相互叠加。访问文件涉及按特定顺序检查叠加层,直到找到文件为止。

答案2

实现此目的的常用方法是使用支持此功能的应用程序文件夹结构,例如/app用于通用代码和/config本地配置。然后,您符号链接/app到通用源代码目录,并拥有实际目录/config。这很容易复制并且有效。除其他外,它允许非常容易的更新选项,因为您只需替换一个通用目录即可。

我认为这是一个非常基本的质量标准,并建议修复您的应用程序以允许这一点。

除此之外,您最初要求的功能不存在。

答案3

您所描述的通常是通过版本来实现的。最近最常用的版本控制系统是 Subversion 和 Git。

如果你设置了一个基础存储库,你可以分支为每个客户安装提供补丁和差异,以修改源代码。由于您将拥有主应用程序的不同分支,因此您必须测试每个分支上应用于基础应用程序的补丁,但实际上没有其他方法可以解决这个问题。

由于您使用的是 Linux,并且所有主要发行版都提供了 SCM,因此您在设置任何一个 SCM 时都不会遇到太多麻烦。

相关内容