AWS 上的 Socialengine 4.8.6(EC2、RDS(MYSQL/INNODB)、S3 和 CLOUDFRONT)- 启动时出现白屏/可能出现 INNODB 问题

Socialengine 4.8.6 on AWS (EC2, RDS (MYSQL/INNODB), S3 and CLOUDFRONT) - White Screen on Startup/ possible INNODB issue

Socialengine 4.8.6 - 启动时显示 'white screen',只能通过浏览器访问 sesystem.com/phpmyadmin 和 sesystem.com/install。

问题开始: 我需要一个带有生产数据副本的新数据库来测试新的升级(Socialengine 4.8.9)。我使用 PHPMYADMIN 将生产数据库(PROD)复制到新的开发数据库(COPYOFPROD),两个数据库都驻留在 AWS RDS 上,相同的实例和 user/password,并且都通过 INNODB 连接。

在我的系统上将 social/application/settings/database.php 从 PROD 更改为 COPYOFPROD 以测试数据库是否正确(是的 - 生产系统不是很聪明!)。尝试使用新数据库通过浏览器访问系统时出现白屏。

已将 /application/settings/database.php 上的单个配置更改还原为原始设置。白屏仍然存在并查看 Socialengine 错误日志,它报告它不再识别 PROD 数据库。 Socialengine 安装目录中的其他文件没有更改。

状态: 可以访问 phpmyadmin 上的 RDS 数据库 访问 socialengine,www.sesystem.com/install 然后 select 'requirements and redundancy check' 系统报告如下:

MySQL 'OK'

MySQL 4.1 'Unable to check. No database adapter was provided.'

MySQL InnoDB 存储引擎 'Unable to check. No database adapter was provided.'

因此,我总结说我的操作导致 INNODB 服务崩溃。我知道该服务是敏感的,如果您更改配置条目将会崩溃。

我读到在服务恢复之前需要删除 INNODB 日志文件,我已经尝试了删除 ib_logfiles 并重新启动 mysql 的过程。 结果:mysql 开始 [ok],ib_logfiles 被重新创建,但是当我尝试 Socialengine 时它​​仍然有一个 'white screen' 并且仍然报告 'No database adaptor'。

我的问题是:

1) 我如何检查 INNODB 服务在 AWS EC2/RDSMYSQL 上是否正确 运行?注意:我正在使用来自 OSX 机器的终端,通过标准 ECUSER 和 pemkey 组合连接到 EC2。

2) 我如何在 AWS RDS 上访问 mysqlmonitor 并出现适当的权限问题以检查 INNODB 状态。当前系统报告 - 您在尝试显示状态命令时需要 'PROCESS' 权限。

3) 哪些是 Socialengine 中最好的日志,可以查看为什么会出现白屏,是否有任何提示 - 因为我只是假设这是 INNODB 问题,但我需要确认它。

我是新手,所以不确定我的下一步是什么..

非常感谢

看来您的问题是在 database.php 设置文件中覆盖了太多内容。查看database.sample.php所有需要的设置键,下面是参考:

defined('_ENGINE') or die('Access Denied'); return array(
  'adapter' => 'mysqli',
  'params' => array(
    'host' => "rds connection string",
    'username' => "rds user",
    'password' => "rds password",
    'dbname'   => "se database",
    'charset'  => 'UTF-8',
    'adapterNamespace' => 'Zend_Db_Adapter',
  ),
  'isDefaultTableAdapter' => true,
  'tablePrefix' => "engine4_",
  'tableAdapterClass' => "Engine_Db_Table",
);

以后,我强烈建议使用 AWS/RDS 内置的 "snapshot" 功能。

升级测试步骤

  1. 拍摄 RDS 快照
  2. 拍摄 EC2 实例快照(保留实例 运行ning)
  3. 从快照启动新的 RDS 实例
  4. 从快照启动新的 EC2 实例
  5. 在新实例上更改数据库(验证其工作)
  6. 应用更新
  7. 验证其工作并确保一切正常

    现在升级您的实时安装(假设您使用 s3 存储):

  8. 拍摄升级前的 RDS 快照

  9. 在您新升级的 SE 实例上,请记住,所有设置都应与旧系统相匹配。
  10. 将数据库凭据切换到实时数据库
  11. re-运行数据库升级脚本
  12. 切换 ELB 或弹性 IP,或者您正在处理新实例的流量。