本程序說明如何升級現有的 Apigee Developer Services 入口網站 (簡稱「入口網站」) 在內部安裝。
判斷正確的更新程序
您用來更新入口網站的程序取決於目前的安裝方式:
- 如果您的安裝作業使用 Nginx/Postgres,請參閱下方的使用 RPM 升級入口網站。
- 如果安裝的是 Apache/MySQL 或 Apache/MariaDB,請參閱將以 tar 為基礎的入口網站轉換為以 RPM 為基礎的入口網站。
判斷目前的安裝類型
如果不確定目前的安裝類型,請使用下列指令來判斷:
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 核心或任何非自訂模組中的任何程式碼,系統會覆寫您的修改內容。這包括您對 .htaccess
所做的任何變更。請假設 /sites
目錄以外的所有內容均為 Drupal 擁有。例外狀況是 robots.txt
;如果這個檔案存在於網頁根目錄中,系統會為您保留該檔案。
繼續安裝前,請先備份整個 Drupal 網路根目錄。執行下列安裝步驟後,您可以從備份檔案還原自訂項目。
透過 RPM 升級入口網站
如何更新節點上的入口網站 RPM:
- 變更為 Drupal 目錄,預設為
/opt/apigee/apigee-drupal
:cd /opt/apigee/apigee-drupal
- 備份 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
屬性所指定。
系統會提示您輸入在入口網站安裝設定檔中
DRUPAL_PG_PASS
屬性中定義的 Postgres 使用者密碼。如果之後想從備份還原,請使用下列指令:
pg_restore --clean --dbname=devportal --host=localhost --username=apigee < /tmp/portal.dmp
- devportal 是入口網站安裝設定檔中
- 備份整個 Drupal 網站根目錄。預設安裝位置為
/opt/apigee/apigee-drupal
,但您可能已變更。如果您不確定這個目錄的位置,請使用
drush status
指令或 Drupal 選單中的「Configuration」>「Media」>「File」項目,判斷公用檔案系統和私人檔案系統路徑的位置 (下一個步驟)。 - 備份
/opt/apigee/data/apigee-drupal-devportal/private
中的檔案。 - 將 Drupal 設為維護模式:
- 在 Drupal 選單中選取「Configuration」。
- 在「設定」頁面的「開發」下方,選取「維護模式」。
- 選取「讓網站進入維護模式」方塊。
- 輸入使用者維護期間看到的訊息。
- 選取「儲存設定」。
- 按照安裝 Edge apigee-setup 公用程式停用 SELinux。
- 切換至
/opt
目錄:cd /opt
- 如要在有網際網路連線的伺服器上進行升級:
- 將 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
- 安裝 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。
- 將 Edge 4.19.06
- 如要在沒有網際網路連線的伺服器上升級:
- 按照「建立本機 Apigee 存放區」一文所述,建立本機 4.19.06 存放區。
- 如何從 .tar 檔案安裝 apigee-service:
- 在含有本機存放區的節點上,使用下列指令將本機存放區封裝到名為
/opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz
的單一 .tar 檔案:/opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
- 將 .tar 檔案複製到要更新 Edge 的節點。例如,將其複製到新節點的
/tmp
目錄中。 - 在新節點上,將檔案解壓縮至 /tmp 目錄:
tar -xzf apigee-4.19.06.tar.gz
這個指令會在包含 .tar 檔案的目錄中建立名為存放區的新目錄。例如 /tmp/repos。
- 從
/tmp/repos
安裝 Edgeapigee-service
公用程式和依附元件:sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos
請注意,您必須在這個指令中加入 repos 目錄的路徑。
- 在含有本機存放區的節點上,使用下列指令將本機存放區封裝到名為
- 如何使用 Nginx 網路伺服器安裝 apigee-service:
- 依據「安裝 Edge apigee-setup 公用程式」一文的「使用 Nginx 網路伺服器從存放區安裝」說明,設定 Nginx 網路伺服器。
- 在遠端節點上,將 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 名稱。
- 在遠端節點上安裝 Edge
apigee-service
公用程式和依附元件:sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939 apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://
其中 uName 和 pWord 是存放區使用者名稱和密碼。
- 使用
apigee-service
更新apigee-setup
公用程式:/opt/apigee/apigee-service/bin/apigee-service apigee-setup update
- 在 Postgres 節點上執行
update
公用程式:/opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
其中 configFile 是用來安裝 Postgres 資料庫的設定檔。設定檔唯一的要求是,設定檔必須可供「apigee」使用者存取或讀取。
- 執行下列指令,移除 PHP RPM,而非 Apigee Drupal Devportal 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 名稱。
- 在節點上執行
update
公用程式,以更新入口網站:/opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile
其中 configFile 是用來安裝入口網站的設定檔。設定檔唯一的要求是,「apigee」使用者必須能夠存取或讀取設定檔。
- 在瀏覽器視窗中開啟下列網址,執行 Drupal 的
update.php
指令碼:http://portal_IP_DNS:8079/update.php
- 停用維護模式:
- 在 Drupal 選單中選取「Configuration」。
- 在「Configuration」頁面中,選取「Development」下方的「Maintenance mode」。
- 取消選取「將網站設為維護模式」方塊。
- 選取「儲存設定」。
請注意,更新後的根目錄如下:
/opt/apigee/apigee-drupal/wwwroot
升級作業已完成。如果 Apigee update
公用程式將 Drupal 降級,您可能需要重新執行 Drupal 升級公用程式。詳情請參閱「重新執行 Drupal 升級」。
重新執行 Drupal 升級
如果執行 Apigee update
公用程式來升級 Edge for Private Cloud,實際上會導致 Drupal 版本降級,請重新安裝 Drupal 升級版本。如果您在私有雲更新期間只升級 Drupal,就可能會發生這種情況。
例如:
- 您執行的是 Edge for Private Cloud 的 4.18.05 版,其中包含 Drupal 7.59。
- 您已將 Drupal 升級至 7.64 版,以便進行必要的安全性更新。
- 您現在要將私有雲升級至 4.19.01,其中包含 Drupal 7.61。
如本案例所示,Apigee update
公用程式所使用的 Drupal 版本可能不會參照最新的 Drupal 升級版本。因此,您現在必須重新執行 Drupal 升級作業,才能將 Drupal 安裝作業還原為較新版本。