Socialengine 4.8.6 на AWS (EC2, RDS (MYSQL/INNODB), S3 и CLOUDFRONT) — белый экран при запуске/возможная проблема с INNODB

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 не изменился.

Статус: Доступ к базам данных RDS на phpmyadmin в порядке. Доступ к socialengine, www.sesystem.com/install, затем выберите «Требования и проверка избыточности». Система сообщает следующее:

MySQL «ОК»

MySQL 4.1 «Невозможно проверить. Адаптер базы данных не был предоставлен».

Механизм хранения MySQL InnoDB «Невозможно проверить. Адаптер базы данных не был предоставлен».

Поэтому я резюмирую, что своими действиями я разбил службу INNODB. Я понимаю, что служба чувствительна и рухнет, если вы измените записи конфигурации.

Я читал, что файлы журнала INNODB необходимо удалить, прежде чем служба возобновится, я попробовал процедуру удаления ib_logfiles и перезапуска mysql. Результат: запуск mysql [ok], файлы ib_logfiles воссозданы, но когда я пробую Socialengine, он все еще имеет «белый экран» и по-прежнему сообщает «Нет адаптера базы данных».

Мои вопросы:

1) Как проверить, правильно ли работают службы INNODB на AWS EC2/RDSMYSQL? Примечание. Я использую терминал с компьютера OSX, подключающегося к EC2 через стандартный ECUSER и комбинацию pemkey.

2) Как мне получить доступ к mysqlmonitor на AWS RDS с соответствующими проблемами с разрешениями, чтобы проверить статус INNODB. В настоящее время система сообщает - вам нужны права «ПРОЦЕСС» при попытке показать команды состояния.

3) Каковы лучшие журналы в Socialengine, чтобы увидеть, почему происходит белый экран, и есть ли какие-либо советы - потому что я только предполагаю, что это проблема INNODB, но мне нужно это подтвердить.

Я новичок, поэтому не знаю, каковы мои дальнейшие действия.

Огромное спасибо


person Socialengine User 101    schedule 28.06.2015    source источник
comment
Да, это было решение проблемы на 100%, большое спасибо. Некоторые кавычки, которые я использовал в database.php для имени экземпляра базы данных, были неправильными. Я просидел перед экраном 14 часов, пока наконец не понял.   -  person Socialengine User 101    schedule 30.06.2015
comment
После того, как я, наконец, загрузил копию своего производства в свою систему разработки, я обновился до 4.8.9 и протестировал ее. Наконец перевел его в производство около 6 часов назад, и все работает гладко. Хорошая работа в Social Engine, обновление прошло очень гладко. Пользователи забивали мой сайт socialengine размещением встроенных видео на YouTube — очевидно, они пропустили эту функцию до обновления — трафик сайта утроился всего за несколько часов.   -  person Socialengine User 101    schedule 30.06.2015


Ответы (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 или Elastic IP или другой способ обработки трафика на новый экземпляр.
person Stepan Mazurov    schedule 28.06.2015