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(跨站点请求伪造)
为多个主机上的 PHP 站点处理会话的最佳方法是啥? [关闭]