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" 功能。
升级测试步骤
- 拍摄 RDS 快照
- 拍摄 EC2 实例快照(保留实例 运行ning)
- 从快照启动新的 RDS 实例
- 从快照启动新的 EC2 实例
- 在新实例上更改数据库(验证其工作)
- 应用更新
验证其工作并确保一切正常
现在升级您的实时安装(假设您使用 s3 存储):
拍摄升级前的 RDS 快照
- 在您新升级的 SE 实例上,请记住,所有设置都应与旧系统相匹配。
- 将数据库凭据切换到实时数据库
- re-运行数据库升级脚本
- 切换 ELB 或弹性 IP,或者您正在处理新实例的流量。
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" 功能。
升级测试步骤
- 拍摄 RDS 快照
- 拍摄 EC2 实例快照(保留实例 运行ning)
- 从快照启动新的 RDS 实例
- 从快照启动新的 EC2 实例
- 在新实例上更改数据库(验证其工作)
- 应用更新
验证其工作并确保一切正常
现在升级您的实时安装(假设您使用 s3 存储):
拍摄升级前的 RDS 快照
- 在您新升级的 SE 实例上,请记住,所有设置都应与旧系统相匹配。
- 将数据库凭据切换到实时数据库
- re-运行数据库升级脚本
- 切换 ELB 或弹性 IP,或者您正在处理新实例的流量。