繁体   English   中英

Google App Engine灵活PHP环境中服务器之间的会话

[英]Session between servers in Google App Engine Flexible PHP environment

我刚刚将我的应用程序移至Flexible PHP Google App Engine,并很快发现实例之间的共享会话效果不佳。 每次刷新页面都会显示不同的会话结果。

我已经通过在app.yaml中强制我的服务器仅使用一个实例来暂时解决了该问题。 但是,此实例现在已严重超载。

我试图找到如何解决服务器之间的会话以及所找到的最佳信息的方法是: https : //github.com/GoogleCloudPlatform/google-cloud-php-datastore/blob/master/DatastoreSessionHandler.php

尽管似乎必须重写所有保存在会话中的脚本,但我还是不得不重写很多自己的脚本和第三方脚本。

有没有人找到一种仅更改会话处理程序的方法,而不必更改脚本本身以仅存储$ _SESSION ['foo'] ='asdf'之类的会话?

非常感谢

有几种选择。

  1. 使用我尚未测试过的客户端cookie,但是Google搜索给了我: https : //github.com/dcro/php-secure-client-side-sessions

  2. 使用数据库会话。 我认为以下文章简单易行: http : //culttt.com/2013/02/04/how-to-save-php-sessions-to-a-database/

  3. 使用数据存储。 有关用法,请参见php文件中的注释: https : //github.com/GoogleCloudPlatform/google-cloud-php/blob/master/src/Datastore/DatastoreSessionHandler.php

我玩游戏有点迟了,但我一直在寻找相同的东西。 非常感谢Matsuo先生(公认的答案)指导我们!

这是我发现的一个不错的库,它提供了一个数据存储+ Memcache备用会话处理程序。 您可以插入它,而只需调用而不是“ session_start”。 无需进一步更改脚本。 https://github.com/tomwalder/php-gds-session

它在后台使用了同一作者的另一个库( https://github.com/tomwalder/php-gds ),您将需要配置Datastore连接(使用凭据)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM