我正在构建一个部署脚本,但Apache处理我的符号链接的方式似乎有些不对。
我有一个包含以下内容的文件夹:
foo_svn
:文件夹(我当前的网站)foo_tmp
:文件夹(副本)web
:符号链接(指向foo_svn)我的DocumentRoot设置在web
。
在svnupdating foo_svn
之前,我备份foo_tmp
中的内容并替换符号链接,使其指向foo_tmp
。
然后我更新foo_svn
:让我们说index.php
已被修改。该网站应该是相同的,因为它现在指向foo_tmp
并且该文件夹没有更改。然而,显示的页面是新页面,就像Apache直接查找foo_svn/index.php
而不是web/index.php
一样。
在vhost配置文件中,DocumentRoot仍然是.../web
,与<Directory>
中的相同。符号链接web
仍然指向foo_tmp
,而foo_tmp/index.php
仍然是旧版本。
编辑:深入挖掘,看起来某种缓存有些奇怪。重新加载我的页面两次,有时它首先指向foo_tmp,然后指向foo_svn,然后指向foo_tmp(然后它稳定)。有时页面只需要一些时间来接受新版本(甚至硬盘重新加载)。有时它会在foo_svn
过早地显示新页面,因为符号链接仍然指向foo_tmp
中的先前版本。我对此疯狂,就像Apache有一种“符号链接缓存”,我不知道。