Преобразование портала на основе tar в портал на основе RPM

Версия 4.18.05 портала Apigee Developer Services (или просто портала ) не позволяет обновлять предыдущую версию портала на основе tar. Вы можете напрямую обновить только версию портала на базе RPM до версии 4.18.05.

Однако вы можете преобразовать версию портала на основе tar в экземпляр портала на основе RPM 4.18.05. В рамках этого процесса вы переносите MySQL/MariaDB существующего портала в базу данных Postgres. После преобразования ваш портал останется порталом на основе RPM.

Вы можете перенести многие предыдущие версии портала на основе tar на портал на основе RPM, включая версии 4.16.09 и 4.17.01, а не только версию 4.17.05. Единственное требование — чтобы на портале работал Drupal 7 или более поздняя версия. Чтобы проверить свою версию Drupal, выберите «Отчеты» > «Отчеты о состоянии» в меню Drupal. Версия Drupal отображается в первой строке выходных данных.

Шаги высокого уровня, которые вы используете для перехода с портала на основе tar на портал на основе RPM:

  • Установите версию портала 4.18.05 на основе RPM на новом узле.
  • Создайте новую базу данных Postgres на портале на базе RPM .
  • Перенесите базу данных портала с портала на основе tar .
  • Скопируйте все вспомогательные файлы с портала на основе tar на портал на основе RPM.
  • Обновите записи DNS, чтобы они указывали на новый портал на основе RPM .

    Обратите внимание, что версия портала на основе RPM по умолчанию использует порт 8079, а версия на основе tar — порт 80. Убедитесь, что вы используете правильный номер порта в записи DNS. См. раздел Установка порта HTTP, используемого порталом, для получения информации об использовании другого порта.

Новый каталог установки по умолчанию после преобразования

После обновления установки, которая теперь использует Nginx/Postgres, корневой каталог изменился с:

/opt/apigee/apigee-drupal

к:

/opt/apigee/apigee-drupal/wwwroot

Процедура конвертации портала

Чтобы преобразовать портал в установку на основе RPM:

  1. Установите версию портала 4.18.05 на основе RPM на другом узле вашего портала на основе tar.
  2. На портале на базе RPM создайте новую базу данных Postgres. Позже вы перенесете базу данных с портала на основе tar в эту новую базу данных:
    1. Войдите в psql:
      psql -h localhost -p 5432 -U apigee

      Введите свой пароль Postgres, определенный свойством PG_PWD в файле конфигурации портала.

    2. Создайте новую базу данных Postgred:
      CREATE DATABASE newportaldb;
    3. Выход из psql:
      \q
  3. На tar-портале удалите старые модули, которые больше не используются:

    cd /var/www/html
    drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_account' AND type = 'module';"
    drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_checklist' AND type = 'module';"
    drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_sso_ui' AND type = 'module';"
  4. На портале на основе tar установите и настройте модуль Migrator Drupal:
    1. cd /tmp 
    2. wget https://ftp.drupal.org/files/projects/dbtng_migrator-7.x-1.4.tar.gz 
    3. gunzip /tmp/dbtng_migrator-7.x-1.4.tar.gz 
    4. tar -xvf /tmp/dbtng_migrator-7.x-1.4.tar --directory /var/www/html/sites/all/modules 
    5. Войдите на портал как администратор.
    6. Выберите «Модули» в меню Drupal.
    7. Включите модуль DBTNG Migrator .
    8. Сохраните конфигурацию.
  5. На портале на основе tar отредактируйте /var/www/html/sites/default/settings.php , чтобы добавить вторую конфигурацию базы данных, указывающую на вновь созданную базу данных на портале на основе RPM. Текущая конфигурация базы данных называется «по умолчанию». Назовите новую конфигурацию «Пользовательская», как показано в следующем примере:
    $databases = array (
      'default' =>
      array (
        'default' =>
        array (
          'database' => 'devportal',
          'username' => 'devportal',
          'password' => 'devportal',
          'host' => 'localhost',
          'port' => '',
          'driver' => 'mysql',
          'prefix' => '',
        ),
      ),
      'custom' =>
      array (
        'default' =>
        array (
          'database' => 'newportaldb',
          'username' => 'apigee',
          'password' => 'postgres',
          'host' => '192.168.168.100',
          'port' => '5432',
          'driver' => 'pgsql',
          'prefix' => '',
        )
      )
    );

    Где host и port указывают IP-адрес и порт сервера Postgres. Postgres использует для соединений порт 5432.

  6. На tar-портале установите драйвер Postgres:
    1. Используйте Yum для установки драйвера:
      yum install php-pdo_pgsql
    2. Отредактируйте /etc/php.ini добавив следующую строку в любое место файла:
      extension=pgsql.so
    3. Перезапустите Апач:
      service httpd restart
  7. На портале на основе tar перенесите базу данных портала на портал на основе RPM:
    1. Войдите на портал как администратор.
    2. В меню Drupal выберите Структура->Мигратор .
    3. Выберите исходную базу данных на портале на основе tar ( default ) и целевую базу данных ( custom ) на основе файла settings.php , показанного выше.
    4. Нажмите «Мигрировать» . База данных на основе tar переносится в базу данных на основе RPM.
  8. Скопируйте каталог sites с сервера на основе tar на сервер на основе RPM. Пути, показанные в следующих шагах, основаны на путях по умолчанию. Измените их по мере необходимости для вашей установки.
    1. На портале на основе tar свяжите каталог /var/www/html/sites :
      cd /var/www/html/sites
      tar -cvzf /tmp/sites.tar.gz .
    2. Скопируйте /tmp/sites.tar.gz в /opt/apigee/apigee-drupal/wwwroot/sites на сервере на базе RPM.
    3. Разделите каталог сайтов, но не перезаписывайте важные файлы.
      1. Сделайте резервную копию файла settings.php :
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. Сделайте резервную копию существующего каталога files :
        sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files
          /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. Сделайте резервную копию существующего каталога sites :
        tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. Разархивируйте и разархивируйте каталог sites с tar-сервера:
        gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
        tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. Убедитесь, что скопированные файлы имеют надлежащего владельца:
        chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. Восстановите файл settings.php :
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. Переместите личные файлы в новое место:
        cp -r /opt/apigee/apigee-drupal/wwwroot/sites/default/files/private/* /opt/apigee/data/apigee-drupal-devportal/private
        rm -rf /opt/apigee/apigee-drupal/wwwroot/sites/default/files/private
        chown -R apigee:apigee /opt/apigee/data/apigee-sap-drupal-devportal/private
  9. На портале на основе tar , только если вы изменили путь к корневому веб-каталогу на портале на основе tar с пути по умолчанию /var/www/html: запустите drush status и посмотрите путь к files и путь private files :
    cd /var/www/html
    drush status

    Если файлы/частные файлы не находятся в каталоге sites , скопируйте их на сервер на основе RPM, как показано выше.

  10. На портале на основе RPM обновите /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php , чтобы установить свойства базы данных по умолчанию:
    vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    Установите описание базы данных по умолчанию в settings.php:

    $databases = array (
      'default' =>
      array (
        'default' =>
        array (
          'database' => 'newportaldb',
          'username' => 'apigee',
          'password' => 'postgres',
          'host' => 'localhost', 'port' => '5432',
          'driver' => 'pgsql',
          'prefix' => '',
        )
      )
    );

    Если database указывает созданную вами новую базу данных, username и password такие же, как определены для пользовательской базы данных на портале на основе tar, а prefix пуст.

  11. На портале на основе RPM версия портала на основе RPM содержит меньше модулей Drupal, чем версия на основе tar. После перехода на портал на основе RPM необходимо проверить наличие недостающих модулей и при необходимости установить их.
    1. Установите модуль Drupal missing_module , используемый для обнаружения отсутствующих модулей:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl missing_module
      drush en missing_module
    2. Войдите на портал на основе RPM как администратор.
    3. Выберите «Отчеты» > «Отчеты о состоянии» в меню Drupal и проверьте наличие недостающих модулей.
    4. Используйте этот отчет для установки недостающих модулей или используйте следующие команды:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl <moduleA> <moduleB> ...
      drush en <moduleA> <moduleB> ...
    5. После включения всех модулей убедитесь, что файлы принадлежат пользователю apigee:
      chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      Дополнительную информацию о правах доступа к файлам см. на странице https://www.drupal.org/node/244924 .

  12. На портале на основе RPM запустите update.php в браузере, чтобы удалить все ошибки в отсутствующих модулях:
    1. Войдите на портал на основе RPM как администратор.
    2. В браузере перейдите по следующему URL-адресу:
      http://portal_IP_or_DNS:8079/update.php

      portal_IP_or_DNS — это IP-адрес или доменное имя портала на основе RPM.

    3. Следуйте подсказкам на экране.
  13. Обновите записи DNS, чтобы они указывали на ваш новый портал на основе RPM.

    Обратите внимание, что версия портала на основе RPM по умолчанию использует порт 8079, а версия на основе tar — порт 80. Убедитесь, что вы используете правильный номер порта в записи DNS. См. раздел Установка порта HTTP, используемого порталом, для получения информации об использовании другого порта.

Преобразование завершено.