此过程介绍了如何升级现有的 Apigee 开发者服务门户(以下简称“门户”)On-Prem 安装。
确定正确的更新流程
您用于更新门户的步骤取决于您当前的安装方式:
- 如果您的安装使用的是 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,则此命令应返回门户的 Web 根目录,格式如下:
*: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 升级门户
如需更新节点上的门户每千次展示收入,请执行以下操作:
- 切换到 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 Web 根目录。默认安装位置为
/opt/apigee/apigee-drupal
,但您可能已将其更改。如果您不确定此目录的位置,请使用
drush status
命令或 Drupal 菜单中的 Configuration > Media > File 条目来确定公共文件系统和私有文件系统路径的位置(以便执行下一步)。 - 备份
/opt/apigee/data/apigee-drupal-devportal/private
中的文件。 - 将 Drupal 设为维护模式:
- 在 Drupal 菜单中,选择配置。
- 在配置页面上,选择开发下的维护模式。
- 选中将网站置于维护模式复选框。
- 输入用户在维护期间看到的消息。
- 选择保存配置。
- 按照安装 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 文件的目录中创建一个名为 repos 的新目录。例如 /tmp/repos。
- 从
/tmp/repos
安装 Edgeapigee-service
实用程序和依赖项:sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos
请注意,您需要在此命令中添加代码库目录的路径。
- 在包含本地代码库的节点上,使用以下命令将本地代码库打包到名为
- 如需使用 Nginx Web 服务器安装 apigee-service,请执行以下操作:
- 按照安装 Edge apigee-setup 实用程序中的“使用 Nginx Web 服务器从代码库安装”部分中的说明配置 Nginx Web 服务器。
- 在远程节点上,将 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 菜单中,选择配置。
- 在配置页面上,选择开发下的维护模式。
- 取消选中将网站置于维护模式复选框。
- 选择保存配置。
请注意,更新后的根目录为:
/opt/apigee/apigee-drupal/wwwroot
升级现已完成。如果 Apigee update
实用程序降级了您的 Drupal 版本,您可能需要重新运行 Drupal 升级实用程序。如需了解详情,请参阅重新运行 Drupal 升级。
重新运行 Drupal 升级
如果运行 Apigee update
实用程序来升级适用于私有云的 Edge 实际上会导致 Drupal 版本降级,请重新安装 Drupal 升级。如果您在 Private Cloud 更新期间仅升级了 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 安装恢复为较高版本。