我可以在Bluemix PHP环境中使用APC(Alternative PHP Cache)吗?
我将{ "PHP_EXTENSIONS": ["apc"] }
添加到我的options.json
文件中,但当我尝试部署时,有一条消息说apc没有包含在构建包中。我需要PHP 5.5
,所以我使用php-buildpack#v4.3.2
。你能建议一个包含APC的构建包吗?
我需要一个内存缓存来替换Laravel的文件缓存。如果我不能使用APC,有人能提出其他建议吗?
Bluemix默认的PHP构建包是v4.1.5,它列在管理目录中。此版本同时支持PHP 5.5和APC。因此,您可以将本地环境与PHP buildpack 4.1.5兼容,以便在此版本的buildpack上开发应用程序。
PHP 5.5和更高版本与OpCache捆绑在一起,后者取代了APC。
如果您有使用APC函数的代码,您可以通过使用APCu扩展在PHP 5.5中继续使用它们。APCu是APC,但去掉了操作缓存部分(这样你就可以使用内置的opcache),只留下内存缓存和PHP函数来访问它。
参考文献:
- http://jessesnet.com/development-notes/2014/php-55-opcache-apcu/
- http://php.net/manual/en/migration55.new-features.php
- http://php.net/manual/en/book.apcu.php
- https://pecl.php.net/package/APCu
结束语:我使用了php buildpack#v4.1.5,其中包括apc,尽管它是基于php 5.4的,所以我不得不将我的guzzle降低到5.3.0,这意味着我需要修改我的guzz代码,因为我使用的是guzzle 6 api。然后我将我的Laravel缓存调用改为使用apc。令人惊讶的是,毕竟该应用程序仍然可以工作,尽管很难判断它是否真的更快