升級入口網站

本程序說明如何升級現有的 Apigee Developer Services 入口網站 (或簡稱「入口網站」) 地端部署安裝。

判斷正確的更新程序

更新入口網站的程序取決於目前的安裝方式:

判斷目前的安裝類型

如果不確定目前的安裝類型,請使用下列指令判斷:

  • ls /opt

    如果您使用的是 Nginx/Postgres,會看到下列目錄:/opt/apigee 和 /opt/nginx。

    如果您使用的是 Apache/MySQL 或 Apache/MariaDB,則不應出現這些目錄。

  • /opt/apigee/apigee-service/bin/apigee-all status

    如果您使用的是 Nginx/Postgres,會看到下列輸出內容:

    + apigee-service
    apigee-drupal-devportal status
    OK: apigee-drupal-devportal is up and running
    + apigee-service apigee-lb status
    apigee-service: apigee-lb: OK
    + apigee-service apigee-postgresql status
    apigee-service: apigee-postgresql: OK
  • apachectl -S

    如果您使用的是 Apache/MySQL 或 Apache/MariaDB,這個指令應會傳回入口網站的網路根目錄,格式如下:

    *:80
    192.168.56.102 (/etc/httpd/conf/vhosts/devportal.conf:1)

預設安裝目錄

升級程序會假設入口網站安裝在:

  • 4.17.05 以上版本:/opt/apigee/apigee-drupal/wwwroot
  • 4.17.05 之前:/opt/apigee/apigee-drupal (Nginx) 或 /var/www/html (Apache)

如果您未在預設目錄中安裝入口網站,請修改下方程序中的路徑,改用安裝目錄。

支援的升級版本

OPDK-17-01.x 以上版本的入口網站支援這項升級程序。

如要判斷入口網站版本,請在瀏覽器中開啟下列網址:

http://yourportal.com/buildInfo

更新前

如果已安裝 Drupal,且曾修改 Drupal 核心或任何非自訂模組中的程式碼,系統會覆寫您所做的修改。包括您對 .htaccess 所做的任何變更。請假設 /sites 目錄以外的所有內容都屬於 Drupal。這項規則的例外狀況是 robots.txt;如果這個檔案存在於網頁根目錄中,系統會為您保留。

繼續安裝前,請先備份整個 Drupal 網頁根目錄。執行下列安裝步驟後,即可從備份還原自訂項目。

使用 RPM 升級入口網站

如要更新節點上的入口網站 RPM,請按照下列步驟操作:

  1. 切換至 Drupal 目錄 (預設為 /opt/apigee/apigee-drupal):
    cd /opt/apigee/apigee-drupal
  2. 備份 Drupal 資料庫執行個體。pg_dump 指令會建立資料庫副本:
    pg_dump --dbname=devportal --host=host_IP_address --username=drupaladmin
      --password --format=c > /tmp/portal.dmp

    其中:

    • devportal 是入口網站安裝設定檔中 PG_NAME 屬性指定的資料庫名稱。
    • host_IP_address 是入口網站節點的 IP 位址。
    • drupaladmin 是入口網站用來存取資料庫的 Postgres 使用者名稱,由入口網站安裝設定檔中的 DRUPAL_PG_USER 屬性指定。

    系統會提示您輸入 Postgres 使用者密碼,該密碼是由入口網站安裝設定檔中的 DRUPAL_PG_PASS 屬性定義。

    如果日後要從備份還原,請使用下列指令:

    pg_restore --clean --dbname=devportal --host=localhost  --username=apigee < /tmp/portal.dmp
  3. 備份整個 Drupal 網站根目錄。預設安裝位置為 /opt/apigee/apigee-drupal,但您可能已變更。

    如果不確定這個目錄的位置,請使用 drush status 指令,或在 Drupal 選單中依序點選「Configuration」>「Media」>「File」,判斷公開檔案系統和私人檔案系統路徑的位置 (用於下一個步驟)。

  4. 備份 /opt/apigee/data/apigee-drupal-devportal/private 中的檔案。
  5. 將 Drupal 設為維護模式:
    1. 在 Drupal 選單中選取「Configuration」。
    2. 在「Configuration」頁面中,選取「Development」下方的「Maintenance mode」。
    3. 勾選「Put site into maintenance mode」方塊。
    4. 輸入使用者在維護期間看到的訊息。
    5. 選取「儲存設定」。
  6. 按照「安裝 Edge apigee-setup 公用程式」中的說明停用 SELinux。
  7. 切換至 /opt 目錄:
    cd /opt
  8. 如要升級已連上網際網路連線的伺服器:
    1. 將 Edge 4.19.06 bootstrap_4.19.06.sh 檔案下載至 /tmp/bootstrap_4.19.06.sh:
      curl https://software.apigee.com/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
    2. 安裝 Edge 4.19.06 apigee-service 公用程式和依附元件:
      sudo bash /tmp/bootstrap_4.19.06.sh apigeeuser=uName apigeepassword=pWord

      其中 uName 和 pWord 是您從 Apigee 收到的使用者名稱和密碼。如果省略 pWord,系統會提示您輸入。

      根據預設,安裝程式會檢查您是否已安裝 Java 1.8。您可以使用「C」選項繼續操作,不需安裝 Java。

  9. 如要升級未連上網際網路連線的伺服器:
    1. 按照「建立本機 Apigee 存放區」一文中的說明,建立本機 4.19.06 存放區。
    2. 如要從 .tar 檔案安裝 apigee-service:
      1. 在本機存放區所在的節點上,使用下列指令將本機存放區封裝成名為 /opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz 的單一 .tar 檔案:
        /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. 將 .tar 檔案複製到要更新 Edge 的節點。例如,將其複製到新節點上的 /tmp 目錄。
      3. 在新節點上,將檔案解壓縮至 /tmp 目錄:
        tar -xzf apigee-4.19.06.tar.gz

        這個指令會在含有 .tar 檔案的目錄中,建立名為 repos 的新目錄。例如 /tmp/repos。

      4. 從 /tmp/repos 安裝 Edge apigee-service 公用程式和依附元件:
        sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        請注意,您在這個指令中加入了 repos 目錄的路徑。

    3. 如要使用 Nginx 網路伺服器安裝 apigee-service:
      1. 按照「安裝 Edge apigee-setup 公用程式」一文中的「使用 Nginx 網路伺服器從存放區安裝」一節所述,設定 Nginx 網路伺服器。
      2. 在遠端節點上,將 Edge bootstrap_4.19.06.sh 檔案下載至 /tmp/bootstrap_4.19.06.sh:
        /usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.19.06.sh
          -o /tmp/bootstrap_4.19.06.sh

        其中 uName 和 pWord 是您在上方為存放區設定的使用者名稱和密碼,remoteRepo 則是存放區節點的 IP 位址或 DNS 名稱。

      3. 在遠端節點上,安裝 Edge apigee-service 公用程式和依附元件:
        sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939
          apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        其中 uName 和 pWord 是存放區使用者名稱和密碼。

  10. 使用 apigee-service 更新 apigee-setup 公用程式:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  11. 在 Postgres 節點上執行 update 公用程式:
    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile

    其中 configFile 是您用來安裝 Postgres 資料庫的設定檔。設定檔的唯一要求是「apigee」使用者必須能夠存取或讀取設定檔。

  12. 執行下列指令,移除 PHP RPM,但不要移除 Apigee Drupal 開發人員入口網站 RPM 依附元件:
    rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')

    這個指令會執行下列動作:

    • rpm -ev --nodeps 會移除 RPM,但不會移除其依附元件。
    • rpm -qa 會建立要移除的 RPM 清單。
    • grep php 會搜尋所有 PHP RPM。
    • awk '{printf "%s ", $1}' 會列印 RPM 名稱。
  13. 在節點上執行 update 公用程式,更新入口網站:
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

    其中 configFile 是您用來安裝入口網站的設定檔。設定檔的唯一要求是「apigee」使用者必須能夠存取或讀取設定檔。

  14. 在瀏覽器視窗中開啟下列網址,執行 Drupal 的 update.php 指令碼:
    http://portal_IP_DNS:8079/update.php
  15. 停用維修模式:
    1. 在 Drupal 選單中選取「Configuration」。
    2. 在「Configuration」頁面中,選取「Development」下方的「Maintenance mode」。
    3. 取消勾選「將網站設為維護模式」方塊。
    4. 選取「儲存設定」。

請注意,更新後的根目錄為:

/opt/apigee/apigee-drupal/wwwroot

升級作業現已完成。如果 Apigee update 公用程式降級了 Drupal 版本,您可能需要重新執行 Drupal 升級公用程式。詳情請參閱「重新執行 Drupal 升級作業」。

重新執行 Drupal 升級作業

如果執行 Apigee update 公用程式來升級 Edge for Private Cloud,實際上會導致 Drupal 版本降級,請重新安裝 Drupal 升級。如果您在 Private Cloud 更新之間僅升級 Drupal,就可能發生這種情況。

例如:

  1. 您執行的是 Edge for Private Cloud 4.18.05 版,其中包含 Drupal 7.59。
  2. 你因安全性更新要求,將 Drupal 升級至 7.64 版。
  3. 您正在將 私有雲 升級至 4.19.01,其中包含 Drupal 7.61。

如這個案例所示,Apigee update 公用程式使用的 Drupal 版本可能不會參照最新的 Drupal 升級。因此,您現在必須重新執行 Drupal 升級作業,將 Drupal 安裝作業恢復為較新版本。