当我部署到Heroku时,如何保留会话


How can I preserve sessions when I deploy to Heroku?

我正在使用PHP制作一个Heroku FB应用程序,每当我进行git推送时,我的用户会话都会被破坏。为什么会发生这种情况?更重要的是,我该如何防止这种情况发生?

另一个未提及的选项是使用Memcached来存储会话。您可以使用heroku插件Memcachier(https://addons.heroku.com/memcachier)。

要将php配置为使用memcached会话处理程序,请参阅扩展的手册http://php.net/manual/en/memcached.sessions.php.基本上,您可以设置php.ini指令:

session.save_handler = memcached
session.save_path = "localhost:11211"

将save_path替换为安装加载项时提供的Memcachier地址和端口。

您需要将会话存储在数据库中。您可以将它们存储在Postgres或类似Redis的文件中。这些将在部署期间持久化。

我使用AppFog,Memcachier现在支持SASL,但我不知道如何继续

session.save_handler=内存缓存
session.save_path="localhost:111211"

现在缺少的是身份验证,我不知道该怎么说我找到了这个,但我不知道它是否有效以及如何使用
http://php.net/manual/en/memcached.setsaslauthdata.php
pd:我在appfog中无法访问php.ini,所以我需要通过htaccess来完成,你能给我一个如何在htaccess中完成这项工作的例子吗
https://docs.appfog.com/languages/php#php_ini
感谢

另一个解决方案是将会话数据存储在数据库中。好的一面是,如果免费的内存缓存计划不适合你,你不需要为Heroku上的另一个插件付费。

这里有一个很棒的教程,展示了如何实现这一点(我无论如何都不隶属于本教程):https://culttt.com/2013/02/04/how-to-save-php-sessions-to-a-database