【问题标题】:DynamoDB Session Handler Site Wide Used with phpMyAdminDynamoDB 会话处理程序站点范围与 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 正常工作,但这并不理想。

标签: php amazon-web-services phpmyadmin composer-php amazon-elastic-beanstalk


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-01-12
    • 2018-08-17
    • 2011-01-09
    • 2014-11-26
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多