DynamoDB 会话处理程序站点范围与 phpMyAdmin 一起使用

Posted

技术标签:

【中文标题】DynamoDB 会话处理程序站点范围与 phpMyAdmin 一起使用【英文标题】:DynamoDB Session Handler Site Wide Used with phpMyAdmin 【发布时间】:2014-04-17 09:28:07 【问题描述】:

我目前正在使用 AWS Elastic Beanstalk 启动 LAMP 环境。由于 Elastic Beanstalk 是多实例环境,$_SESSION 未配置为正常工作,建议使用DynamoDB Session Handler。这对我来说很好,在 session_start(); 之前插入以下代码;

require 'vendor/autoload.php';

use Aws\DynamoDb\DynamoDbClient;
use Aws\DynamoDb\Session\SessionHandler;

$dynamoDb = DynamoDbClient::factory(array(
    'key'    => 'XXXX',
    'secret' => 'XXXX',
    'region' => 'us-east-1'
));

$sessionHandler = SessionHandler::factory(array(
    'dynamodb_client' => $dynamoDb,
    'table_name'      => 'sessions',
));
$sessionHandler->register();

但是,这不适用于整个应用程序,并且会导致启动和运行 phpMyAdmin 出现问题。如何使这个工作应用程序更广泛?

【问题讨论】:

您能否更具体地解释一下“应用程序范围”的含义? 我可以将其放置在任何地方,而无需将其直接放入 phpMyAdmin 或其他第 3 方代码中。我确实通过将此代码添加到 phpMyAdmin 的 /libraries/common.inc.php 来使 phpMyAdmin 正常工作,但这并不理想。 【参考方案1】:

AFAIK,无法从 php.ini 配置自定义会话处理程序,并且要使用 DynamoDB 会话处理程序,您必须以某种方式引导它。对于具有多个入口点的应用程序来说,这是一个挑战。您可以尝试的一个想法是使用auto_prepend_file INI setting 来运行引导代码。

【讨论】:

以上是关于DynamoDB 会话处理程序站点范围与 phpMyAdmin 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何按日期(范围键)查询 DynamoDB,没有明显的哈希键?

登录期间的会话处理,并在 GWT 中防止 XSRF(跨站点请求伪造)

IFrame和父帧会话处理

为多个主机上的 PHP 站点处理会话的最佳方法是啥? [关闭]

如何设计 DynamoDB 表以方便按时间范围搜索和按唯一 ID 删除

Yesod 布局中的站点范围变量(django 上下文处理器模拟)