关于heroku的memcached php会话

时间:2015-10-13 16:53:21

标签: php session heroku

我注意到我在heroku上设置的应用程序仅在刷新浏览器时显示随机请求的会话变量。我把它归结为应用程序在5个dynos上运行。

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

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

2 个答案:

答案 0 :(得分:0)

根据您正在运行的平台,您必须确保该作曲家更新。即使你安装了memcached,它也必须与你的PHP版本相匹配。然后,安装完成后,运行composer update

例如:

如果你有PHP5.6.15,请使用brew install php56/memcachedsudo apt-get install php56/memcached获取memcached。

然后运行composer update

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

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

要采取的步骤的要点是:

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

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

希望这有帮助。

答案 1 :(得分:0)

我有一个类似的问题,我得到的相同" ext-memcached *缺失"运行ext-memcached时无法看到composer show --platform错误。

我注意到当我最初安装memcached时,自制软件给了我各种选择。所以在Mac OSX El Capitan上,我最终安装了与我的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

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