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

时间:2018-01-03 17:08:05

标签: php google-app-engine session

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

我暂时通过强迫app.yaml中的服务器只使用一个实例来解决它。但是这个实例现在严重超载了。

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

虽然看起来我必须重写我自己和第三方脚本,但是我必须编辑保存到会话的所有脚本。

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

非常感谢

2 个答案:

答案 0 :(得分:1)

有几种选择。

  1. 使用客户端Cookie 我还没有测试过,但谷歌搜索给了我: 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

答案 1 :(得分:0)

我玩游戏有点迟了,但我一直在寻找相同的东西。非常感谢Matsuo先生(公认的答案)指导我们! 这是我发现的一个不错的库,它提供了一个数据存储+ Memcache备用会话处理程序。您可以插入它,而只需调用而不是“ session_start”。无需进一步更改脚本。 https://github.com/tomwalder/php-gds-session 它在后台使用了同一作者的另一个库(https://github.com/tomwalder/php-gds),您将需要配置数据存储区连接(使用凭据)。