有没有办法防止特定文件被APC缓存为操作码?用例如下:
位于云上的应用程序,可动态调整自身大小(根据需要自动调整服务器)。 config.php脚本必须知道新IP可用或不可用。
由于这些更改经常发生,并且config.php文件非常基本,因此不必担心仅针对一个文件清除APC。
清除APC中的一个文件肯定是可能的,但由于您无法通过命令行访问APC,因此解决方案最终会变得不那么优雅。
答案 0 :(得分:2)
我有一个类似的用例。我多次问过同样的问题,但我找不到解决办法。但是,我的解决方案是创建一个快速脚本,负责清除每个服务器的APC缓存。每次重建应用程序时,我都需要点击每个服务器上的文件以使用apc_clear_cache
清除操作码缓存如果您只需要清除一个文件,那么apc_compile_file
希望这有帮助。
答案 1 :(得分:1)
我不知道如何做你所建议的方式,但你应该能够绕过它。
显而易见的解决方案是不将数据存储在php文件中。既然你已经有了APC,为什么不把配置数据保存在APC中(作为缓存数据,而不是操作码)。
所以无论修改config.php,现在都会这样做:
当config.php需要数据时,它通常会从缓存中读取。如果缓存已失效,它将读取/解析ini文件中的数据,更新缓存,并照常继续。
在一天结束时,您正在使用操作码缓存来缓存数据。您应该使用数据缓存。幸运的是,APC提供了两者。
答案 2 :(得分:1)
是。你应该看看apc.filter配置指令。 Another Question | PHP Docs