將 tar 式入口網站轉換成採用 RPM 的入口網站

Edge for Private Cloud 4.18.05

Apigee Developer Services 入口網站 (簡稱「入口網站」) 的 4.18.05 版無法讓您更新以 tar 為基礎的舊版入口網站。您只能直接將以 RPM 為基礎的版 Portal 更新至 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 選單中依序選取「Reports」>「Status Reports」。Drupal 版本會顯示在輸出內容的第一列。

從以 tar 為基礎的入口網站遷移至以 RPM 為基礎的入口網站時,您需要採取下列高階步驟:

  • 在新節點上安裝以 RPM 為基礎的 4.18.05 版入口網站。
  • 在以 RPM 為基礎的入口網站上建立新的 Postgres 資料庫。
  • 從以 tar 為基礎的入口網站遷移入口網站資料庫。
  • 將所有附件檔案從以 tar 為基礎的入口網站複製到以 RPM 為基礎的入口網站。
  • 更新 DNS 項目,讓 DNS 指向新的 RPM 平台

    請注意,以 RPM 為基礎的入口網站版本預設使用通訊埠 8079,而以 tar 為基礎的版本則使用通訊埠 80。請確認您在 DNS 項目中使用正確的通訊埠號碼。如要瞭解如何使用其他通訊埠,請參閱「設定入口網站使用的 HTTP 通訊埠」。

轉換後的新預設安裝目錄

更新現在使用 Nginx/Postgres 的已安裝項目後,根目錄會變更為:

/opt/apigee/apigee-drupal

收件者:

/opt/apigee/apigee-drupal/wwwroot

入口網站轉換程序

如要將入口網站轉換為 RPM 安裝程序,請按照下列步驟操作:

  1. 在與以 tar 為基礎的入口網站不同的節點上,安裝以 RPM 為基礎的 4.18.05 版入口網站。
  2. 在以 RPM 為基礎的入口網站中,建立新的 Postgres 資料庫。稍後,您會將資料庫從以 tar 為基礎的入口網站遷移至這個新資料庫:
    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 模組:
    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」。將新設定命名為「自訂」,如以下範例所示:
    $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 伺服器的 IP 位址和連接埠。Postgres 會使用 5432 通訊埠進行連線。

  6. 在以 tar 為基礎的入口網站上安裝 Postgres 驅動程式:
    1. 使用 Yum 安裝驅動程式:
      yum install php-pdo_pgsql
    2. 編輯 /etc/php.ini,在檔案中任一處新增下列行:
      extension=pgsql.so
    3. 重新啟動 Apache:
      service httpd restart
  7. 在以 tar 為基礎的入口網站上,將入口網站資料庫遷移至以 RPM 為基礎的入口網站:
    1. 以管理員身分登入入口網站。
    2. 在 Drupal 選單中,依序選取「Structure」>「Migrator」
    3. 根據上述 settings.php 檔案,在以 tar 為基礎的入口網站 default 中選擇來源資料庫,並在 custom 中選擇目的地資料庫。
    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. 在 RPM 伺服器上將 /tmp/sites.tar.gz 複製到 /opt/apigee/apigee-drupal/wwwroot/sites
    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 變更為其他路徑時,才需要執行 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. 在 Drupal 選單中依序選取「Reports」>「Status reports」,然後檢查是否缺少任何模組。
    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. 在瀏覽器中前往下列網址:
      http://portal_IP_or_DNS:8079/update.php

      其中 portal_IP_or_DNS 是 RPM 版入口網站的 IP 位址或網域名稱。

    3. 按照畫面上的提示操作。
  13. 更新 DNS 項目,將其指向新的 RPM 入口網站。

    請注意,以 RPM 為基礎的入口網站版本預設使用通訊埠 8079,而以 tar 為基礎的版本則使用通訊埠 80。請確認您在 DNS 項目中使用正確的通訊埠號碼。如要瞭解如何使用其他通訊埠,請參閱「設定入口網站使用的 HTTP 通訊埠」一文。

轉換完成。