2015-10-13 110 views
1

我注意到我在heroku上设置的应用程序只在刷新浏览器时显示随机请求中的会话变量。我把这个放在应用程序运行在5个dynos上的事实上。heroku上的memcached php会话

我按照以下教程使用memcachedcloud通过memcached解决了这个问题。

https://devcenter.heroku.com/articles/php-sessions#storing-sessions-in-memcached

问题仍然存在,虽然。我正在使用PHP slim框架,我还需要其他配置吗?我似乎无法找到纤细的文档中的任何内容。

编辑:

运行的时候,因为我不能产生所需的composer.lock文件。

composer update 

我得到的错误

The requested PHP extension ext-memcached * is missing from your system. 

但它在安装的事实。我可以看到输入的版本。

memcached -h 

但输入

composer show --platform 

回答

0

根据您正在运行的平台,当它不存在,你必须确保你的作曲家更新。即使你安装了memcached,它也必须符合你的PHP版本。然后,一旦安装,运行composer update

例如:

如果您PHP5.6.15,得到与,无论是memcached的,brew install php56/memcachedsudo apt-get install php56/memcached。然后运行composer update

如果在Mac上安装Composer时出现问题,则必须启用rootless安装。更多信息可以在这里找到:

https://donatstudios.com/OS-X-Mavericks-Memcached-PHP-Extension-Installation

的要采取的步骤的要点是:

  • 重新启动计算机,并按住Command + R进入恢复模式
  • 获取到终端从公用事业
  • 运行csrutil disable并重新启动

这应该在从Homebrew安装memcached之前完成。

希望这会有所帮助。

0

我有一个类似的问题,我得到相同的“ext-memcached *缺少”错误,并且在运行composer show --platform时看不到ext-memcached

我注意到当我最初安装memcached时,自制软件向我展示了各种替代方案。因此,在Mac OSX埃尔卡皮坦,我结束了在安装匹配我的PHP版本之一:

brew install homebrew/php/php55-memcached 

然后,我不得不将其添加为php.ini:

extension=/usr/local/Cellar/php55-memcached/2.2.0/memcached.so 

你可以得到正确的版本路径有:

brew info php55-memcached 

然后我重新启动Apache的:

sudo apachectl restart 

它终于出现在作曲家列表中,我能够无错地更新作曲家。