将基于 tar 的门户转换为基于 RPM 的门户

适用于私有云的 Edge v4.19.01

4.18.05 版 Apigee Developer Services 门户(简称为门户)不支持更新旧版 基于 tar 版本的门户。您只能直接更新基于 RPM 的门户版本 至 4.18.05。

不过,您可以将基于 tar 的门户版本转换为基于 4.18.05 RPM 的 打开该门户在此过程中,您需要将现有门户的 MySQL/MariaDB Postgres 数据库。转换后,您的门户仍为基于 RPM 的门户。

您可以将许多以前版本的基于 tar 的门户迁移到基于 RPM 的门户, 包括版本 4.16.09 和 4.17.01,而不仅仅是 4.17.05。唯一的要求是 该门户正在运行 Drupal 7 或更高版本。如需查看您的 Drupal 版本,请选择报告 >Drupal 菜单中的状态报告。Drupal 版本显示在第一行中 输出内容。

从基于 tar 的门户迁移到基于 RPM 的门户的概要步骤 分别是:

  • 基于 RPM 的 4.18.05 版的 新节点。
  • 在基于 RPM 的门户上创建一个新的 Postgres 数据库。
  • 从基于 tar 的门户迁移门户数据库。
  • 从基于 tar 的门户将所有配件文件复制到基于 RPM 的 。
  • 更新 DNS 条目以指向基于 RPM 的新门户

    请注意,基于 RPM 的门户版本默认使用端口 8079,而基于 tar 的门户版本 使用端口 80确保您在 DNS 条目中使用了正确的端口号。请参阅 如需了解相关信息,请设置门户使用的 HTTP 端口 另一个端口上的问题

新的默认安装目录位于 转化

更新现在使用 Nginx/Postgres 的安装后,根目录已更改 发件人:

/opt/apigee/apigee-drupal

to:

/opt/apigee/apigee-drupal/wwwroot

门户转换流程

若要将门户转换为基于 RPM 的安装,请执行以下操作:

  1. 将基于 RPM 的 4.18.05 版本的门户安装在与基于 tar 的不同节点上 。
  2. 在基于 RPM 的门户上,创建一个新的 Postgres 数据库。稍后,您需要 将数据库从基于 tar 的门户迁移到此新数据库: <ph type="x-smartling-placeholder">
      </ph>
    1. 登录 psql:
      psql -h localhost -p 5432 -U apigee

      输入门户配置中的 PG_PWD 属性所定义的 Postgres 密码 文件。

    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 模块: <ph type="x-smartling-placeholder">
      </ph>
    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 菜单中选择 Modules
    7. 启用 DBTNG Migrator 模块。
    8. 保存配置。
  5. 在基于 tar 的门户上,修改 /var/www/html/sites/default/settings.php 添加第二个数据库配置,该配置指向在基于 RPM 的 。当前数据库配置名为“default”。为新配置命名 “custom”,如下例所示:
    $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' => '',
        )
      )
    );

    其中,hostport 指定 Postgres 服务器。Postgres 使用端口 5432 进行连接。

  6. 在基于 tar 的门户上,安装 Postgres 驱动程序: <ph type="x-smartling-placeholder">
      </ph>
    1. 使用 Yum 安装驱动程序:
      yum install php-pdo_pgsql
    2. 修改 /etc/php.ini 以将以下代码行添加到该文件中的任意位置:
      extension=pgsql.so
    3. 重启 Apache:
      service httpd restart
  7. 在基于 tar 的门户上,将门户数据库迁移到基于 RPM 的门户 门户: <ph type="x-smartling-placeholder">
      </ph>
    1. 以管理员身份登录门户。
    2. 在 Drupal 菜单中,依次选择 Structure->Migrator
    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. 从基于 tar 的服务器中解压缩 sites 目录:
        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 的默认路径下):run 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 指定您创建的新数据库。 usernamepassword 是为自定义数据库定义的 (基于 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. 选择报告 >状态报告,并检查 任何缺失的模块。
    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 以移除所有错误 缺失的模块: <ph type="x-smartling-placeholder">
      </ph>
    1. 以管理员身份登录基于 RPM 的门户。
    2. 在浏览器中,转到以下网址:
      http://portal_IP_or_DNS:8079/update.php

      其中 portal_IP_or_DNS 是基于 RPM 的 。

    3. 按照屏幕提示操作。
  13. 更新 DNS 条目,使其指向基于 RPM 的新门户。

    请注意,基于 RPM 的门户版本默认使用端口 8079,而基于 tar 的门户版本 使用端口 80确保您在 DNS 条目中使用了正确的端口号。请参阅 设置门户使用的 HTTP 端口,以了解 其他端口

转换已完成。