Apache / PHP似乎正在caching符号链接60秒 – 如何阻止它,或发现什么是真正的caching符号链接,并停止?

我们有一个PHP web应用程序,我们正在部署到使用Capistrano运行CentOS 5.5的LAMP服务器。 Capistrano使用符号链接pipe理切换到最新版本(和回滚),所以我们的文档根目录必须指向符号链接。

不幸的是,我们已经看到,对PHP应用程序的web请求仍然指向符号链接更新之后的60秒的文档根目录的符号链接。

PHPconfiguration中的唯一设置我可以find可能与此有关的是realpath_cache_ttl设置,但是这被设置为120秒。 我在apache的configuration中找不到任何东西。

我们没有使用APC。

我甚至看在正确的地方?

符号链接由Apachecaching,我假设你在httpd.conf中使用FollowSymLinks。 您可以尝试使用调用lstat的SymLinksIfOwnerMatch不cachinghttp://httpd.apache.org/docs/2.0/misc/perf-tuning.html#symlinks

Apache不会caching符号链接,但它会caching文件的位置,如果你使用APC,它会真的做一些caching。 我也看到了这一点,但用于部署的织物。 解决方法是在更改符号链接后执行apache restart / reload / graceful。

先尝试优雅,然后重新加载,然后重新启动,如果一切都失败了

Apache不会caching符号链接(它会是非常愚蠢的尝试;文件系统caching知道更多关于正在发生的事情,而且会非常接近)。 我会把整个社会搞得更清楚什么时候做什么。