此过程介绍了如何升级现有的 Apigee 开发者服务门户(或简称为门户)本地安装。
确定正确的更新过程
您用于更新门户的过程取决于您当前的安装:
- 如果您的安装使用 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;如果此文件存在于 Web 根目录中,系统会为您保留该文件。
在继续安装之前,请备份整个 Drupal Web 根目录。执行下述安装步骤后,您可以从备份中恢复自定义设置。
使用 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属性指定。
系统会提示您输入 Postgres 用户密码,该密码由门户安装配置文件中的
DRUPAL_PG_PASS属性定义。如果您日后想从备份中恢复,请使用以下命令:
pg_restore --clean --dbname=devportal --host=localhost --username=apigee < /tmp/portal.dmp
- devportal 是门户安装配置文件中的
- 备份整个 Drupal Web 根目录。默认安装位置为
/opt/apigee/apigee-drupal,但您可能已更改该位置。如果您不确定此目录的位置,请使用
drush status命令或 Drupal 菜单中的配置 > 媒体 > 文件条目来确定公共文件系统和私有文件系统路径的位置(用于下一步)。 - 备份
/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 for Private Cloud 实际上导致 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 安装恢复到更高版本。