【问题标题】:Socialengine 4.8.6 on AWS (EC2, RDS (MYSQL/INNODB), S3 and CLOUDFRONT) - White Screen on Startup/ possible INNODB issueAWS 上的 Socialengine 4.8.6(EC2、RDS (MYSQL/INNODB)、S3 和 CLOUDFRONT)- 启动时出现白屏/可能的 INNODB 问题
【发布时间】:2015-06-28 08:24:52
【问题描述】:

Socialengine 4.8.6 - 启动时显示“白屏”,只能通过浏览器访问 sesystem.com/phpmyadmin 和 sesystem.com/install。

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

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

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

状态: 访问phpmyadmin上的RDS数据库没问题 访问 socialengine,www.sesystem.com/install 然后选择“要求和冗余检查”,系统报告如下:

MySQL 'OK'

MySQL 4.1 '无法检查。没有提供数据库适配器。

MySQL InnoDB 存储引擎'无法检查。没有提供数据库适配器。

因此,我总结说我的行为导致 INNODB 服务崩溃。我了解该服务很敏感,如果您更改配置条目会崩溃。

我已经读到需要在服务恢复之前删除 INNODB 日志文件,我尝试了删除 ib_logfiles 并重新启动 mysql 的过程。 结果:mysql启动[ok],ib_logfiles被重新创建,但是当我尝试Socialengine时它仍然有一个“白屏”并且仍然报告“没有数据库适配器”。

我的问题是:

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

2) 我如何通过适当的权限问题访问 AWS RDS 上的 mysqlmonitor 以检查 INNODB 状态。目前系统报告 - 尝试显示状态命令时需要“处理”权限。

3) 哪些是 Socialengine 中最好的日志,以了解白屏发生的原因以及是否有任何提示 - 因为我只是假设这是 INNODB 问题,但我需要确认它。

我是新手,所以不确定我接下来要做什么..

非常感谢

【问题讨论】:

  • 是的,这是 100% 问题的解决方案,非常感谢。我在 database.php 中为数据库实例名称使用的引号有些不正确。我在屏幕前坐了 14 个小时才终于弄明白。
  • 在最终将我的产品副本加载到我的开发系统后,我升级到 4.8.9 并对其进行了测试。终于在大约 6 小时前将其投入生产,一切运行顺利。在社交引擎上做得很好,升级非常顺利。用户一直在通过发布嵌入的 youtube 视频来抨击我的社交引擎网站 - 显然他们在升级之前错过了很多功能 - 网站流量仅在几个小时内就翻了三倍。

标签: mysql amazon-web-services innodb amazon-rds socialengine


【解决方案1】:

您的问题似乎与在 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 内置的“快照”功能。

升级测试步骤

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

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

  8. 拍摄升级前的 RDS 快照

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 2016-11-15
    • 1970-01-01
    • 2011-06-03
    相关资源
    最近更新 更多