使用 Capifony 部署 Symfony2 应用程序 - APC 加载程序仍然使用以前的版本

2023-12-24

我最近将我的 Symfony2 应用程序升级到 2.1 并将其迁移到新服务器,所以我想我应该配置Capifony http://capifony.org/使部署更简单。一切都很顺利,除了它现在不使用 APCLoader 之外,所以我不得不暂时注释掉它,直到它被排序。

这是来自的相关代码app.php:

$loader = require_once __DIR__.'/../app/bootstrap.php.cache';

// Use APC for autoloading to improve performance.
// Change 'sf2' to a unique prefix in order to prevent cache key conflicts
// with other applications also using APC.

$loader = new ApcClassLoader('my_prefix', $loader);
$loader->register(true);

问题是'my_prefix'每个版本并不是唯一的,因此它最终会尝试查找属于以前版本的缓存文件,这些文件可能仍然存在,也可能不存在。这显然是一个非常大的问题!

对此最好的解决方案是什么?我是否应该以某种方式编写一个 capifony 将在部署之前运行的任务,将前缀更改为唯一的内容,例如#{latest_release}多变的?或者我应该在每次部署后以某种方式重置 APC 缓存的全部内容?

我不太确定执行这些操作中的任何一个的最佳方法,因此,如果您推荐其中一个,能否请您指出正确的方向以便能够实现它?或者有我没有想到的替代解决方案吗?


你可以使用Apc捆绑包 https://github.com/ornicar/ApcBundle,它提供了一个命令,将在web/目录,通过 HTTP 执行它,然后将其删除。然后,您可以使用您的run "/path/to/app/console apc:clear"部署脚本中的命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Capifony 部署 Symfony2 应用程序 - APC 加载程序仍然使用以前的版本 的相关文章

随机推荐