我在我的服务器上遇到了一个奇怪的caching问题,我正在处理的项目此时没有启用任何caching,但是它自己安装了APC的服务器(默认情况下设置为caching所有内容,现在禁用)。
问题是,我的旧代码仍在运行,我不知道如何获得修改的代码来触发。
我试图完全删除文件,这使得我的项目错误与“丢失的文件”,因为它应该,但一旦我上传我的文件(新版本),它开始再次提供旧版本的文件。
我上传了一个带有apc_clear_cache();
的唯一标签的文件apc_clear_cache();
和apc_clear_cache( 'opcode' );
但这似乎没有帮助。
我也已经注意到APC加载PHP,但它仍旧服务于旧文件,所以我想知道是否有潜在的东西导致这种积极的caching。
Apache2,PHP,APC等都是使用Debian Wheezy上的Aptitude加载的
PHP 5.4.4-14 + deb7u3(在mod_php下运行)Apache 2.2.22
在每个configuration更改和禁用APC之间,我做了一个完整的Apache重启。
我已经检查了apache2模块列表,没有caching模块加载,也没有服务,如清漆等运行。
更新
做了一些额外的testing,在输出<?php
标签之前添加了一些html输出,所以php标签之外的内容似乎没有被caching。
include_once()
包含未更新的文件,禁用APC似乎对正在被错误地服务的文件没有任何影响。
问题是尝试在表单提交后使用HTML2PDF生成.pdf文件
PHP Fatal error: Uncaught ERROR File : /lib/html2pdf/html2pdf.class.php Line : 1319, Impossible to load the image 'logo.png' thrown in /lib/html2pdf/html2pdf.class.php on line 1319
新版本的文件使用logo.jpg
在APC中,最常见的情况是apc.stat
被closures,或者ctime而不是mtime,反之亦然,这取决于你的SCCS。 您可能希望validationAPC是否真正通过像phpinfo()
这样的function被禁用。