我正在考虑为我运行的一些PHP应用程序推出一个非常简化的版本pipe理版本。
本质上计划是将每个发行版存储在/home/release/1.x等(从SVN中的标签导出),然后做一个符号链接到/ live_folder并更改apacheconfiguration文件的根目录。
我没有设置所有这些问题(我其实已经得到了它的工作),但是我是一个开发人员只是基本的知识的服务器pipe理端的东西。
在使用这种发布pipe理方法时,有什么需要从安全或性能的angular度来注意的?
谢谢
如果您真的担心符号链接的性能问题(最小),那么您总是可以使用绑定挂载 。 你也不会有任何的安全影响。 绑定挂载基本上是一种纯粹存在于内核级别的符号链接。
但是,除非您有证据certificate这是一个真正的问题,否则您可能不应该担心性能方面的问题。
而且,在某些情况下,实际启用Apache中的符号链接实际上会提高性能,因为某些文件系统检查已被删除。 除非您有理由禁用它,否则您可能需要启用FollowSymLinks。
请参阅Apache文档中有关符号链接的性能调整部分。 http://httpd.apache.org/docs/2.2/misc/perf-tuning.html#symlinks
FollowSymLinks和SymLinksIfOwnerMatch
无论您的URL空间中哪里没有选项FollowSymLinks,或者您有一个选项SymLinksIfOwnerMatch Apache将不得不发出额外的系统调用来检查符号链接。 每个文件名组件一个额外的调用
FollowSymLinks的安全含义往往都集中在允许不可信用户创build文件的能力上。 如果你在共享服务器上,如果你允许不信任的用户写入文件系统,或者如果你在任何托pipe的Web应用程序中有任何错误,那么恶意用户可以创build一个符号链接到一个通常不会通过Web服务器可用。 他们可以显示它,或者如果你的权限是非常糟糕的,你有一个错误的web应用程序,然后符号链接可以允许修改。 在一个很好locking的系统上,这应该不是什么大问题。 如果您有允许存储用户提供的内容的任何目录,则应该在那里禁用符号链接。
正确目录的单个符号链接不会损害性能,因为它将被VFScaching。
至于安全方面的考虑,你可能需要在你的服务器中启用符号链接,这可能会成为一个问题。 首先要做的是禁用除了应用程序目录链接之外的符号链接。 不过,我认为最好有一个适当的,完整的安全解决scheme,以确保所有的应用程序只有他们所需要的权限 – 例如,你可以使用FastCGI在自己的用户帐户下运行你的PHP应用程序。
符号链接会损害性能,因为磁盘必须寻找两个地方(或者更多,如果有多个链接)来读取文件。 除此之外,这不应该是一个问题。 我不知道有任何安全隐患