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

私有雲 v4.18.01 的邊緣

您可以透過 4.18.01 版本的開發人員服務入口網站更新舊版入口網站。您只能將入口網站的 RPM 版本直接更新為 4.18.01。

不過,您可以將以 tar 為基礎的入口網站轉換為以 4.18.01 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.01 版本開發人員服務入口網站。
  • 透過 RPM 入口網站建立新的 Postgres 資料庫。
  • tar 型入口網站遷移入口網站資料庫。
  • 從 tar 型入口網站複製的所有配件檔案複製到 RPM 入口網站。
  • 更新 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.01 版本開發人員服務入口網站。
  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},其中 <系統> = 'apigee_account' AND type = 'module';"
    > drush sql-query --system-prefix}。其中

  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' => '',
            )
          )
        );

    其中「host」和「port」會指定 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: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 rm -virf /opt/apigee/apigee-drupal/wwwroot/sites/apigee/deval/private-files/privateRch/privateRch/privateRch/privateRch-privateRup

  9. 在 tar 型入口網站上,您必須將 tar 型入口網站上網站根目錄的路徑從 /var/www/html 的預設路徑變更為執行「drush status」和「private files」路徑:
    > > cd /var/www/html
    >「Drush 狀態」在上方顯示的檔案/私人網站


  10. 在以 RPM 為基礎的入口網站上,更新 /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php,設定預設資料庫的屬性:
    > vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    在「設定」中指定預設資料庫通訊埠為空白資料庫。
    $databases = array (
          'default' =>
          array (
            'default' =>
            array (
              'database' => 'newportaldb',
              'username' => 'apigee',
              'password' => 'postgres',
              'host' => 'localhost', 'port' => '5432',
              'driver' => 'pgsql',
              'prefix' => '',
            )
          )
        );

  11. 在 RPM 入口網站上,採用 RPM 架構的入口網站與 tar 版本相較,採用的 Drupal 模組較少。遷移至 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> ...
      > 衝刺 <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 通訊埠」。

轉換完成。