上传的PHP脚本没有刷新

时间:2012-09-19 05:42:19

标签: php linux caching eaccelerator

我确信这是显而易见的,但我很困惑。我有一个LAMP服务器(Centos 5.3,PHP 5.3.8),它一直没有问题。我修改并重新上传(通过SFTP)特定的PHP脚本到服务器,但是当我重新加载页面时,旧脚本仍然运行。我可以看到新文件存在,时间戳和大小与新版本匹配,但它总是输出,好像文件没有变化。我甚至尝试用简单的

替换它
<?php die('test'); ?> 

测试文件,结果相同。它不是浏览器缓存问题(重新加载,不同的浏览器等都显示旧脚本,我可以传入$_GET个变量,它作为旧脚本运行)。如果我重命名该文件,它会在新名称下正确呈现(使用新的更改),系统会在原始位置正确抛出404错误。当我将其返回到原始文件名时,它将恢复为旧版本的渲染。我认为这是一个电子加速器问题(运行0.9.6.1)所以我清除了缓存(清空/var/cache/php-eaccelerator)并重新启动服务器但没有骰子。

还有什么可能导致服务器缓存旧脚本吗?

编辑 - 解决方案!

好的,不出所料,这最终成了一个特定于应用程序的问题,我应该早点弄清楚。应用程序设置了一个导致问题的“自定义覆盖”系统...基本上使更新变得容易,但也允许客户端自定义,系统设置了一个特殊的/custom/文件夹克隆基础应用程序的文件夹结构。在服务之前,Apache显然会在自定义结构中检查位置相同的文件,如果存在,则提供服务。基本上,有一个自定义脚本上传到相关目录,该脚本覆盖了我上传到主应用程序目录中的任何文件。显然,有一个重写脚本加载到自定义目录中。

@Dagon,感谢有关禁用eAccelerator的建议。我确信这是我问题的根源,我没有费心去检查.htaccess。一旦我排除了这一点,我开始更清楚地思考。

1 个答案:

答案 0 :(得分:2)

这最终成为一个本地化的问题。正如我在问题的编辑中提到的那样,应用程序设置了一个“自定义覆盖”系统,导致问题...基本上使更新变得容易,但也允许客户端自定义,系统设置为一个特殊/自定义/文件夹,用于克隆基本应用程序的文件夹结构。在服务之前,Apache显然会在自定义结构中检查位置相同的文件,如果存在,则提供服务。基本上,有一个自定义脚本上传到相关目录,该脚本覆盖了我上传到主应用程序目录中的任何文件。显然,有一个重写脚本加载到自定义目录中。