相关疑难解决方法(0)

clearstatcache + include_path + sessions

我有一个问题,我们为我们的Web应用程序运行升级.

升级脚本完成并通过浏览器访问Web应用程序后,我们在require_once()上找到文件未找到错误,因为我们移动了一些文件并且PHP仍然具有缓存的旧目录结构.

如果我们将realpath_cache_ttl的默认值设置为120秒,那么一切都会自行解决,但由于显而易见的原因,这是不可接受的.

所以我尝试使用clearstatcache但成效有限.我创建了一个单独的文件(clearstatcache.php),它只调用这个函数(这是一个单行文件),并通过curl在我们的安装脚本中调用它:

<?php
clearstatcache(true);
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,但是如果我通过浏览器调用此文件,它立即开始工作.

我正在运行PHP 5.3版

我开始查看浏览器和curl之间的请求标头差异,我唯一可以看到的可能是PHPSESSID cookie.

所以我的问题是,目前的PHPSESSID是否重要(我认为不应该这样).我的卷曲脚本有问题吗?我在用

curl -L http://localhost/clearstatcache.php
Run Code Online (Sandbox Code Playgroud)

编辑:经过进一步研究,我认为这可能与运行的多个apache进程有关.clearstatcache只会清除当前apache进程的缓存 - 当浏览器发出请求时,不同的apache进程会为请求提供服务,并且此进程仍然具有旧缓存.

php caching

6
推荐指数
1
解决办法
695
查看次数

标签 统计

caching ×1

php ×1