Parallels Panel 配置指南 - Parent Directory
Parallels Panel 配置指南 - Parent Directory
Parallels Panel 配置指南 - Parent Directory
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Parallels</strong> ®<br />
<strong>Panel</strong><br />
开 发 人 员 指 南<br />
配 置 指 南
目 录<br />
前 言 4<br />
排 版 约 定 ........................................................................................................................................ 4<br />
反 馈 ............................................................................................................................................... 5<br />
关 于 此 文 件 6<br />
交 付 流 程 注 意 事 项 8<br />
部 署 <strong>Panel</strong> 9<br />
独 立 部 署 ...................................................................................................................................... 10<br />
获 取 版 本 ID ....................................................................................................................... 10<br />
获 取 产 品 组 件 列 表 ............................................................................................................. 11<br />
安 装 <strong>Panel</strong> ......................................................................................................................... 13<br />
安 装 程 序 CLI 参 考 ( 简 化 ) .................................................................................................. 14<br />
安 装 脚 本 (Linux/Unix) ....................................................................................................... 16<br />
在 <strong>Parallels</strong> Containers 环 境 中 部 署 ............................................................................................. 17<br />
<strong>Parallels</strong> Containers for Unix ............................................................................................. 18<br />
<strong>Parallels</strong> Containers for Windows ..................................................................................... 21<br />
使 用 Rsync 实 用 程 序 设 置 镜 像 ..................................................................................................... 22<br />
建 立 Linux/Unix 分 发 包 镜 像 .............................................................................................. 23<br />
建 立 Windows 分 发 包 镜 像 ................................................................................................. 26<br />
安 装 操 作 概 要 28<br />
初 始 化 <strong>Panel</strong> ................................................................................................................................ 29<br />
安 装 许 可 证 ................................................................................................................................... 29<br />
定 义 <strong>Panel</strong> 徽 标 ........................................................................................................................... 30<br />
配 置 DNS ..................................................................................................................................... 31<br />
更 改 SOA 记 录 模 板 ........................................................................................................... 31<br />
设 置 资 源 记 录 模 板 ............................................................................................................. 32<br />
安 装 SSL 证 书 .............................................................................................................................. 32<br />
创 建 站 点 及 子 站 点 ........................................................................................................................ 33<br />
安 装 应 用 程 序 ............................................................................................................................... 34<br />
导 入 应 用 程 序 包 ................................................................................................................. 34<br />
安 装 应 用 程 序 ..................................................................................................................... 35<br />
定 义 可 用 的 APS 目 录 .................................................................................................................. 36<br />
APS 目 录 配 置 文 件 ............................................................................................................. 37<br />
通 过 远 程 API 设 置 38
前 言 3<br />
使 用 远 程 API ............................................................................................................................... 39<br />
关 于 远 程 API ..................................................................................................................... 39<br />
API RPC 数 据 包 ................................................................................................................ 40<br />
创 建 客 户 软 件 ..................................................................................................................... 43<br />
设 置 <strong>Panel</strong> ................................................................................................................................... 68<br />
初 始 化 <strong>Panel</strong> ..................................................................................................................... 68<br />
安 装 许 可 证 ........................................................................................................................ 71<br />
配 置 DNS ........................................................................................................................... 77<br />
安 装 SSL 证 书 ................................................................................................................... 99<br />
创 建 站 点 .......................................................................................................................... 105<br />
创 建 子 站 点 ...................................................................................................................... 110<br />
定 义 可 用 的 APS 目 录 ...................................................................................................... 115<br />
安 装 应 用 程 序 ................................................................................................................... 117<br />
通 过 CLI 设 置 160<br />
关 于 <strong>Panel</strong> CLI ........................................................................................................................... 161<br />
设 置 <strong>Panel</strong> ................................................................................................................................. 162<br />
初 始 化 <strong>Panel</strong> ................................................................................................................... 162<br />
安 装 许 可 证 ...................................................................................................................... 163<br />
定 义 <strong>Panel</strong> 徽 标 ............................................................................................................... 164<br />
配 置 DNS ......................................................................................................................... 165<br />
安 装 SSL 证 书 ................................................................................................................. 170<br />
创 建 站 点 .......................................................................................................................... 172<br />
创 建 子 站 点 ...................................................................................................................... 172<br />
定 义 可 用 的 APS 目 录 ...................................................................................................... 174<br />
安 装 应 用 程 序 ................................................................................................................... 175
4 前 言<br />
前 言<br />
排 版 约 定<br />
在 您 开 始 使 用 本 指 南 之 前 , 了 解 其 中 使 用 的 文 档 约 定 十 分 重 要 。<br />
正 文 中 以 下 格 式 类 型 表 示 特 定 信 息 。<br />
格 式 约 定 信 息 类 型 示 例<br />
特 殊 粗 体<br />
您 必 须 选 择 的 项 目 , 如 菜 单<br />
选 项 、 命 令 按 钮 或 列 表 中 的<br />
项 目 。<br />
转 到 “ 系 统 ” 选 项 卡 。<br />
章 、 节 和 小 节 的 标 题 。 请 参 阅 “ 基 本 管 理 ” 一 章 。<br />
斜 体<br />
用 于 强 调 某 段 文 本 的 重 要<br />
性 , 以 介 绍 某 个 术 语 或 指 出<br />
将 用 真 实 名 称 或 实 际 值 来 替<br />
代 的 命 令 行 占 位 符 。<br />
该 系 统 支 持 通 常 所 说 的 “ 通 配 符 ” 搜<br />
索 。<br />
等 宽 字 体<br />
预 定 格 式<br />
预 定 的 粗 体 格 式<br />
命 令 、 文 件 和 目 录 的 名 称 。 许 可 证 文 件 位 于<br />
http://docs/common/licen<br />
ses 目 录 。<br />
屏 幕 上 显 示 的 命 令 行 会 话 中<br />
的 计 算 机 输 出 ; 为 XML、<br />
C++ 或 其 他 编 程 语 言 形 式<br />
的 源 代 码 。<br />
当 您 键 入 时 , 与 计 算 机 屏 幕<br />
输 出 对 比 。<br />
# ls –al /files<br />
total 14470<br />
# cd /root/rpms/php<br />
大 写 键 盘 上 按 键 的 名 称 。 SHIFT、CTRL、ALT<br />
KEY+KEY<br />
按 键 组 合 , 用 户 必 须 按 住 一<br />
个 按 键 然 后 再 按 下 另 一 个 按<br />
键 。<br />
CTRL+P,ALT+F4
前 言 5<br />
反 馈<br />
如 果 您 在 本 指 南 中 发 现 错 误 , 或 您 对 提 升 本 指 南 有 任 何 建 议 或 想 法 , 请 使 用 在 线 表 单 将 反 馈 发<br />
送 到 http://www.parallels.com/en/support/usersdoc/。 请 在 您 的 报 告 中 包 含 本 指 南 的 标 题 、 章<br />
节 和 小 节 标 题 , 以 及 您 在 其 中 发 现 错 误 的 文 本 片 断 。
第 1 章<br />
关 于 此 文 件<br />
目 的<br />
本 文 档 旨 在 阐 述 如 何 配 置 <strong>Parallels</strong> Small Business <strong>Panel</strong> ( 以 下 称 <strong>Panel</strong>), 协 助 HSP ( 主<br />
机 服 务 商 ) 公 司 向 客 户 提 供 完 整 的 主 机 解 决 方 案 。<br />
本 文 档 面 向 需 实 施 <strong>Panel</strong> 配 置 的 HSP 开 发 人 员 , 即 自 动 化 此 软 件 的 安 装 / 部 署 , 以 及 满 足<br />
特 定 客 户 需 求 的 配 置 。<br />
本 文 档 包 含 最 佳 的 建 议 - 经 过 完 全 测 试 和 保 证 - 在 产 品 交 付 范 围 内 安 装 和 配 置 <strong>Panel</strong> 时 。<br />
本 文 档 不 保 证 阐 述 API 的 所 有 功 能 : 不 会 描 述 超 出 范 围 的 操 作 和 选 项 。<br />
范 围<br />
现 在 的 服 务 商 可 以 从 难 管 理 的 基 础 结 构 主 机 转 向 提 供 增 值 的 管 理 服 务 。 出 售 给 客 户 的 主 机<br />
方 案 不 仅 包 含 物 理 或 虚 拟 服 务 器 环 境 , 内 含 可 选 的 控 制 面 板 安 装 , 也 包 含 域 名 和 SSL 证<br />
书 。 随 着 SaaS 模 式 获 得 越 来 越 多 的 客 户 认 可 , 特 别 是 小 型 企 业 , 主 机 程 序 包 也 开 始 包 含<br />
在 客 户 站 点 上 安 装 的 预 置 应 用 程 序 。 其 中 包 括 托 管 的 服 务 , 如 邮 件 、 协 作 工 具 和 内 容 管 理 。<br />
对 <strong>Panel</strong> 安 装 来 说 , 意 味 着 安 装 后 , 服 务 商 即 可 开 始 设 置 面 板 。 特 别 是 可 以 通 过 远 程 API<br />
或 CLI 自 定 义 下 列 设 置 :<br />
• DNS 设 置<br />
• 域 名 设 置<br />
• SSL 证 书 交 付<br />
• 安 装 APS 应 用 程 序<br />
为 了 协 助 服 务 商 推 介 附 加 服 务 ,<strong>Parallels</strong> 推 出 本 文 档 阐 述 如 何 部 署 和 配 置 <strong>Panel</strong>, 以 及 如<br />
何 集 成 到 交 付 应 用 程 序 。<br />
概 述<br />
章 节 “ 交 付 流 程 注 意 事 项 ” 概 述 整 个 交 付 流 程 涉 及 的 重 要 事 项 。<br />
章 节 “ 部 署 面 板 ” 着 重 在 <strong>Panel</strong> 的 交 付 阶 段 。 内 容 涵 盖 <strong>Parallels</strong> Containers 环 境 的 安 装 与<br />
独 立 安 装 , 也 包 括 如 何 创 建 <strong>Parallels</strong> Small Business <strong>Panel</strong> 分 发 库 的 自 定 义 镜 像 。<br />
下 面 三 章 阐 述 <strong>Panel</strong> 交 付 的 安 装 阶 段 :<br />
• 章 节 “ 安 装 操 作 概 要 ” 阐 述 安 装 操 作 的 概 念 和 卷 。
关 于 此 文 件 7<br />
• 章 节 “ 通 过 远 程 API 设 置 ” 阐 述 如 何 通 过 远 程 XML API 安 装 <strong>Panel</strong>。 本 章 阐 述 远 程 API:<br />
提 供 API RPC 协 议 概 要 和 用 来 通 过 协 议 与 <strong>Panel</strong> 服 务 器 互 动 的 工 具 示 例 , 然 后 详 细 阐<br />
述 第 三 方 工 具 如 何 通 过 请 求 信 息 执 行 <strong>Panel</strong> 安 装 操 作 , 以 及 接 收 到 的 每 个 操 作 对 应 的<br />
相 应 信 息 。<br />
• 章 节 “ 通 过 远 程 CLI 设 置 ” 阐 述 如 何 通 过 命 令 行 界 面 安 装 <strong>Panel</strong>。 本 章 首 先 阐 述 CLI 基 本<br />
概 念 , 然 后 详 细 阐 述 应 执 行 哪 些 命 令 来 安 装 <strong>Panel</strong>。
第 2 章<br />
交 付 流 程 注 意 事 项<br />
交 付 <strong>Parallels</strong> Small Business <strong>Panel</strong> for Windows 时 , 包 括 产 品 部 署 和 安 装 之 间 的 五 分<br />
钟 间 隔 。 需 要 此 安 装 延 迟 是 因 为 安 装 后 脚 本 需 要 时 间 来 注 册 和 安 装 第 三 方 组 件 。 在 此 阶<br />
段 执 行 的 交 付 操 作 会 失 败 。
第 3 章<br />
部 署 <strong>Panel</strong><br />
本 章 着 重 阐 述 <strong>Parallels</strong> Small Business <strong>Panel</strong> 交 付 的 部 署 阶 段 。<br />
内 容 涵 盖 <strong>Parallels</strong> Containers 环 境 的 安 装 与 独 立 安 装 , 也 包 括 如 何 创 建 <strong>Panel</strong> 分 发 库 的<br />
自 定 义 镜 像 。<br />
本 章 内 容 :<br />
独 立 部 署 ............................................................................................................ 10<br />
在 <strong>Parallels</strong> Containers 环 境 中 部 署 ................................................................... 17<br />
使 用 Rsync 实 用 程 序 设 置 镜 像 ........................................................................... 22
10 部 署 <strong>Panel</strong><br />
独 立 部 署<br />
本 章 阐 述 如 何 在 非 <strong>Parallels</strong> Containers 环 境 中 自 动 部 署 <strong>Panel</strong>,Linux/Unix 或 Windows。 本 章<br />
简 要 阐 述 <strong>Panel</strong> 安 装 的 基 本 步 骤 , 并 说 明 如 何 使 用 使 用 命 令 行 界 面 安 装 产 品 。<br />
使 用 <strong>Parallels</strong> 安 装 程 序 实 用 工 具 执 行 <strong>Panel</strong> 独 立 部 署 。 实 用 程 序 连 接 到 <strong>Parallels</strong> Small<br />
Business <strong>Panel</strong> 更 新 服 务 器 , 更 新 存 放 <strong>Panel</strong> 程 序 包 的 服 务 器 , 检 索 所 需 程 序 包 , 并 进 行 安 装<br />
。<br />
<strong>Parallels</strong> 安 装 程 序 可 在 互 动 模 式 ,( 通 过 Web 图 形 用 户 界 面 或 命 令 行 ), 或 自 动 模 式 下 运 行 , 通<br />
过 命 令 行 运 行 需 指 定 特 定 选 项 。 自 动 模 式 下 可 使 用 shell 脚 本 来 自 动 化 <strong>Panel</strong> 的 部 署 。<br />
提 供 多 个 版 本 的 <strong>Parallels</strong> 安 装 程 序 , 各 面 向 不 同 操 作 系 统 和 平 台 , 确 定 获 取 与 您 的 主 机 操 作 系<br />
统 兼 容 的 <strong>Parallels</strong> 安 装 程 序 。 通 常 ,<strong>Parallels</strong> 安 装 程 序 版 本 名 使 用 下 列 格 式 :<br />
parallels_installer_v_os__。<br />
注 意 : 描 述 <strong>Parallels</strong> 安 装 程 序 CLI 时 , 假 设 <strong>Parallels</strong> 安 装 程 序 名 称 是<br />
parallels_installer。<br />
官 方 <strong>Parallels</strong> Small Business <strong>Panel</strong> 库 是 autoinstall.plesk.com (Linux/Unix 程 序 包 ) 和<br />
autoinstall-win.parallels.com (Windows 程 序 包 )。 您 可 能 想 要 在 主 机 环 境 中 为 <strong>Panel</strong> 设 置 自 定<br />
义 镜 像 ( 第 22 页 ), 确 保 安 全 安 装 。<br />
获 取 版 本 ID<br />
版 本 ID 是 <strong>Panel</strong> 版 本 的 唯 一 标 示 符 , 如 <strong>Parallels</strong> Small Business <strong>Panel</strong> 10.0。<br />
若 要 获 取 版 本 ID 列 表 , 执 行 下 列 命 令 :<br />
parallels_installer --show-all-releases<br />
在 Linux/Unix 服 务 器 上<br />
parallels_installer.exe --show-all-releases<br />
在 Windows 服 务 器 上<br />
即 可 显 示 产 品 版 本 列 表 。 例 如 :<br />
• PPSMBE_10_0_0 (<strong>Parallels</strong> Small Business <strong>Panel</strong> 10.0.0)
部 署 <strong>Panel</strong> 11<br />
获 取 产 品 组 件 列 表<br />
若 要 获 取 组 件 版 本 列 表 , 执 行 格 式 如 下 的 命 令 :<br />
parallels_installer --select-release-id --show-components<br />
如 <strong>Parallels</strong> Small Business <strong>Panel</strong> 10:<br />
parallels_installer --select-release-id PPSMBE_10_0_0 --show-components<br />
在 Linux/Unix 服 务 器 上<br />
parallels_installer.exe --select-release-id PPSMBE_10_0_0_WIN<br />
--show-components<br />
即 会 显 示 组 件 列 表 , 组 件 名 称 在 左 侧 , 简 短 名 称 在 右 侧 , 如 :<br />
• 基 本 [install] - <strong>Parallels</strong> Small Business <strong>Panel</strong> 基 本 程 序 包<br />
• autoinstaller [install] - <strong>Parallels</strong> 产 品 安 装 程 序<br />
• postfix [install] - Postfix 邮 件 服 务 器<br />
• php5 [install] - PHP5 支 持<br />
• postgresql [install] - PostgreSQL 支 持<br />
• api [install] - <strong>Parallels</strong> Small Business <strong>Panel</strong> 基 本 程 序 包<br />
• siteeditor [install] - 站 点 编 辑 器<br />
• setemplates [install] - 站 点 编 辑 器 模 板<br />
• mod_python [install] - Apache mod_python 模 块<br />
• ruby [install] - Ruby on Rails 支 持<br />
• 防 火 墙 [install] - 防 火 墙 加 载 项<br />
• vpn [install] - VPN 加 载 项<br />
• 文 件 服 务 器 [install] - Fileserver 加 载 项<br />
• watchdog [install] - 系 统 监 控 加 载 项 (Watchdog)<br />
• drweb [install] - Dr. Web 防 病 毒<br />
• spamassassin [install] - SpamAssassin 支 持<br />
• 备 份 [install] - 备 份 管 理 器<br />
• backup-vz [install] - 备 份 管 理 器 PVC 重 装 支 持<br />
• de-DE-locale [install] - 德 文 语 言 包<br />
• ja-JP-locale [install] - 日 文 语 言 包<br />
• es-ES-locale [install] - 西 班 牙 文 语 言 包<br />
• ru-RU-locale [install] - 俄 文 语 言 包<br />
• fr-FR-locale [install] - 法 文 语 言 包<br />
• it-IT-locale [install] - 意 文 语 言 包<br />
• zh-CN-locale [install] - 简 体 中 文 语 言 包<br />
• zh-TW-locale [install] - 繁 体 中 文 语 言 包
12 部 署 <strong>Panel</strong><br />
• nl-NL-locale [install] - 荷 兰 文 语 言 包<br />
• atmail [install] - Atmail 网 络 邮 件 支 持
部 署 <strong>Panel</strong> 13<br />
安 装 <strong>Panel</strong><br />
若 要 安 装 <strong>Parallels</strong> Small Business <strong>Panel</strong>, 执 行 格 式 如 下 的 命 令 :<br />
parallels_installer --select-release-id <br />
[other options]<br />
其 中<br />
• 程 序 包 来 源 选 项 定 义 安 装 程 序 应 获 取 并 安 装 <strong>Panel</strong> 程 序 包 的 位 置<br />
=<br />
--source <br />
若 使 用 <strong>Panel</strong> 更 新 服 务 器 镜 像<br />
或<br />
--source VPS dashboard<br />
若 使 用 本 地 文 件 系 统<br />
或<br />
无<br />
若 从 <strong>Panel</strong> 更 新 服 务 器 安 装<br />
• 组 件 ( 第 11 页 ) 安 装 选 项 定 义 要 安 装 哪 些 <strong>Panel</strong> 组 件<br />
=<br />
--install-everything<br />
或<br />
--install-component component1 [--install-component component2 [...<br />
[--install-component componentN]]]<br />
• 其 他 选 项 包 括 定 义 代 理 服 务 器 设 置 、 安 装 日 志 等 等 。 如 需 详 情 , 请 参 阅 安 装 程 序 CLI 参 考 章<br />
节 ( 第 14 页 )<br />
如 ,Linux/Unix<br />
1. 下 列 命 令 可 用 于 从 服 务 器 上 的 镜 像 设 置 到 。 通 过 HTTP 在 主 机 ppsmbe-mirror.example.com<br />
上 设 置 镜 像 来 安 装 <strong>Parallels</strong> Small Business <strong>Panel</strong> 10 ( 版 本 ID 是 PPSMBE_10_0_0)。 安 装 文<br />
件 会 临 时 存 放 在 /tmp/ppsmbe, 安 装 状 态 会 发 送 到 admin@example.com。 安 装 的 组 件 包 括<br />
<strong>Panel</strong> 程 序 包 、PostgreSQL 服 务 器 和 SpamAssassin 垃 圾 邮 件 过 滤 器 。<br />
./parallels_installer --source http://ppsmbe-mirror.example.com/ --target<br />
/tmp/ppsmbe --select-release-id PPSMBE_10_0_0 --install-component base<br />
--install-component postgresql --install-component spamassassin<br />
--notify-email admin@example.com<br />
2. 下 列 命 令 可 用 于 完 全 安 装 ( 安 装 所 有 产 品 组 件 ) 来 自 <strong>Parallels</strong> 更 新 服 务 器 的 <strong>Parallels</strong> Small<br />
Business <strong>Panel</strong> 10 ( 版 本 ID 是 PPSMBE_10_0_0)。 所 有 安 装 程 序 输 出 会 重 定 向 到 XML 文 件 。<br />
./parallels_installer --select-release-id PPSMBE_10_0_0 --install-everything<br />
--enable-xml-output<br />
示 例 Windows
14 部 署 <strong>Panel</strong><br />
1. 下 列 命 令 可 用 于 从 服 务 器 上 的 镜 像 设 置 到 。 通 过 HTTP 在 主 机 PPSMBE_10_0_0_WIN 上 设<br />
置 镜 像 来 安 装 <strong>Parallels</strong> Small Business <strong>Panel</strong> 10 ( 版 本 ID 是 PPSMBE_10_0_0)。 安 装 文 件 会<br />
临 时 存 放 在 ppsmbe-mirror.example.com, 安 装 状 态 会 发 送 到 admin@example.com。 安 装 的 组<br />
件 包 括 <strong>Panel</strong> 程 序 包 、 绑 定 域 名 服 务 器 、MailEnable 邮 件 服 务 器 、PHP 脚 本 编 译 工 具 、 站 点 编<br />
辑 器 和 Horde Webmail。<br />
parallels_installer.exe --source http://ppsmbe-mirror.example.com/ --target<br />
%SystemDrive%\<strong>Parallels</strong> --select-release-id PPSMBE_10_0_0_WIN<br />
--install-component base --install-component dns --install-component<br />
mailenable --install-component php5 --install-component siteeditor<br />
--install-component webmail --notify-email admin@example.com<br />
2. 下 列 命 令 可 用 于 完 全 安 装 ( 安 装 所 有 产 品 组 件 ) 来 自 <strong>Parallels</strong> 更 新 服 务 器 的 <strong>Parallels</strong> Small<br />
Business <strong>Panel</strong> 10 ( 版 本 ID 是 PPSMBE_10_0_0_WIN)。 所 有 安 装 程 序 输 出 会 重 定 向 到 XML<br />
文 件 。<br />
parallels_installer.exe --select-release-id PPSMBE_10_0_0_WIN<br />
--install-everything --enable-xml-output<br />
安 装 程 序 CLI 参 考 ( 简 化 )<br />
本 参 考 只 涵 盖 使 用 CLI 安 装 <strong>Panel</strong> 的 <strong>Parallels</strong> 安 装 程 序 选 项 。<br />
若 要 了 解 有 关 已 安 装 的 <strong>Panel</strong> 或 主 机 操 作 系 统 升 级 相 关 的 选 项 , 执 行 下 列 命 令 :<br />
parallels_installer --help<br />
选 项<br />
--source VPS<br />
dashboard|<br />
描 述 及 可 能 的 问 题<br />
从 本 地 文 件 系 统 检 索 到 <strong>Panel</strong> 程 序 包 后 , 指 定 --source 选 项 指 向 包 含<br />
要 安 装 的 <strong>Panel</strong> 相 关 的 .inf3 文 件 。<br />
--target VPS<br />
dashboard<br />
--proxy-host < 网 络 地 址<br />
><br />
从 网 络 服 务 器 检 索 到 <strong>Panel</strong> 程 序 包 后 , 指 定 --source 选 项 指<br />
向 <strong>Panel</strong> 更 新 服 务 器 镜 像 所 在 的 目 录 。<br />
默 认 情 况 下 , 安 装 程 序 将 检 索 到 的 文 件 保 存 到 目 录 //psa。 例 如 , 若 root 用 户 执 行 安 装 程 序 , 则 会 创 建 并 使 用<br />
/root/psa 目 录 。 若 要 使 用 自 定 义 目 录 存 放 检 索 到 的 文 件 , 请 使 用<br />
--target 选 项 。<br />
如 :<br />
--target /opt/storage/psa<br />
或<br />
--target D:\temp<br />
使 用 代 理 服 务 器 或 防 火 墙 时 , 请 使 用 此 选 项 指 定 代 理 服 务 器 域 名 或 IP 地<br />
址 。<br />
--proxy-port < 端 口 号 ><br />
如 :<br />
--proxy-host proxy.example.com<br />
连 接 代 理 服 务 器 的 默 认 端 口 是 3128。 若 代 理 服 务 器 使 用 其 他 端 口 号 , 请<br />
使 用 此 选 项 指 定 。<br />
如 :<br />
--proxy-port 5741
部 署 <strong>Panel</strong> 15<br />
选 项<br />
代 理 服 务 器 认 证 选 项 。<br />
--proxy-user<br />
<br />
--proxy-password<br />
<br />
--show-releases<br />
描 述 及 可 能 的 问 题<br />
若 代 理 服 务 器 需 要 认 证 , 请 使 用 这 些 选 项 在 代 理 服 务 器 上 认 证 安 装 程 序 。<br />
示 例 :<br />
--proxy-user smith --proxy-password f1sZ9AnQ4EnO52<br />
指 定 此 选 项 检 索 要 执 行 安 装 程 序 的 可 用 操 作 系 统 版 本 列 表 。 则 会 看 到 版<br />
本 标 识 符 和 版 本 描 述 。 接 下 来 您 需 处 理 版 本 标 识 符 。<br />
--show-all-releases 此 选 项 显 示 <strong>Panel</strong> 更 新 服 务 器 上 所 有 可 用 的 版 本 。<br />
--select-release-id<br />
<br />
--select-release-lat<br />
est<br />
--show-components<br />
--install-component<br />
<br />
使 用 此 选 项 指 定 要 安 装 或 要 查 看 其 属 性 的 版 本 。<br />
使 用 此 选 项 选 择 您 的 操 作 系 统 可 用 的 最 新 版 本 。<br />
指 定 此 选 项 来 获 取 所 选 版 本 可 用 的 组 件 相 关 信 息 。 即 将 显 示 组 件 描 述 和<br />
名 称 。<br />
选 择 要 安 装 的 其 他 组 件 时 , 请 指 定 组 件 名 称 。<br />
使 用 此 选 项 指 定 要 安 装 的 组 件 。 若 要 一 次 安 装 多 个 组 件 , 请 重 复 使 用 此<br />
选 项 。<br />
示 例 :<br />
--install-component base --install-component<br />
postgresql --install-component spamassassin<br />
--install-everything 使 用 此 选 项 安 装 所 选 版 本 的 所 有 组 件 。<br />
--show-os-list 使 用 此 选 项 找 到 所 选 版 <strong>Panel</strong> 支 持 的 操 作 系 统 。<br />
--no-space-check 即 便 磁 盘 空 间 不 足 也 安 装 程 序 包 。<br />
--no-daemon 在 前 台 执 行 安 装 。<br />
--notify-email<br />
<br />
使 用 此 选 项 让 安 装 程 序 通 过 邮 件 发 送 状 态 报 告 。 成 功 的 完 成 报 告 包 括 安<br />
装 / 升 级 的 程 序 包 及 其 详 细 日 志 。<br />
--enable-xml-output 此 选 项 的 功 能 是 与 <strong>Panel</strong> 通 讯 , 也 可 以 与 其 他 应 用 程 序 搭 配 使 用 。<br />
指 定 此 选 项 时 , 安 装 程 序 全 部 输 出 到 XML 文 件 。 注 意 , 此 选 项 会 禁 止 安<br />
装 程 序 通 过 退 出 代 码 报 告 错 误 。 退 出 代 码 是 零 , 报 告 的 所 有 错 误 都 在 XML<br />
输 出 中 。<br />
--query-status<br />
因 RPM 数 据 库 不 允 许 多 进 程 , 安 装 程 序 会 锁 定 它 的 功 能 。 运 行 此 选 项 查<br />
看 安 装 程 序 是 否 启 用 。 这 会 检 查 是 否 锁 定 , 将 会 返 回 退 出 代 码 (0 - 安 装<br />
程 序 闲 置 ,1 - 安 装 程 序 正 在 运 行 且 繁 忙 ), 或 XML 格 式 的 输 出 。<br />
--truncate-log <strong>Parallels</strong> 产 品 安 装 程 序 启 动 后 , 即 清 除 日 志 文 件 。<br />
--separate-log <strong>Parallels</strong> 产 品 安 装 程 序 每 次 启 动 都 使 用 新 日 志 文 件 。
16 部 署 <strong>Panel</strong><br />
选 项<br />
描 述 及 可 能 的 问 题<br />
--debug 启 用 日 志 文 件 详 细 输 出 。<br />
--version 显 示 <strong>Parallels</strong> 产 品 安 装 程 序 版 本 。<br />
安 装 脚 本 (Linux/Unix)<br />
本 章 阐 述 如 何 实 施 和 执 行 安 装 脚 本 , 也 提 供 安 装 脚 本 范 例 。<br />
实 施 与 执 行 注 意 事 项<br />
• 若 要 避 免 通 过 SSH 连 接 安 装 <strong>Panel</strong> 的 服 务 器 时 每 次 都 被 提 醒 输 入 密 码 , 请 将 公 钥 放 到 应 在<br />
每 个 服 务 器 上 执 行 脚 本 的 用 户 授 权 码 列 表 中 ( 参 阅 SSH 文 档 了 解 如 何 操 作 )。<br />
• 若 有 <strong>Panel</strong> 更 新 服 务 器 本 地 镜 像 ( 参 阅 设 置 镜 像 章 节 ( 第 22 页 )), 使 用 下 列 选 项 :<br />
--source <br />
• 默 认 情 况 下 , 所 有 下 载 的 程 序 包 存 放 在 /root/psa 目 录 。 若 要 使 用 另 一 目 录 , 使 用 下 列<br />
选 项 :<br />
--target <br />
样 本 脚 本<br />
1. 此 示 例 脚 本 在 多 数 情 况 下 适 用 ,<strong>Parallels</strong> 安 装 程 序 之 前 上 传 到 目 标 服 务 器 , 已 在 权 限 中 设 置<br />
执 行 。<br />
#!/bin/sh<br />
SERVERS_LIST="node1.example.com node2.example.com"<br />
for current_server in $SERVERS_LIST; do<br />
scp parallels_installer root@$current_server:<br />
ssh -f root@$current_server "parallels_installer --source<br />
http://updates.example.com/ --target /tmp/ppsmbe --select-release-id<br />
PPSMBE_10_0_0 --install-component base --install-component postgresql<br />
--install-component asp --notify-email admin@example.com"<br />
done<br />
2. 当 直 接 从 网 络 位 置 获 取 <strong>Parallels</strong> 安 装 程 序 二 进 制 时 可 使 用 此 示 例 脚 本 ( 示 例 URL<br />
http://example.com/type_parallels_installer_name_here 应 替 换 成 有 效 的 安 装 程 序 下 载 链 接 )。<br />
#!/bin/sh<br />
SERVERS_LIST="node1.example.com node2.example.com"<br />
for current_server in $SERVERS_LIST; do<br />
ssh -f root@$current_server 'wget<br />
http://example.com/type_parallels_installer_name_here -o<br />
parallels_installer;chmod 755 ./parallels_installer;./parallels_installer<br />
--source http://updates.example.com/ --target /tmp/ppsmbe --select-release-id<br />
PPSMBE_10_0_0 --install-component base --install-component postgresql<br />
--install-component spamassassin --notify-email admin@example.com'<br />
done
部 署 <strong>Panel</strong> 17<br />
在 <strong>Parallels</strong> Containers 环 境 中 部 署<br />
本 章 涵 盖 使 用 <strong>Parallels</strong> Containers CLI 部 署 面 板 所 需 的 基 本 步 骤 , 着 重 在 使 用 <strong>Parallels</strong> Small<br />
Business <strong>Panel</strong> 创 建 Container。 如 需 有 关 <strong>Parallels</strong> Container CLI 或 <strong>Parallels</strong> Containers API<br />
(XML 或 SOAP) 功 能 的 更 多 信 息 , 参 阅 <strong>Parallels</strong> Containers 开 发 人 员 文 档<br />
(http://www.parallels.com/ptn/documentation/virtuozzo/)。<br />
在 <strong>Parallels</strong> Containers 环 境 中 部 署 <strong>Panel</strong> 包 括 下 面 两 个 阶 段 :<br />
1 在 硬 件 节 点 上 安 装 <strong>Panel</strong> 应 用 程 序 模 板 。<br />
2 创 建 Container, 并 从 模 板 部 署 应 用 程 序 。<br />
第 一 阶 段 只 在 每 个 硬 件 节 点 上 执 行 一 次 : 应 用 程 序 模 板 安 装 到 硬 件 节 点 上 之 后 , 即 可 根 据 需 要<br />
部 署 尽 可 能 多 的 Container。<br />
无 需 每 次 创 建 新 Container, 每 次 需 要 使 用 <strong>Panel</strong> 部 署 VPS 时 , 提 供 选 项 克 隆 安 装 <strong>Panel</strong> 的 现<br />
有 Container, 并 作 为 模 板 Container 使 用 。
18 部 署 <strong>Panel</strong><br />
<strong>Parallels</strong> Containers for Unix<br />
两 种 EZ 模 板 适 用 于 <strong>Parallels</strong> Small Business <strong>Panel</strong> 10:<br />
• ppsmbe10<br />
包 含 <strong>Panel</strong> 核 心 组 件 。<br />
• ppsmbe10-extended<br />
包 含 所 有 附 加 组 件 , 如 SpamAssassin 垃 圾 邮 件 过 滤 器 、Ruby-on-Rails 框 架 、Dr.Web 防<br />
病 毒 、 站 点 编 辑 器 模 板 和 其 他 组 件 。<br />
若 安 装 扩 展 版 的 <strong>Panel</strong>, 则 需 安 装 两 个 模 板 。<br />
通 过 下 列 方 式 可 在 目 标 硬 件 节 点 上 安 装 <strong>Panel</strong> 模 板 :<br />
• 使 用 vzup2date 实 用 程 序 。 如 需 详 情 , 参 阅 <strong>Parallels</strong> Containers for Linux 参 考 指 南 , 位<br />
于 <strong>Parallels</strong> 技 术 社 区 (http://www.parallels.com/ptn/documentation/virtuozzo/)。<br />
• 直 接 从 <strong>Parallels</strong> 网 站 (http://www.parallels.com) 下 载 模 板 , 并 使 用 vzpkg 实 用 工 具 安 装<br />
在 硬 件 节 点 上 安 装 模 板 时 , 即 可 部 署 文 件 核 心 设 置 , 其 中 包 括 应 用 程 序 库 定 义 。 在 Container<br />
中 安 装 应 用 程 序 后 ,<strong>Parallels</strong> Containers 与 库 通 讯 (<strong>Parallels</strong> Small Business <strong>Panel</strong> for<br />
Linux/Unix 默 认 库 是 <strong>Parallels</strong> 更 新 服 务 器 , 位 于 http://autoinstall.plesk.com), 并 检 索 应 用 程 序<br />
包 , 安 装 到 Container 中 。 清 空 前 程 序 包 存 放 在 节 点 缓 存 中 , 应 用 程 序 安 装 到 Container 中 之 后 ,<br />
再 从 库 中 检 索 程 序 包 。 若 要 保 存 流 量 和 时 间 , 则 需 使 用 <strong>Panel</strong> 库 的 自 定 义 镜 像 。<br />
‣ 若 要 使 用 vzpkg 实 用 程 序 在 <strong>Parallels</strong> Containers 上 安 装 <strong>Panel</strong> 模 板 :<br />
1 从 <strong>Parallels</strong> 网 站 (http://www.parallels.com) 获 取 <strong>Panel</strong> 模 板 , 并 上 传 到<br />
<strong>Parallels</strong> Containers 硬 件 节 点 。<br />
2 执 行 格 式 如 下 的 命 令 安 装 应 用 程 序 模 板 :<br />
vzpkg install template [-q|] ...<br />
其 中<br />
• -q 禁 止 登 录 显 示 器 和 日 志 文 件<br />
-d|--debug 设 置 日 志 级 , 从 0 到 10 例 如 , 下 列 命 令 安 装 <strong>Panel</strong> 的 核 心 和 扩<br />
展 组 件 :<br />
# vzpkg install template<br />
ppsmbe10-debian-5.0-x86-ez-4.0.0-1.prl.284629.noarch.rpm<br />
ppsmbe10-extended-debian-5.0-x86-ez-4.0.0-1.prl.284385.noarch.rpm<br />
‣ 若 要 使 用 自 定 义 镜 像 :<br />
1 若 要 设 置 镜 像 , 参 阅 建 立 Linux/Unix 版 镜 像 章 节 ( 第 23 页 )。<br />
2 在 硬 件 节 点 上 , 编 辑 库 URL 文 件 :
部 署 <strong>Panel</strong> 19<br />
1. 打 开 编 辑 文 件<br />
/vz/template/Linux///config/<br />
app//default/repositories。<br />
即<br />
/vz/template/Linux///config/app/ppsmbe10/<br />
default/repositories 和<br />
/vz/template/Linux///config/app/ppsmbe10-<br />
extended/default/repositories. 若 安 装 了 两 个 模 板 , 则 编 辑 两 个 文 件 。<br />
2. 使 用 镜 像 URL 替 换 相 应 的 <strong>Parallels</strong> 更 新 服 务 器 URL, 并 保 存 文 件 。<br />
3 清 除 或 重 新 获 取 程 序 包 元 数 据 。<br />
使 用 vzpkg clean 命 令 可 执 行 此 操 作 。 如 需 详 情 , 参 阅 <strong>Parallels</strong> Containers for Linux 参<br />
考 指 南 , 位 于 <strong>Parallels</strong> 技 术 社 区 (http://www.parallels.com/ptn/documentation/virtuozzo/)<br />
。<br />
‣ 若 要 创 建 新 Container 并 在 其 中 安 装 <strong>Panel</strong>:<br />
1 创 建 Container, 并 根 据 需 求 配 置 。<br />
执 行 以 下 命 令 :<br />
vzctl create [options]<br />
vzctl set [--save]<br />
其 中<br />
• 定 义 大 于 100 的 唯 一 Container ID, 在 硬 件 节 点 上 唯 一<br />
• --save 选 项 让 vzctl 是 否 将 变 更 保 存 到 Container 配 置 文 件<br />
注 意 : 如 需 有 关 Container 创 建 和 配 置 选 项 的 详 细 信 息 , 参 阅 <strong>Parallels</strong> Containers for<br />
Linux 参 考 指 南 , 位 于 <strong>Parallels</strong> 技 术 社 区<br />
(http://www.parallels.com/ptn/documentation/virtuozzo/)。<br />
如 , 下 面 的 命 令 执 行 :<br />
1. 创 建 Container,ID 为 ,IP 为 192.0.2.44, 基 于 <strong>Parallels</strong> Containers 全 局 配 置 文 件 中<br />
定 义 的 默 认 OS 模 板<br />
2. 设 置 无 法 交 换 的 内 核 内 存 阻 碍 和 限 制 , 专 用 ( 或 潜 在 的 专 用 ) 内 存 , 所 有 Container 进 程 打<br />
开 的 文 件 数 , 以 及 Container 可 分 配 的 磁 盘 空 间 和 磁 盘 inodes( 文 件 、 目 录 、 符 号 链 接 )<br />
总 数<br />
3. 保 存 阻 碍 / 限 制 值 到 Container 配 置 文 件<br />
4. 使 用 Web 浏 览 器 管 理 Container ( 使 用 "--offline_management no" 选 项 阻 止 离 线<br />
管 理 )<br />
注 意 : 请 按 示 例 设 置 此 选 项 。 否 则 无 法 通 过 网 络 浏 览 器 访 问 。<br />
# vzctl create 444 --ipadd 192.0.2.44<br />
# vzctl set 444 --save --kmemsize 24299200:26429120 --privvmpages<br />
362144:392912 --numfile 12000:12000 --diskspace 5117880:5242880<br />
--diskinodes 350000:370000 offline_management no
20 部 署 <strong>Panel</strong><br />
2 启 动 新 近 创 建 的 Container:<br />
# vzctl start <br />
3 将 <strong>Panel</strong> 模 板 安 装 到 Container 中 :<br />
vzpkg install ...<br />
如 , 下 列 命 令 可 以 安 装 <strong>Panel</strong> 核 心 和 附 加 组 件 :<br />
# vzpkg install 444 ppsmbe10 ppsmbe10-extended<br />
‣ 若 要 克 隆 Container:<br />
执 行 格 式 如 下 的 命 令 :<br />
vzmlocal -C {CT List}<br />
{CT List} = :[:[][:]]<br />
[...]<br />
请 指 定 源 Container ID () 和 目 标 Container ID ()。 指 定 目<br />
标 Container 专 用 区 路 径 () 和 根 路 径 () 可 选 ; 它 允 许 您<br />
分 别 覆 盖 默 认 路 径 - /vz/private/ 和 /vz/root/。 如 需 命<br />
令 选 项 详 情 , 参 阅 <strong>Parallels</strong> Containers for Linux 参 考 指 南 , 位 于 <strong>Parallels</strong> 技 术 社 区<br />
(http://www.parallels.com/ptn/documentation/virtuozzo/)。<br />
例 如 , 若 要 使 用 之 前 创 建 的 <strong>Panel</strong> 克 隆 Container:<br />
# vzmlocal -C 444:445
部 署 <strong>Panel</strong> 21<br />
<strong>Parallels</strong> Containers for Windows<br />
‣ 若 要 在 <strong>Parallels</strong> Containers 硬 件 节 点 上 安 装 <strong>Panel</strong>:<br />
1 从 <strong>Parallels</strong> 网 站 (http://www.parallels.com) 获 取 <strong>Panel</strong> 模 板 , 并 上 传 到<br />
<strong>Parallels</strong> Containers 硬 件 节 点 。<br />
2 安 装 <strong>Panel</strong> 的 应 用 程 序 模 板 。 若 是 在 Microsoft Windows Server 2003 上 安 装<br />
, 也 请 执 行 以 下 格 式 的 命 令 安 装 Microsoft .NET Framework v.2.0 或 更 新 版 本<br />
:<br />
vzpkgdeploy [-q|-v] -i <br />
其 中<br />
• -q 禁 止 登 录 显 示 器 和 日 志 文 件<br />
-v 设 置 此 vzpkgdeploy 会 话 的 登 录 级 别 到 最 大 值 例 如 ,<br />
>vzpkgdeploy -i ppsmbe-10.0.0.0-20090707.efb<br />
>vzpkgdeploy -i dotnet2.0_frmwk-2.0.50727.42.efb<br />
注 意 : 仅 有 Windows Server 2003 (PVC 4.0, VZ 3.5.1) 需 安 装 .NET Framework 附 加 模<br />
板 。Windows Server 2008 (PVC 4.5) 不 需 要 。<br />
‣ 若 要 创 建 新 Container 并 在 其 中 安 装 <strong>Panel</strong>:<br />
1 创 建 Container, 并 根 据 需 求 配 置 。<br />
执 行 以 下 命 令 :<br />
vzctl create --pkgset name [options]<br />
vzctl set [--save]<br />
其 中<br />
• 定 义 大 于 100 的 唯 一 Container ID, 在 硬 件 节 点 上 唯 一<br />
• --pkgset name 表 示 要 用 来 创 建 Container 的 OS 模 板<br />
• --save 选 项 让 vzctl 是 否 将 变 更 保 存 到 Container 配 置 文 件<br />
注 意 : 如 需 有 关 Container 创 建 和 配 置 选 项 的 详 细 信 息 , 参 阅 <strong>Parallels</strong> Containers for<br />
Windows 参 考 指 南 , 位 于 <strong>Parallels</strong> 技 术 社 区<br />
(http://www.parallels.com/ptn/documentation/virtuozzo/)。<br />
如 , 下 面 的 命 令 执 行 :<br />
• 创 建 Container,ID 为 444,IP 为 192.0.2.44, 基 于 OS 模 板 w2k3<br />
• 设 置 磁 盘 空 间 限 制 为 4+ Gb, 专 用 空 间 限 制 为 1 Gb, 管 理 员 密 码 为 "P4$$w0rd"<br />
• 使 用 Web 浏 览 器 管 理 Container ( 使 用 "--offline_management no" 选 项 阻 止 离 线<br />
管 理 )<br />
注 意 : 请 按 示 例 设 置 此 选 项 。 否 则 无 法 通 过 网 络 浏 览 器 访 问 <strong>Panel</strong>。<br />
>vzctl create 444 --pkgset w2k3 --ipadd 192.0.2.44
22 部 署 <strong>Panel</strong><br />
>vzctl set 444 --save --diskspace 4500000 --vprvmem 1024 --userpasswd<br />
Administrator:P4$$w0rd --offline_management no<br />
2 启 动 新 近 创 建 的 Container:<br />
>vzctl start <br />
3 安 装 Microsoft .NET framework 2.0 或 以 上 版 本 到 Container 中 :<br />
vzpkgadd <br />
例 如 ,<br />
>vzpkgadd 444 dotnet2.0_frmwk-2.0.50727.42/20070613<br />
4 将 <strong>Parallels</strong> Small Business <strong>Panel</strong> 模 板 安 装 到 Container 中 :<br />
vzpkgadd <br />
例 如 ,<br />
>vzpkgadd 444 ppsmbe-10.0.0.0-20090707<br />
‣ 若 要 克 隆 Container:<br />
执 行 格 式 如 下 的 命 令 :<br />
vzmlocal -C <br />
= :[:] [options]<br />
请 指 定 源 Container ID () 和 目 标 Container ID ()。 指 定 目 标<br />
Container 专 用 区 域 路 径 () 可 选 ; 它 允 许 您 覆 盖<br />
X:\vz\private\ 默 认 路 径 。 如 需 命 令 选 项 详 情 , 参 阅 <strong>Parallels</strong> Containers for<br />
Windows 参 考 指 南 , 位 于 <strong>Parallels</strong> 技 术 社 区<br />
(http://www.parallels.com/ptn/documentation/virtuozzo/)。<br />
例 如 , 若 要 使 用 之 前 创 建 的 <strong>Panel</strong> 克 隆 Container:<br />
>vzmlocal -C 444:445<br />
使 用 Rsync 实 用 程 序 设 置 镜 像<br />
本 章 阐 述 如 何 使 用 Rsync 在 Linux 服 务 器 上 创 建 Linux/Unix 和 Windows 版 <strong>Parallels</strong> Small<br />
Business <strong>Panel</strong> <strong>Parallels</strong> 更 新 服 务 器 本 地 镜 像 。Rsync 是 开 源 实 用 程 序 , 使 用 它 即 可 创 建 支<br />
持 相 应 版 <strong>Panel</strong> 的 镜 像 , 包 括 <strong>Parallels</strong> Containers。<br />
<strong>Parallels</strong> Small Business <strong>Panel</strong> for Linux 库 镜 像 可 支 持 独 立 和 <strong>Parallels</strong> Containers 安 装 ( 取 决<br />
于 镜 像 程 序 包 大 小 )。
部 署 <strong>Panel</strong> 23<br />
建 立 Linux/Unix 分 发 包 镜 像<br />
<strong>Parallels</strong> Small Business <strong>Panel</strong> for Linux/Unix 库 位 于 autoinstall.plesk.com, 结 构 如 下 ( 我 们<br />
只 列 出 建 立 <strong>Panel</strong> 程 序 包 镜 像 相 关 文 件 和 目 录 ):<br />
• _/<br />
根 据 <strong>Panel</strong> 版 本 命 名 多 个 子 目 录 。<br />
子 目 录 介 绍<br />
a<br />
PPSMBE_/<br />
如 ,PPSMBE_10.0.0<br />
其 中 <strong>Panel</strong> 程 序 包 位 于<br />
b SETEMPLATES_/<br />
如 SETEMPLATES_1.0.0<br />
其 中 站 点 编 辑 器 组 件 200+ 站 点 设 计 模 板 程 序 包 所 处 位 置 。 它 是 <strong>Panel</strong> 组 件 而 不 是 一 款<br />
产 品 , 放 入 独 立 产 品 目 录 来 节 省 磁 盘 空 间 和 流 量 。<br />
每 个 子 目 录 包 含 下 列 文 件 :<br />
dist----/ 包 括 <strong>Panel</strong> 分 发 程 序<br />
包 或 设 计 模 板 如 dist-deb-Debian-5.0-x86_64/ 或<br />
dist-deb-Debian-all-all/<br />
update---- 包 含 服 务 器 操 作 系<br />
统 系 统 更 新 ; 是 程 序 包 类 型 。rpm, deb, pkg<br />
thirdparty----/ 包 含 其 他 第<br />
三 方 程 序 包<br />
• _--.inf3<br />
<strong>Parallels</strong> 安 装 程 序 配 置 文 件<br />
如 ppsmbe-10.0.0-suse11.1-x86_64.inf3,<br />
setemplates-1.0.0-deball-all.inf3<br />
• products.inf3<br />
<strong>Parallels</strong> 安 装 程 序 配 置 文 件 描 述 <strong>Panel</strong> 产 品<br />
• ppsmbe.inf3,setemplates.inf3<br />
<strong>Parallels</strong> 安 装 程 序 配 置 文 件 描 述 <strong>Panel</strong> 版 本 和 其 他 组 件<br />
• PPSMBE10/<br />
<strong>Parallels</strong> Small Business <strong>Panel</strong> 元 数 据 用 于 使 用 EZ 模 板 在 <strong>Parallels</strong> Containers 中 安 装<br />
<strong>Panel</strong>。<br />
• debian/,ubuntu/<br />
目 录 apt-get 可 用 来 使 用 EZ 模 板 和 <strong>Parallels</strong> 产 品 安 装 程 序 安 装 <strong>Parallels</strong> 产 品<br />
‣ 若 要 设 置 <strong>Panel</strong> 镜 像 :
24 部 署 <strong>Panel</strong><br />
1 登 录 要 建 立 镜 像 的 服 务 器 。<br />
2 建 立 要 存 放 文 件 的 目 录 。 为 了 演 示 , 我 们 会 调 用 此 目 录<br />
destination_directory/。<br />
3 在 此 目 录 中 创 建 两 个 子 目 录 :debian/ 和 ubuntu/。<br />
4 若 要 设 置 镜 像 , 执 行 下 列 命 令 。<br />
• 此 命 令 可 将 <strong>Parallels</strong> 更 新 库 上 的 /PPSMBE_10.0.0 目 录 下 载 到<br />
destination_directory。<br />
# rsync -au --delete<br />
rsync://rsync.autoinstall.plesk.com/autoinstall/PPSMBE_10.0.0<br />
destination_directory<br />
• 此 命 令 可 将 <strong>Parallels</strong> 更 新 库 上 的 /SETEMPLATES_1.0.0 目 录 下 载 到<br />
destination_directory。<br />
# rsync -au --delete<br />
rsync://rsync.autoinstall.plesk.com/autoinstall/SETEMPLATES_1.0.0<br />
destination_directory<br />
• 这 些 命 令 可 通 过 <strong>Parallels</strong> 安 装 程 序 下 载 <strong>Parallels</strong> Small Business <strong>Panel</strong> 的 Ubuntu 和<br />
Debian 程 序 包 。<br />
# rsync -au --delete<br />
rsync://rsync.autoinstall.plesk.com/autoinstall/debian/PPSMBE_10.0<br />
.0 destination_directory/debian<br />
# rsync -au --delete<br />
rsync://rsync.autoinstall.plesk.com/autoinstall/unbuntu/PPSMBE_10.<br />
0.0 destination_directory/ubuntu<br />
• 这 些 命 令 可 通 过 <strong>Parallels</strong> 安 装 程 序 下 载 用 来 安 装 Ubuntu 和 Debian 程 序 包 的 内 容 。<br />
# rsync -au --delete<br />
rsync://rsync.autoinstall.plesk.com/autoinstall/debian/SETEMPLATES<br />
_1.0.0 destination_directory/debian<br />
# rsync -au --delete<br />
rsync://rsync.autoinstall.plesk.com/autoinstall/unbuntu/SETEMPLATE<br />
S_1.0.0 destination_directory/ubuntu<br />
• 这 些 命 令 可 通 过 <strong>Parallels</strong> Containers EZ 模 板 下 载 用 来 安 装 Ubuntu 和 Debian 程 序 包 的<br />
内 容 。 若 要 设 置 非 <strong>Parallels</strong> Containers 环 境 镜 像 , 略 过 此 步 骤 。<br />
# rsync -au --delete<br />
rsync://rsync.autoinstall.plesk.com/autoinstall/debian/PPSMBE_10.0<br />
.0/ destination_directory/debian/PPSMBE10<br />
# rsync -au --delete<br />
rsync://rsync.autoinstall.plesk.com/autoinstall/ubuntu/PPSMBE_10.0<br />
.0/ destination_directory/ubuntu/PPSMBE10<br />
• 此 命 令 可 用 于 创 建 符 号 链 接 , 使 用 此 链 接 即 可 通 过 <strong>Parallels</strong> Containers EZ 模 板 在 基 于<br />
RPM 的 操 作 系 统 中 安 装 <strong>Panel</strong>。 若 要 设 置 非 <strong>Parallels</strong> Containers 环 境 镜 像 , 略 过 此 步<br />
骤 。<br />
# cd destination_directory; ln -s PPSMBE_10.0.0 PPSMBE10<br />
• 此 命 令 可 下 载 <strong>Parallels</strong> 安 装 程 序 配 置 文 件 。
部 署 <strong>Panel</strong> 25<br />
# rsync -auv --delete<br />
rsync://rsync.autoinstall.plesk.com/'autoinstall/products.inf3<br />
autoinstall/versions.inf3 autoinstall/ppsmbe.inf3<br />
autoinstall/setemplates.inf3' destination_directory<br />
5 编 辑 <strong>Parallels</strong> 安 装 程 序 配 置 文 件 定 义 此 镜 像 支 持 的 产 品 、 版 本 和 平 台 。<br />
1. 编 辑 products.inf3 文 件 移 除 所 有 product 元 素 , 只 保 留 ID ppsmbe<br />
。 若 要 支 持 站 点 编 辑 器 的 其 他 站 点 设 计 模 板 设 置 , 也 略 过 ID 为<br />
setemplates 的 product 元 素 。<br />
2. 编 辑 ppsmbe.inf3 文 件 , 移 除 所 有 build 元 素 , 留 下 镜 像 支 持 的 操 作 系<br />
统 和 架 构 。<br />
3. 编 辑 setemplates.inf3 文 件 , 移 除 所 有 build 元 素 , 留 下 其 他 站 点 编<br />
辑 器 站 点 设 计 模 板 支 持 的 操 作 系 统 和 架 构 。<br />
注 意 : 如 需 有 关 Rsync 实 用 程 序 的 更 多 信 息 , 请 访 问 http://samba.anu.edu.au/rsync/。
26 部 署 <strong>Panel</strong><br />
建 立 Windows 分 发 包 镜 像<br />
<strong>Parallels</strong> Small Business <strong>Panel</strong> for Windows 库 位 于 http://autoinstall-win.parallels.com, 结 构<br />
如 下 ( 我 们 只 列 出 建 立 <strong>Panel</strong> 程 序 包 镜 像 相 关 文 件 和 目 录 ):<br />
• _/<br />
根 据 <strong>Panel</strong> 版 本 命 名 多 个 子 目 录 。<br />
在 此 示 例 中 , 子 目 录 是 PPSMBE-WIN_/, 如 PPSMBE-WIN_10.0.0/<br />
每 个 子 目 录 包 含 下 列 文 件 :<br />
• dist----/<br />
包 括 <strong>Panel</strong> 分 发 程 序 包 或 设 计 模 板 ,<br />
如 dist-msi-Microsoft-2003-i386/<br />
• thirdparty----<br />
其 他 第 三 方 程 序 包<br />
• ppsmbe---.inf3<br />
<strong>Parallels</strong> 安 装 程 序 配 置 文 件<br />
• products.inf3<br />
<strong>Parallels</strong> 安 装 程 序 配 置 文 件 描 述 <strong>Panel</strong> 产 品<br />
• ppsmbe.inf3<br />
<strong>Parallels</strong> 安 装 程 序 配 置 文 件 描 述 <strong>Panel</strong> 版 本 和 其 他 组 件<br />
‣ 若 要 设 置 <strong>Panel</strong> 镜 像 :<br />
1 登 录 要 建 立 镜 像 的 服 务 器 。<br />
2 建 立 要 存 放 文 件 的 目 录 。 为 了 演 示 , 我 们 会 调 用 此 目 录<br />
destination_directory/。<br />
3 若 要 设 置 镜 像 , 执 行 下 列 命 令 。<br />
• 此 命 令 可 将 <strong>Parallels</strong> 更 新 库 上 的 PPSMBE-WIN_10.0.0/ 目 录 下 载 到<br />
destination_directory/。<br />
# rsync -au --delete<br />
rsync://rsync.autoinstall-win.parallels.com/autoinstall/PPSMBE-WIN<br />
_10.0.0 destination_directory<br />
• 此 命 令 可 下 载 <strong>Parallels</strong> 安 装 程 序 配 置 文 件 。<br />
# rsync -auv --delete<br />
rsync://rsync.autoinstall-win.parallels.com/'autoinstall/products.<br />
inf3 autoinstall/ppsmbe.inf3' destination_directory<br />
4 编 辑 <strong>Parallels</strong> 安 装 程 序 配 置 文 件 定 义 此 镜 像 支 持 的 产 品 、 版 本 和 平 台 。<br />
1. 编 辑 products.inf3 文 件 移 除 所 有 product 元 素 , 只 保 留 ID ppsmbe<br />
。 若 要 支 持 站 点 编 辑 器 的 其 他 站 点 设 计 模 板 设 置 , 也 略 过 ID 为<br />
setemplates 的 product 元 素 。
部 署 <strong>Panel</strong> 27<br />
2. 编 辑 ppsmbe.inf3 文 件 , 移 除 所 有 build 元 素 , 留 下 镜 像 支 持 的 操 作 系<br />
统 和 架 构 。<br />
注 意 : 如 需 有 关 Rsync 实 用 程 序 的 更 多 信 息 , 请 访 问 http://samba.anu.edu.au/rsync/。
第 4 章<br />
安 装 操 作 概 要<br />
本 章 简 要 阐 述 <strong>Parallels</strong> Small Business <strong>Panel</strong> 交 付 中 安 装 阶 段 的 操 作 。<br />
本 章 按 照 执 行 顺 序 分 别 介 绍 各 个 操 作 。<br />
本 章 内 容 :<br />
初 始 化 <strong>Panel</strong> ..................................................................................................... 29<br />
安 装 许 可 证 ........................................................................................................ 29<br />
定 义 <strong>Panel</strong> 徽 标 ................................................................................................. 30<br />
配 置 DNS .......................................................................................................... 31<br />
安 装 SSL 证 书 ................................................................................................... 32<br />
创 建 站 点 及 子 站 点 .............................................................................................. 33<br />
安 装 应 用 程 序 ..................................................................................................... 34<br />
定 义 可 用 的 APS 目 录 ........................................................................................ 36
安 装 操 作 概 要 29<br />
初 始 化 <strong>Panel</strong><br />
<strong>Panel</strong> 安 装 后 首 先 要 执 行 的 操 作 是 初 始 化 。 禁 止 在 <strong>Panel</strong> GUI 或 通 过 API 执 行 任 何 操 作 。<br />
初 始 化 配 置 下 列 <strong>Panel</strong> 设 置 :<br />
• 管 理 员 的 电 子 邮 件<br />
• 管 理 员 新 密 码 , 不 是 默 认 密 码<br />
• ( 可 选 ) <strong>Panel</strong> 语 言<br />
若 在 <strong>Panel</strong> 初 始 化 中 未 设 置 语 言 , 则 会 使 用 默 认 的 美 国 英 语 (en-US)。<br />
<strong>Panel</strong> 管 理 员 可 稍 后 更 改 界 面 语 言 ( 安 装 所 需 语 言 组 件 ( 第 11 页 ))。<br />
快 速 链 接<br />
使 用 远 程 API 安 装 <strong>Panel</strong> ( 第 68 页 )<br />
使 用 CLI 初 始 化 <strong>Panel</strong> ( 第 162 页 )<br />
安 装 许 可 证<br />
<strong>Panel</strong> 分 发 版 随 附 支 持 有 限 用 户 帐 户 的 默 认 许 可 证 。 您 需 获 取 并 安 装 满 足 用 户 需 求 的 许 可 证 。<br />
除 定 义 <strong>Panel</strong> 主 要 功 能 的 主 许 可 证 之 外 , 也 可 安 装 附 加 许 可 证 , 即 可 使 用 <strong>Panel</strong> 加 载 项 , 如<br />
Dr.Web 防 病 毒 解 决 方 案 。<br />
快 速 链 接<br />
使 用 远 程 API 安 装 许 可 证 ( 第 71 页 )<br />
使 用 CLI 安 装 许 可 证 ( 第 163 页 )
30 安 装 操 作 概 要<br />
定 义 <strong>Panel</strong> 徽 标<br />
<strong>Panel</strong> 交 付 范 围 内 的 <strong>Panel</strong> 商 标 信 息 :<br />
• <strong>Panel</strong> 徽 标 类 型 图 像 和 URL<br />
• 支 持 按 钮 链 接<br />
注 意 :CLI 中 支 持 两 者 。<br />
徽 标<br />
<strong>Panel</strong> 徽 标 类 型 显 示 在 <strong>Panel</strong> 左 上 角 。 默 认 是 141*29 像 素 的 GIF 图 像 ,<strong>Parallels</strong> Small<br />
Business <strong>Panel</strong> 产 品 徽 标 类 型 , 点 击 它 即 可 打 开 <strong>Parallels</strong> 网 站 。 可 更 改 默 认 徽 标 图 像 和 URL。<br />
支 持<br />
支 持 按 钮 位 于 <strong>Panel</strong> 管 理 员 可 以 使 用 的 设 置 选 项 卡 上 。 默 认 情 况 下 , 点 击 按 钮 即 可 打 开 <strong>Parallels</strong><br />
网 站 上 的 技 术 支 持 请 求 表 单 , 假 定 由 管 理 员 完 成 和 提 交 。<br />
若 要 向 客 户 提 供 技 术 支 持 , 单 击 支 持 按 钮 即 可 更 改 URL。<br />
快 速 链 接<br />
使 用 CLI 建 立 <strong>Panel</strong> 徽 标 ( 第 164 页 )
安 装 操 作 概 要 31<br />
配 置 DNS<br />
安 装 在 DNS 服 务 器 上 , 该 DNS 服 务 器 设 置 成 用 于 创 建 站 点 和 托 管 <strong>Panel</strong> 的 主<br />
控 域 名 服 务 器 。 配 置 <strong>Panel</strong> 时 , 即 可 停 用 DNS 服 务 , 或 按 照 需 求 进 行 配 置 。<br />
若 您 的 工 作 环 境 中 域 名 服 务 器 设 置 成 服 务 多 个 托 管 的 域 名 , 且 安 装 了 <strong>Panel</strong>, 则 无 需 独 立 的 DNS<br />
服 务 器 。 在 <strong>Parallels</strong> Containers 环 境 中 , 安 装 <strong>Panel</strong> 的 Container 中 ,DNS 服 务 器 运 行 需 消 耗<br />
稍 多 资 源 , 即 可 降 低 主 机 环 境 的 密 度 。<br />
若 要 让 <strong>Panel</strong> 管 理 的 站 点 DNS 区 域 由 远 程 DNS 服 务 器 服 务 , 配 置 <strong>Panel</strong> 实 例 时 停 用 DNS 服<br />
务 。 客 户 若 确 定 站 点 由 本 地 DNS 服 务 器 支 持 , 也 可 稍 后 启 用 。<br />
若 要 让 <strong>Panel</strong> 管 理 的 站 点 由 本 地 DNS 服 务 支 持 , 则 可 通 过 合 适 方 式 修 改 DNS 区 域 。<br />
<strong>Panel</strong> 提 供 可 自 定 义 的 DNS 区 域 模 板 , 包 含 DNS SOA 模 板 和 其 他 资 源 记 录 。 创 建 站 点 帐 户 时 ,<br />
基 于 此 模 板 创 建 其 DNS 区 域 。 若 要 设 置 <strong>Panel</strong> 管 理 站 点 的 DNS 区 域 , 只 需 编 辑 DNS 区 域 模<br />
板 。<br />
快 速 链 接<br />
使 用 远 程 API 配 置 DNS ( 第 77 页 )<br />
使 用 CLI 配 置 DNS ( 第 165 页 )<br />
更 改 SOA 记 录 模 板<br />
SOA 记 录 的 <strong>Panel</strong> 模 板 允 许 更 改 下 列 记 录 字 段 :<br />
• ttl ( 生 效 时 间 )<br />
• 刷 新<br />
• 重 试<br />
• 过 期<br />
• 最 小<br />
• ( 仅 限 Unix CLI) sn (= 序 列 号 ) 格 式<br />
区 域 序 列 号 格 式 :yyyymmdd 或 Unix 时 间 戳
32 安 装 操 作 概 要<br />
设 置 资 源 记 录 模 板<br />
DNS 区 域 的 <strong>Panel</strong> 模 板 支 持 下 列 资 源 记 录 类 型 :<br />
• A<br />
• NS<br />
• CNAME<br />
• MX<br />
• PTR<br />
• TXT<br />
• AXFR<br />
• SRV<br />
安 装 SSL 证 书<br />
在 站 点 上 使 用 安 全 套 接 字 层 协 议 需 先 安 装 SSL 证 书 。<br />
在 <strong>Panel</strong> 中 ,SSL 证 书 通 过 IP 地 址 连 接 到 站 点 : 证 书 分 配 到 IP 地 址 , 访 问 该 IP 托 管 的 站 点 时<br />
会 用 到 此 证 书 。 实 际 上 , 通 过 https 访 问 该 IP 上 托 管 的 站 点 时 会 用 到 此 证 书 。<br />
安 装 SSL 证 书 意 味 着 将 证 书 导 入 到 <strong>Panel</strong> 并 分 配 IP 地 址 给 它 。 若 在 此 类 IP 上 创 建 站 点 帐 户 ,<br />
则 会 自 动 启 用 "SSL 支 持 ", 安 装 的 证 书 用 于 访 问 站 点 。<br />
快 速 链 接<br />
使 用 远 程 API 安 装 SSL 证 书 ( 第 99 页 )<br />
使 用 CLI 安 装 SSL 证 书 ( 第 170 页 )
安 装 操 作 概 要 33<br />
创 建 站 点 及 子 站 点<br />
站 点<br />
<strong>Parallels</strong> Small Business <strong>Panel</strong> 中 新 型 的 站 点 和 子 站 点 创 建 与 配 置 流 程 简 单 且 轻 松 。 创 建 站 点<br />
或 子 站 点 时 , 请 指 定 最 基 本 的 主 机 参 数 , 其 他 主 机 设 置 会 自 动 完 成 。<br />
因 此 , 若 要 创 建 站 点 , 请 指 定 下 列 函 数 :<br />
• 域 名<br />
• IP 地 址<br />
若 IP 地 址 与 SSL 证 书 关 联 ( 第 32 页 ), 则 会 自 动 启 用 使 用 此 IP 创 建 站 点 的 SSL 支 持 。<br />
• 要 求 的 虚 拟 主 机 属 性 : 用 来 上 传 网 站 内 容 的 FTP 帐 户 登 录 名 和 密 码 。<br />
在 站 点 上 安 装 Web 应 用 程 序 时 ,<strong>Panel</strong> 会 自 动 设 置 应 用 程 序 所 需 的 所 有 服 务 。 因 此 必 须 在<br />
站 点 创 建 过 程 中 指 定 IP 地 址 、FTP 登 录 名 和 密 码 。<br />
快 速 链 接<br />
使 用 远 程 API 创 建 站 点 ( 第 105 页 )<br />
使 用 CLI 创 建 站 点 ( 第 172 页 )<br />
子 站 点<br />
创 建 子 站 点 时 , 至 少 要 指 定 子 站 点 和 主 站 点 的 前 缀 名 。<br />
子 站 点 内 容 通 常 位 于 站 点 虚 拟 主 机 的 /httpdocs/subdomains/subdomain-name 目 录 中 。<br />
Windows 版 <strong>Panel</strong> 支 持 子 文 件 夹 中 的 子 站 点 - 子 站 点 映 射 到 /httpdocs 文 件 夹 中 的 任 何 目 录<br />
。 若 要 让 安 装 的 Web 应 用 程 序 可 作 为 子 站 点 访 问 , 此 站 点 会 很 有 用 。 如 ,WordPress 应 用 程<br />
序 可 通 过 类 似 http://domain-name/URL-prefix 的 URL 访 问 , 也 就 是<br />
http://example.com/WordPress。 若 有 子 站 点 在 子 文 件 夹 中 , 则 可 通 过<br />
http://blog.example.com 访 问 。<br />
• 若 要 创 建 常 规 子 站 点 , 指 定 主 站 点 名 、 子 站 点 名 和 子 站 点 主 机 属 性 。<br />
注 意 : 默 认 情 况 下 , 通 过 主 站 点 的 同 一 FTP 帐 户 即 可 访 问 子 站 点 内 容 。 因 此 , 指 定 FTP 帐<br />
户 属 性 是 可 选 项 , 仅 当 需 要 访 问 子 站 点 内 容 的 FTP 帐 户 时 才 需 要 指 定 。<br />
• 若 要 在 子 文 件 夹 中 创 建 子 站 点 ( 仅 有 Windows 支 持 ), 指 定 主 站 点 名 / 子 站 点 名 , 以 及 要 创 建<br />
子 站 点 的 文 件 夹 路 径 。<br />
注 意 : 对 于 子 文 件 夹 的 子 站 点 , 无 法 创 建 独 立 的 FTP 用 户 帐 户 : 会 用 户 主 站 点 / 子 站 点 的 FTP<br />
用 户 帐 户 。
34 安 装 操 作 概 要<br />
快 速 链 接<br />
使 用 远 程 API 创 建 子 站 点 ( 第 110 页 )<br />
使 用 CLI 创 建 子 站 点 ( 第 172 页 )<br />
安 装 应 用 程 序<br />
<strong>Parallels</strong> Small Business <strong>Panel</strong> 支 持 APS 应 用 程 序 。 这 些 是 按 APS - 应 用 程 序 交 付 标 准<br />
(http://www.apsstandard.org/) 打 包 的 Web 应 用 程 序 , 将 SaaS 模 式 推 向 主 机 页 。<br />
术 语 应 用 程 序 包 - 以 APS 格 式 打 包 的 Web 应 用 程 序 zip 存 档 。 与 应 用 程 序 不 同 , 它 从 程 序 包<br />
直 接 安 装 。<br />
在 站 点 或 子 站 点 上 安 装 应 用 程 序 分 两 步 完 成 :<br />
1 获 取 应 用 程 序 包 , 并 导 入 <strong>Panel</strong>。<br />
2 在 站 点 或 子 站 点 上 从 程 序 包 安 装 应 用 程 序 。<br />
快 速 链 接<br />
使 用 远 程 API 安 装 应 用 程 序 ( 第 117 页 )<br />
使 用 远 程 CLI 安 装 应 用 程 序 ( 第 175 页 )<br />
导 入 应 用 程 序 包<br />
有 两 种 方 法 可 获 取 并 导 入 应 用 程 序 包 :<br />
• 通 常 是 自 行 创 建 的 程 序 包 , 手 动 上 传 到 安 装 <strong>Panel</strong> 的 主 机 上 , 并 手 动 导 入 到 <strong>Panel</strong>。<br />
下 载 程 序 包 , 并 自 动 从 APS 目 录 导 入 到 <strong>Panel</strong> ( 提 供 应 用 程 序 包 远 程 存 储 的 网 络 服 务 )。 即<br />
可 一 次 性 下 载 并 导 入 多 个 应 用 程 序 ,<strong>Panel</strong> 支 持 下 载 状 态 追 踪 。<br />
<strong>Panel</strong> 支 持 从 多 个 APS 目 录 实 例 获 取 应 用 程 序 包 。 可 用 的 APS 目 录 在 APS 目 录 配 置 文 件 ( 第 36<br />
页 ) 中 有 定 义 , 可 自 定 义 来 满 足 特 定 主 机 环 境 中 的 <strong>Panel</strong> 示 例 需 要 。
安 装 操 作 概 要 35<br />
安 装 应 用 程 序<br />
安 装 应 用 程 序 后 , 请 指 定 下 列 内 容 :<br />
• 安 装 应 用 程 序 的 应 用 程 序 包 位 置 。<br />
按 名 称 - 版 本 - 发 行 号 信 息 或 程 序 包 ID 分 类 。 检 索 可 用 程 序 包 即 可 获 得 这 些 数 据 。 在 详 细 应 用<br />
程 序 包 列 表 中 检 索 到 可 用 程 序 包 结 果 导 入 到 <strong>Panel</strong>, 包 括 所 需 标 识 符 。<br />
• 目 标 站 点 或 子 站 点 。<br />
• 安 装 属 性 。<br />
这 些 是 特 定 应 用 程 序 , 也 可 以 是 没 有 任 何 安 装 属 性 或 设 置 的 应 用 程 序 。<strong>Panel</strong> API 不 支 持 应<br />
用 程 序 设 置 信 息 的 获 取 , 请 使 用 APS 目 录 API<br />
(http://www.apsstandard.org/r/doc/aps-catalog-1.1-api/index.htm) 或 分 析 程 序 包 元 数 据 文<br />
件 来 获 取 。 如 需 有 关 APS 格 式 技 术 规 格 中 的 APS 格 式 的 更 多 信 息 , 请 访 问<br />
http://www.apsstandard.org/providers/documentation/。
36 安 装 操 作 概 要<br />
定 义 可 用 的 APS 目 录<br />
列 出 配 置 文 件 中 定 义 的 APS 目 录 , 可 用 于 :<br />
1 通 过 <strong>Panel</strong> API 直 接 从 这 些 目 录 将 应 用 程 序 安 装 到 站 点 上 。<br />
注 意 : 从 APS 目 录 安 装 应 用 程 序 不 可 能 没 有 列 出 在 配 置 文 件 中 。<br />
2 <strong>Panel</strong> 用 户 可 以 从 应 用 程 序 & 脚 本 屏 幕 看 到 这 些 目 录 , 用 户 可 以 自 行 安 装 应 用 程 序 。<br />
APS 目 录 由 服 务 生 成 名 称 , 格 式 如 下 :<br />
• APS 目 录 位 于 apscatalog.com (http://apscatalog.com)。<strong>Parallels</strong> 正 式 支 持 APS 目 录 服 务<br />
。<br />
• 自 定 义 APS 目 录 , 服 务 的 本 地 镜 像 部 署 到 主 机 环 境 中 , 并 提 供 特 定 应 用 程 序 的 访 问 。<br />
如 需 有 关 如 何 实 施 APS 目 录 本 地 镜 像 的 信 息 , 请 参 阅 APS 标 准 官 方 网 站 文 档<br />
http://www.apsstandard.org/providers/documentation/。<br />
下 列 情 况 下 , 需 定 义 APS 目 录 :<br />
a 配 置 <strong>Panel</strong> 时 , 您 可 能 需 要 从 自 定 义 的 APS 目 录 安 装 应 用 程 序 。<br />
在 此 情 况 下 , 需 添 加 目 录 项 目 到 配 置 文 件 中 。<br />
b 您 可 能 需 <strong>Panel</strong> 用 户 访 问 自 定 义 APS 目 录 , 而 不 是 <strong>Panel</strong> 默 认 提 供 的 项 目 。<br />
在 此 情 况 下 , 需 添 加 目 录 项 目 到 配 置 文 件 中 , 可 以 移 除 现 有 项 目 。<br />
c 您 可 能 不 希 望 <strong>Panel</strong> 用 户 访 问 任 何 APS 目 录 。<br />
在 此 情 况 下 , 需 从 配 置 文 件 中 移 除 所 有 项 目 。<br />
若 要 更 改 可 用 APS 目 录 列 表 , 请 执 行 下 列 操 作 :<br />
1 按 需 要 修 改 APS 目 录 样 本 ( 第 37 页 )。<br />
2 导 入 配 置 文 件 到 <strong>Panel</strong> 中 。<br />
快 速 链 接<br />
使 用 远 程 API 定 义 可 用 的 APS 目 录 ( 第 115 页 )<br />
使 用 CLI 定 义 可 用 的 APS 目 录 ( 第 174 页 )
安 装 操 作 概 要 37<br />
APS 目 录 配 置 文 件<br />
APS 目 录 配 置 文 件 是 格 式 如 下 的 配 置 文 件 :<br />
[apscatalog]<br />
; 作 为 内 部 标 识 符 服 务 APS 应 用 程 序 资 源 的 关 键 字 。<br />
type = apscatalog<br />
;APS 应 用 程 序 资 源 类 型 定 义 , 可 以 是 商 城 或 apscatalog<br />
; 商 城 是 用 于 表 示 应 用 程 序 商 城 服 务 的 类 型<br />
;apscatalog 是 可 用 于 任 何 APS 目 录 的 一 般 类 型 ( 正 式 APS 目 录 服 务 和 本 地 镜 像 )<br />
url = http://apscatalog.com<br />
;APS 应 用 程 序 资 源 URL<br />
[marketplace]<br />
type = marketplace<br />
url = http://catalog.marketplace.parallels.com<br />
protocol = all-app<br />
[APSCatalogLocalMirror]<br />
type = apscatalog<br />
name.en-US = "APS Catalog (local)"<br />
;APS 应 用 程 序 资 源 标 题 会 显 示 在 相 应 语 言 的 <strong>Panel</strong> GUI 中<br />
description.en-US = "Local instance of APS catalog"<br />
;APS 应 用 程 序 资 源 描 述 会 显 示 在 相 应 语 言 的 <strong>Panel</strong> GUI 中<br />
url = apscatalog.example.com<br />
若 要 更 改 <strong>Panel</strong> 用 户 可 用 的 APS 目 录 , 编 辑 配 置 文 件 并 导 入 到 <strong>Panel</strong>。
第 5 章<br />
通 过 远 程 API 设 置<br />
本 章 阐 述 如 何 通 过 <strong>Panel</strong> 的 远 程 API 设 置 <strong>Panel</strong>。<br />
使 用 远 程 API 章 节 ( 第 39 页 ) 包 括 API RPC 协 议 概 要 和 用 于 通 过 协 议 与 <strong>Panel</strong> 管 理 的 服<br />
务 器 通 讯 的 工 具 样 本 。<br />
设 置 <strong>Panel</strong> 章 节 ( 第 68 页 ) 描 述 第 三 方 工 具 应 执 行 <strong>Panel</strong> 设 置 操 作 的 请 求 信 息 详 情 , 以 及<br />
从 每 个 操 作 返 回 的 响 应 信 息 。<br />
本 章 内 容 :<br />
使 用 远 程 API ..................................................................................................... 39<br />
设 置 <strong>Panel</strong> ......................................................................................................... 68
通 过 远 程 API 设 置 39<br />
使 用 远 程 API<br />
本 章 阐 述 <strong>Panel</strong> 远 程 API 的 定 义 、 操 作 , 以 及 如 何 创 建 通 过 远 程 API 与 <strong>Panel</strong> 通 讯 的 客 户 端 应<br />
用 程 序 。<br />
关 于 远 程 API<br />
若 要 支 持 <strong>Panel</strong> 与 第 三 方 软 件 之 间 的 通 讯 ,<strong>Panel</strong> 提 供 基 于 XML 的 API。 此 界 面 包 括 管 理 <strong>Panel</strong><br />
逻 辑 对 象 的 功 能 设 置 。API RPC 协 议 可 以 远 程 调 用 API 功 能 。 此 XML-over-HTTP 协 议 通 过 指<br />
定 格 式 的 数 据 包 交 换 数 据 。<br />
<strong>Panel</strong> 与 第 三 方 软 件 之 间 的 互 动 基 于 客 户 端 服 务 器 编 程 模 式 。<br />
表 1: <strong>Parallels</strong> <strong>Panel</strong> 与 第 三 方 客 户 软 件 之 间 的 通 讯<br />
服 务 器 部 分 由 <strong>Panel</strong> API RPC 服 务 器 代 表 ( 以 下 称 为 此 服 务 器 ),<strong>Panel</strong> 的 一 部 分 。 客 户 端 软<br />
件 应 由 第 三 方 创 建 。 通 讯 场 景 如 下 :<br />
1 客 户 端 应 用 程 序 组 成 了 基 于 XML 的 请 求 数 据 包 ( 以 下 称 为 API RPC 数 据 包 或 此 数 据 包 ),<br />
添 加 标 准 HTTP 标 头 , 并 发 送 给 服 务 器 。<br />
2 服 务 器 接 收 数 据 包 , 验 证 数 据 包 , 并 调 用 内 容 <strong>Panel</strong> 功 能 执 行 所 需 操 作 。<br />
3 服 务 器 发 回 响 应 数 据 包 , 包 括 所 执 行 操 作 的 详 细 信 息 。<br />
4 客 户 接 收 到 结 果 数 据 包 ( 操 作 状 态 、 可 能 的 错 误 信 息 或 操 作 参 数 ) 并 检 索 信 息 。<br />
通 讯 终 止 。<br />
支 持 的 API 版 本<br />
当 前 版 <strong>Panel</strong> 仅 支 持 1.6.2.0 版 API RPC 协 议 。
40 通 过 远 程 API 设 置<br />
API RPC 数 据 包<br />
API RPC 数 据 包 是 包 含 在 HTTP 邮 件 正 文 中 的 简 易 XML 文 件 。<br />
区 别 下 面 两 种 数 据 包 :<br />
• 申 请 数 据 包 - 客 户 端 软 件 通 过 远 程 API 发 送 给 服 务 器<br />
• 响 应 数 据 包 - 服 务 器 发 给 客 户<br />
数 据 包 结 构<br />
响 应 数 据 包 包 含 所 请 求 操 作 的 执 行 状 态 , 若 操 作 失 败 , 还 会 包 含 错 误 信 息 。<br />
区 分 下 列 两 个 API RPC 数 据 包 组 件 :<br />
1 HTTP 标 头 - 传 送 部 分 。 除 标 准 信 息 之 外 , 还 需 包 含 要 在 其 中 执 行 操 作 的 服 务 器 数 据 , 以 及<br />
<strong>Panel</strong> 管 理 员 凭 据 。<br />
2 数 据 包 标 头 指 定 API RPC 协 议 版 本 。<br />
3 数 据 包 内 容 定 义 服 务 器 要 执 行 的 操 作 。<br />
数 据 包 内 容 结 构 如 下 :<br />
<br />
<br />
…<br />
...<br />
…<br />
…<br />
<br />
<br />
本 示 例 展 示 数 据 包 内 容 的 基 本 结 构 , 内 含 一 个 [operator] 元 素 和 一 个 [operation] 元 素 。 在 特<br />
定 实 施 中 , 标 签 [operator]、[operation]、[parameter] 会 被 真 正 的 运 算 子 、 操 作 和 参 数 替 换 。<br />
注 意 : 一 个 运 算 子 中 有 多 个 操 作 区 , 多 个 操 作 区 位 于 一 个 数 据 包 中 。<br />
一 下 ,XML 数 据 包 标 题 和 内 容 统 称 为 数 据 包 。
通 过 远 程 API 设 置 41<br />
数 据 包 实 例<br />
此 为 发 送 给 服 务 器 的 申 请 API RPC 消 息 :<br />
POST<br />
/enterprise/control/agent.php<br />
HTTP/1.1<br />
主 机 :10.58.83.1:8443<br />
接 受 :*/*<br />
HTTP_AUTH_LOGIN:admin<br />
HTTP_AUTH_PASSWD: 设 置<br />
Pragma:no-cache<br />
Content-Length:1398<br />
Content-Type:text/xml<br />
<br />
<br />
HTTP 标 头<br />
HTTP 标 头 表 示 在 POST 中 使 用 HTTP 方 式 , 处 理 代 理<br />
位 于 /enterprise/control/agent.php, ,TTP<br />
版 本 是 1.1。 主 机 元 素 指 消 息 相 关 的 <strong>Panel</strong> 服 务 器 IP 地<br />
址 和 端 口 。HTTP_AUTH_LOGIN 和<br />
HTTP_AUTH_PASSWD 元 素 是 <strong>Panel</strong> 管 理 员 凭 证 。<br />
Content-Type 必 须 是 "text/xml"。 消 息 长 度 也 有 限 制<br />
。<br />
XML 部 分 开 头<br />
数 据 包 标 题<br />
版 本 属 性 指 定 <strong>Panel</strong> API RPC 协 议 所 需 的 版 本 。<br />
<br />
<br />
P4$$w0rd<br />
johndoe@example.com<br />
de-DE<br />
<br />
<br />
<br />
数 据 包 内 容<br />
从 相 关 运 算 子 标 签 开 始 。<br />
特 定 数 据 包 使 用 smb 运 算 子 来 初 始 化 新 近 安 装 的 <strong>Panel</strong><br />
软 件 。initial_setup 节 点 上 的 元 素 包 括 初 始 化 <strong>Panel</strong> 所 需<br />
的 数 据 :<strong>Panel</strong> 管 理 员 的 邮 件 和 密 码 , 以 及 面 板 语 言 。<br />
关 闭 数 据 包 的 追 踪 标 签<br />
请 求 数 据 包 和 响 应 数 据 包 结 构 类 似 , 但 它 们 的 HTTP 标 头 和 内 容 不 同 。 服 务 器 响 应 请 求 发 出 的<br />
消 息 类 似 :<br />
HTTP/1.1 200 OK<br />
Transfer-Encoding:chunked<br />
Content-type:text/html<br />
日 期 :Fri, 03 Apr 2009 18:54:56 GMT<br />
服 务 器 :sw-cp-server/1.0.0<br />
<br />
HTTP 服 务 器 响 应 标 准 标 头<br />
MIME 类 型 是 text/xml。 服 务 器 元 素 显 示 服 务 器 上 <strong>Panel</strong><br />
处 理 的 请 求 。<br />
有 效 XML 文 件 标 准 标 头
42 通 过 远 程 API 设 置<br />
<br />
<br />
<br />
<br />
ok<br />
<br />
<br />
<br />
<br />
XML 数 据 包 标 头<br />
数 据 包 内 容<br />
数 据 包 内 容 的 根 节 点 是 smb 运 算 子 。<br />
下 列 行 表 示 <strong>Panel</strong> 初 始 化 成 功 。<br />
关 闭 数 据 包 的 追 踪 标 签<br />
数 据 包 验 证<br />
<strong>Panel</strong> API RPC 服 务 器 处 理 成 代 理 设 置 - 或 运 算 子 - 由 代 理 工 具 管 理 。 每 个 代 理 的 逻 辑 区 处 理<br />
特 定 数 量 的 命 令 , 代 理 工 具 作 为 数 据 包 分 离 器 工 作 。<br />
此 外 , 代 理 工 具 与 多 个 XML 计 划 文 件 设 置 相 关 。 每 个 设 置 与 特 定 的 API RPC 版 本 相 关 。 每 个<br />
版 本 的 进 入 点 在 agent_input.xsd 文 件 中 包 含 同 一 版 本 的 所 有 输 入 计 划 参 考 。<br />
<strong>Panel</strong> API RPC 服 务 器 功 能 如 下 : 首 个 XML 数 据 包 , 其 HTTP 标 题 删 除 , 转 到 代 理 工 具 。 代 理<br />
工 具 从 数 据 包 标 头 检 索 API RPC 版 本 , 选 择 合 适 的 XML 模 板 , 并 切 换 到 正 确 的<br />
agent_input.xsd 模 板 。 使 用 正 确 的 数 据 包 的 运 算 子 级 别 , 此 模 板 验 证 数 据 包 的 运 算 子 级 别 。<br />
表 2: 服 务 器 验 证 数 据 包<br />
若 数 据 包 被 视 为 无 效 , 代 理 工 具 将 错 误 报 告 发 送 给 客 户 。 若 数 据 包 的 所 有 元 素 验 证 成 功 , 代 理<br />
工 具 检 查 是 否 所 有 的 代 理 模 块 需 要 进 一 步 处 理 , 并 按 顺 序 调 用 。<br />
调 用 的 每 个 代 理 ( 运 算 子 ) 接 收 到 运 算 子 数 据 包 部 分 , 解 析 并 调 用 内 部 功 能 , 并 将 命 令 执 行 结 果 返<br />
回 到 代 理 工 具 。
通 过 远 程 API 设 置 43<br />
创 建 客 户 软 件<br />
客 户 应 用 程 序 应 实 施 下 列 数 据 交 换 :<br />
• 转 换 请 求 的 命 令 到 API RPC XML 数 据 包<br />
• 准 备 通 过 HTTP 交 付 数 据 包 , 并 发 送 给 <strong>Panel</strong><br />
• 从 <strong>Panel</strong> 接 收 响 应 , 并 从 数 据 包 获 取 结 果 信 息<br />
表 3: 客 户 端 应 用 程 序 结 构<br />
上 图 显 示 客 户 应 用 程 序 结 构 , 以 及 此 结 构 如 何 处 理 数 据 。 样 本 应 用 程 序 的 每 个 模 块 处 理 特 定 任<br />
务 :<br />
1 XML 数 据 包 创 建 器 从 应 用 程 序 GUI 或 第 三 方 模 块 接 受 命 令 。XML 数 据 包 创 建 器 包 含 每 个 已<br />
知 命 令 的 XML 命 令 转 换 器 。 最 终 XML 数 据 包 格 式 与 客 户 应 用 程 序 支 持 的 API RPC 版 本 完<br />
全 兹 容 。<br />
2 HTTP 数 据 包 发 送 器 接 受 XML 数 据 包 。 此 数 据 包 不 包 含 目 标 服 务 器 相 关 的 任 何 信 息 和 访 问<br />
详 情 , 因 此 HTTP 数 据 包 发 送 者 可 以 存 放 这 些 设 置 , 或 按 需 要 取 用 。HTTP 数 据 包 发 送 器 在<br />
<strong>Panel</strong> 用 户 登 录 凭 据 中 加 入 HTTP 标 题 , 并 通 过 API RPC 协 议 将 数 据 包 发 送 给 <strong>Panel</strong> API<br />
RPC 服 务 器 。<br />
3 HTTP 数 据 包 接 收 器 从 服 务 器 获 取 最 终 HTTP 数 据 包 , 删 除 HTTP 标 题 , 并 移 动 XML 响 应<br />
到 XML 数 据 包 解 析 器 。<br />
4 XML 数 据 包 解 析 器 分 析 响 应 XML 数 据 包 的 执 行 状 态 , 若 结 果 为 负 则 会 生 成 错 误 消 息 。 然 后<br />
将 提 取 和 处 理 的 数 据 返 回 给 GUI 或 调 用 模 块 。<br />
上 图 显 示 HTTP 操 作 部 分 的 HTTP 库 。 这 些 操 作 可 从 头 进 行 , 较 快 的 方 法 是 使 用 就 绪 并 经 过 测<br />
试 的 HTTP 库 。 分 开 HTTP 发 送 器 和 HTTP 接 收 器 是 有 条 件 的 : 仅 当 需 要 分 开 发 送 和 接 收 HTTP<br />
图 形 操 作 时 才 执 行 此 操 作 。
44 通 过 远 程 API 设 置<br />
创 建 申 请 数 据 包<br />
请 求 API RPC 数 据 包 , 客 户 从 GUI 或 软 件 模 块 获 取 命 令 对 一 或 多 个 <strong>Panel</strong> 对 象 执 行 操 作 。 此<br />
应 用 程 序 会 将 请 求 的 命 令 转 换 成 与 <strong>Panel</strong> XML API 兹 容 的 XML 数 据 包 格 式 。<br />
若 要 实 施 XML 数 据 包 转 换 器 命 令 , 了 解 API RPC 架 构 , 以 及 如 何 通 过 <strong>Panel</strong> 服 务 器 处 理 ( 第 40<br />
页 )。<br />
若 要 添 加 创 建 的 请 求 数 据 包 验 证 到 转 换 器 , 从 <strong>Panel</strong> 安 装 即 使 用 XML 模 板 文 件 设 置 :<br />
PRODUCT_ROOT_D/admin/htdocs/schemas/rpc/1.6.2.0 - Linux/Unix 其 中<br />
PRODUCT_ROOT_D 定 义 <strong>Panel</strong> 安 装 目 录 。<br />
%plesk_dir%\admin\htdocs\schemas\rpc\1.6.2.0 - Windows 其 中 %plesk_dir%<br />
定 义 <strong>Panel</strong> 安 装 目 录 。 确 定 使 用 agent_input.xsd 作 为 验 证 输 入 点 。
通 过 远 程 API 设 置 45<br />
发 送 请 求 信 息<br />
<strong>Panel</strong> API RPC 数 据 包 就 绪 后 , 应 删 除 HTTP 标 头 , 并 发 送 到 指 定 服 务 器 。 若 要 执 行 这 些 任 务 ,<br />
建 议 使 用 HTTP/FTP 客 户 库 。 本 章 阐 述 如 何 使 用 CURL 在 PHP 中 完 成 此 操 作 - PHP 4.0.2 或<br />
更 高 版 本 支 持 的 免 费 、 开 源 客 户 端 URL 传 输 库 。<br />
若 要 建 立 HTTP 标 题 ,CURL 工 具 需 要 下 列 参 数 :<br />
• 目 标 服 务 器 URL 格 式 如 下 :<br />
定 义 (‘HOST’, ’10.58.97.81’);<br />
定 义 (‘PORT’, 8443);<br />
定 义 (‘PATH’, ’enterprise/control/agent.php’);<br />
…<br />
$url = ‘https://’ .HOST .‘:’ . PORT .‘/’ . PATH;<br />
• 标 题 元 素 队 列 如 下 :<br />
$headers = array(<br />
‘HTTP_AUTH_LOGIN:admin’,<br />
‘HTTP_AUTH_PASSWD:setup’,<br />
‘Content-Type:text/xml’<br />
);<br />
然 后 CURL 工 具 初 始 化 , 并 设 置 使 用 HTTPS, 并 传 送 来 所 需 的 HTTP 标 头 :<br />
// initialize the curl engine<br />
$ch = curl_init();<br />
// set the curl options:<br />
// do not check the name of SSL certificate of the remote server curl_setopt($ch,<br />
CURLOPT_SSL_VERIFYHOST, 0);<br />
// do not check up the remote server certificate curl_setopt($ch,<br />
CURLOPT_SSL_VERIFYPEER, false);<br />
// pass in the header elements curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);<br />
// pass in the url of the target server<br />
curl_setopt($ch, CURLOPT_URL, $url);<br />
CURL 工 具 所 需 的 另 一 个 参 数 是 <strong>Panel</strong> API RPC 数 据 包 。 数 据 包 示 例 如 下 :<br />
$packet =
46 通 过 远 程 API 设 置<br />
现 在 示 意 CURL 工 具 从 服 务 器 接 收 请 求 , 接 受 要 交 付 的 数 据 包 , 开 始 迁 移 :<br />
// 示 意 CURL 返 回 结 果 , 而 不 是 加 载 结 果 到 浏 览 器 中<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br />
// 接 受 要 交 付 的 数 据 包<br />
curl_setopt($ch, CURLOPT_POSTFIELDS, $packet);<br />
// 执 行 CURL 请 求 并 返 回 结 果<br />
$retval = curl_exec($ch);<br />
// 关 闭 CURL 会 话<br />
curl_close($ch);<br />
执 行 请 求 后 ,CURL 在 客 户 端 获 取 最 终 HTTP 数 据 包 , 删 除 HTTP 标 头 ,$retval 参 数 获 取 ’<br />
响 应 ’ 数 据 包 的 XML 部 分 。
通 过 远 程 API 设 置 47<br />
解 析 响 应<br />
您 可 以 使 用 任 一 HTTP/FTP 客 户 库 传 输 请 求 到 <strong>Panel</strong>, 并 获 取 结 果 。 多 数 情 况 下 , 最 终 HTTP<br />
数 据 包 结 构 , 参 阅 数 据 包 结 构 章 节 ( 第 40 页 )。 若 使 用 CURL 工 具 , 返 回 的 最 终 结 果 是 纯 XML<br />
格 式 。<br />
<strong>Panel</strong> API RPC 服 务 器 返 回 的 纯 XML 数 据 包 由 XML 模 板 定 义 。<br />
数 据 包 是 每 个 响 应 XML 数 据 包 的 根 节 点 , 版 本 属 性 返 回 服 务 器 上 运 行 的 <strong>Panel</strong> API RPC 协 议<br />
版 本 。<br />
特 定 运 算 子 包 含 数 据 包 响 应 , 或 返 回 的 系 统 <strong>Panel</strong> 应 用 程 序 错 误 。<br />
有 关 系 统 和 输 出 节 点 方 式 相 关 信 息 , 参 阅 处 理 错 误 章 节 ( 第 49 页 )。<br />
若 要 了 解 响 应 结 构 , 则 需 agent_output.xsd 模 板 。 此 模 板 列 举 指 定 API RPC 版 本 支 持 的 所<br />
有 运 算 子 响 应 数 据 类 型 , 说 明 符 合 这 些 操 作 的 输 出 模 板 。<br />
响 应 数 据 包 的 每 个 [operator] 元 素 中 , 典 型 的 响 应 数 据 类 型 包 含 一 或 多 个 结 果 元 素 。 此 元 素 由<br />
复 杂 类 型 表 示 , 通 常 包 含 common.xsd 模 板 中 定 义 的 类 型 resultType:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
结 果 元 素 也 包 含 可 选 元 素 , 若 在 复 杂 类 型 中 定 义 。<br />
一 般 ,<strong>Panel</strong> API RPC 服 务 器 返 回 的 数 据 包 格 式 类 似 于 :
48 通 过 远 程 API 设 置<br />
<br />
<br />
<br />
<br />
<br />
...<br />
<br />
[<br />
<br />
...<br />
<br />
...<br />
<br />
...<br />
<br />
]<br />
<br />
<br />
<br />
此 处 [operator] 指 请 求 数 据 包 中 所 用 的 运 算 子 ,[operation] 指 执 行 的 操 作 。RESULT 元 素 总<br />
是 用 于 隔 开 请 求 信 息 和 操 作 执 行 状 态 。RESULT 部 分 包 含 表 示 操 作 执 行 状 态 的 STATUS 元 素 。<br />
注 意 : 若 多 个 操 作 请 求 一 个 输 入 数 据 包 , 真 实 响 应 XML 程 序 包 在 一 个 运 算 子 中 包 含 多 个 操 作 ;<br />
若 多 个 面 板 对 象 需 要 多 个 输 入 数 据 包 , 响 应 数 据 包 可 以 包 含 多 个 运 算 子 区 域 。
通 过 远 程 API 设 置 49<br />
处 理 错 误<br />
服 务 器 报 告 两 类 客 户 软 件 错 误 , 检 查 错 误 和 执 行 错 误 ( 若 执 行 请 求 的 操 作 )。<br />
若 出 现 错 误 ,<strong>Panel</strong> 管 理 的 服 务 器 返 回 的 描 述 包 含 下 列 参 数 :<br />
• 状 态 带 值 " 错 误 "<br />
• 错 误 码 – 错 误 码 , 识 别 错 误 的 唯 一 数 字<br />
• 错 误 文 本 – 错 误 文 本 , 错 误 的 文 字 描 述<br />
common.xsd 模 板 中 的 类 型 resultType 或 按 错 误 类 型 定 义 错 误 描 述 ( 取 决 于 运 算 子 )。<br />
检 查 错 误<br />
确 定 有 效 并 执 行 之 前 , 传 入 在 服 务 器 上 经 过 多 次 检 查 的 HTTP 数 据 包 。 检 查 包 括 :<br />
• HTTP-POST 标 头 检 查<br />
• 检 查 指 定 的 API RPC 协 议 版 本 是 否 受 支 持<br />
• 检 查 受 权 方 式 ( 登 录 凭 据 或 密 钥 )<br />
• 检 查 用 户 的 ‘remote_access_interface’ 权 限 状 态<br />
• ...<br />
• 检 查 数 据 包 是 否 有 效<br />
• 检 查 当 前 版 <strong>Panel</strong> 中 的 所 需 代 理 是 否 可 用<br />
检 查 若 失 败 , 则 无 法 进 一 步 检 查 或 执 行 命 令 。 若 服 务 器 在 任 一 检 查 步 骤 停 止 ( 如 尚 未 执 行 所 需<br />
操 作 ), 响 应 数 据 包 由 下 列 元 素 组 成 :<br />
• 系 统 包 含 错 误 描 述 ; 由 common.xsd 模 板 中 的 类 型 resultType 定 义<br />
• 输 出 , 包 含 错 误 组 件 标 准 错 误 信 息 的 可 选 元 素 ( 若 不 为 空 ); 由 plesk_common.xsd 模 板 中<br />
的 类 型 garbageOutput 定 义<br />
例 如 , 若 从 <strong>Panel</strong> API RPC 服 务 器 接 到 响 应 , 尝 试 使 用 不 存 在 的 API RPC 协 议 版 本 , 结 果 类<br />
似 于 :<br />
<br />
<br />
error<br />
1005<br />
API RPC 协 议 版 本 不 受 支 持 。<br />
<br />
…<br />
<br />
执 行 错 误 码<br />
若 所 有 检 查 都 通 过 , 所 选 代 理 将 按 顺 序 执 行 请 求 的 操 作 。 若 操 作 失 败 , 相 关 代 理 报 告 执 行 错 误 。<br />
所 有 报 告 由 代 理 工 具 收 集 , 组 成 基 于 输 出 XML 模 板 的 响 应 程 序 包 。 如 若 创 建 站 点 失 败 , 站 点 运<br />
算 子 会 使 用 domain_output.xsd 模 板 生 成 错 误 响 应 :
50 通 过 远 程 API 设 置<br />
<br />
<br />
<br />
<br />
error<br />
2300<br />
Failed to add domain.<br />
<br />
<br />
<br />
<br />
客 户 码 示 例<br />
本 章 介 绍 PHP,C# 和 VB.NET 中 的 客 户 应 用 程 序 样 本 , 演 示 如 何 使 用 API RPC 协 议 。<br />
PHP 客 户 应 用 程 序<br />
下 列 代 码 样 本 是 用 PHP 编 写 的 即 用 型 客 户 应 用 程 序 。<br />
注 意 : 若 要 使 用 此 样 本 需 安 装 PHP 4.0.2 或 更 高 版 本 。<br />
更 多 信 息 , 请 访 问 http://php.net/manual/en/ref.dom.php 或<br />
http://php.net/manual/en/ref.curl.php。<br />
注 释<br />
class<br />
ApiRequestException<br />
function<br />
domainsInfoRequest()<br />
扩 展 标 准 异 类 。 访 问<br />
http://www.php.net/manual/en/language.exceptions.php<br />
了 解 详 情 。<br />
使 用 DOM 模 块 编 写 XML 请 求 数 据 包 。 返 回 最 终 DOM 对<br />
象 。<br />
function curlInit() 初 始 化 CURL 会 话 :<br />
CURLOPT_URL<br />
CURLOPT_RETURNTRANS<br />
FER<br />
CURLOPT_POST<br />
指 定 目 标 URL:<br />
设 置 成 true 表 示 将 从 服 务<br />
器 返 回 字 符 串 格 式 的 最 终<br />
输 出 。<br />
设 置 成 true 表 示 即 将 通 过<br />
HTTP POST 发 送 数 据 包 。
通 过 远 程 API 设 置 51<br />
CURLOPT_SSL_VERIFYPE<br />
ER<br />
CURLOPT_SSL_VERIFYHO<br />
ST<br />
CURLOPT_HTTPHEADER<br />
设 置 成 false 让 CURL 停 止<br />
验 证 同 类 证 书 。<br />
设 置 成 false 让 CURL 停 止<br />
验 证 主 机 。<br />
指 定 要 设 置 的 HTTP 标 头<br />
字 段 。<br />
返 回 URL 会 话 处 理 器 。<br />
function sendRequest()<br />
function parseResponse()<br />
通 过 CURL 发 送 HTTP 数 据 包 , 并 获 取 纯 XML 响 应 数 据<br />
包 ( 无 需 HTTP 标 头 )。 关 闭 CURL 会 话 , 返 回 最 终 数 据 包<br />
( 带 XML 标 签 的 纯 文 本 )。 有 关 CURL 工 具 的 更 多 信 息 , 访<br />
问 http://www.php.net/manual/en/ref.curl.php。<br />
获 取 响 应 数 据 包 ( 纯 文 本 ) 参 数 。 使 用 SimpleXML 分 析 数<br />
据 包 , 返 回 SimpleXMLElement 对 象 。 有 关 PHP<br />
SimpleXML 扩 展 的 更 多 信 息 , 访 问<br />
http://www.php.net/manual/en/ref.simplexml.php。<br />
function checkResponse() 获 取 相 应 数 据 包 SimpleXMLEelement 并 查 看 结 果 节 点 。<br />
若 节 点 ' 错 误 ', 则 函 数 出 现 异 常 , 字 符 串 传 到 errtext 节 点 。<br />
main() 函 数 按 顺 序 调 用 这 些 函 数 。 首 先 调 用 domainInfoRequest() 组 成 如 下 的 数 据 包 :<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
然 后 调 用 curlInit() 来 初 始 化 CURL 会 话 。sendRequest 函 数 发 送 HTTP 标 头 如 下 的 数 据 包 :<br />
POST /enterprise/control/agent.php HTTP/1.1<br />
Host:10.58.32.100:8443<br />
HTTP_AUTH_LOGIN:login<br />
HTTP_AUTH_PASSWD:qwedsa<br />
HTTP_PRETTY_PRINT:TRUE
52 通 过 远 程 API 设 置<br />
Content-Length:294<br />
Content-Type:text/xml<br />
从 <strong>Panel</strong> 管 理 的 服 务 器 接 收 到 的 响 应 XML 数 据 包 如 下 :<br />
<br />
<br />
<br />
<br />
<br />
ok<br />
1234<br />
<br />
<br />
1154513574<br />
example.com<br />
example<br />
64<br />
0<br />
46<br />
192.0.2.33<br />
none<br />
<br />
<br />
<br />
<br />
<br />
<br />
收 到 相 应 数 据 包 后 , 经 过 parseResponse() 函 数 解 析 , 循 环 执 行 iterator, 模 拟 结 果 节 点 上 的<br />
内 容 。<br />
代 码 样 本<br />
formatOutput = true;<br />
// <br />
$packet = $xmldoc->createElement('packet');<br />
$packet->setAttribute('version', '1.6.2.0');<br />
$xmldoc->appendChild($packet);<br />
//
通 过 远 程 API 设 置 53<br />
$domain = $xmldoc->createElement('domain');<br />
$packet->appendChild($domain);<br />
// <br />
$get = $xmldoc->createElement('get');<br />
$domain->appendChild($get);<br />
}<br />
// <br />
$filter = $xmldoc->createElement('filter');<br />
$get->appendChild($filter);<br />
// <br />
$dataset = $xmldoc->createElement('dataset');<br />
$get->appendChild($dataset);<br />
// dataset elements<br />
$dataset->appendChild($xmldoc->createElement('hosting'));<br />
$dataset->appendChild($xmldoc->createElement('gen_info'));<br />
return $xmldoc;<br />
/**<br />
* Prepares CURL to perform the <strong>Panel</strong> API request<br />
* @return resource<br />
*/<br />
function curlInit($host, $login, $password)<br />
{<br />
$curl = curl_init();<br />
curl_setopt($curl, CURLOPT_URL,<br />
"https://{$host}:8443/enterprise/control/agent.php");<br />
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);<br />
curl_setopt($curl, CURLOPT_POST,<br />
true);<br />
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);<br />
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);<br />
curl_setopt($curl, CURLOPT_HTTPHEADER,<br />
array("HTTP_AUTH_LOGIN:{$login}",<br />
"HTTP_AUTH_PASSWD:{$password}",<br />
"HTTP_PRETTY_PRINT:TRUE",<br />
"Content-Type:text/xml")<br />
);<br />
}<br />
return $curl;<br />
/**<br />
* Performs a <strong>Panel</strong> API request, returns raw API response text<br />
*<br />
* @return string<br />
* @throws ApiRequestException<br />
*/<br />
function sendRequest($curl, $packet)<br />
{<br />
curl_setopt($curl, CURLOPT_POSTFIELDS, $packet);<br />
$result = curl_exec($curl);<br />
if (curl_errno($curl)) {<br />
$errmsg = curl_error($curl);<br />
$errcode = curl_errno($curl);<br />
curl_close($curl);<br />
throw new ApiRequestException($errmsg, $errcode);<br />
}<br />
curl_close($curl);<br />
return $result;<br />
}
54 通 过 远 程 API 设 置<br />
/**<br />
* Looks if API responded with correct data<br />
*<br />
* @return SimpleXMLElement<br />
* @throws ApiRequestException<br />
*/<br />
function parseResponse($response_string)<br />
{<br />
$xml = new SimpleXMLElement($response_string);<br />
if (!is_a($xml, 'SimpleXMLElement'))<br />
throw new ApiRequestException("Cannot parse server<br />
response:{$response_string}");<br />
return $xml;<br />
}<br />
/**<br />
* Check data in API response<br />
* @return void<br />
* @throws ApiRequestException<br />
*/<br />
function checkResponse(SimpleXMLElement $response)<br />
{<br />
$resultNode = $response->domain->get->result;<br />
// check if request was successful<br />
if ('error' == (string)$resultNode->status)<br />
throw new ApiRequestException("The <strong>Panel</strong> API returned an error:"<br />
. (string)$resultNode->result->errtext);<br />
}<br />
//<br />
// int main()<br />
//<br />
$host = '10.58.32.100';<br />
$login = 'admin';<br />
$password = 'qwedsa';<br />
$curl = curlInit($host, $login, $password);<br />
try {<br />
$response = sendRequest($curl, domainsInfoRequest()->saveXML());<br />
$responseXml = parseResponse($response);<br />
checkResponse($responseXml);<br />
} catch (ApiRequestException $e) {<br />
echo $e;<br />
die();<br />
}<br />
// Explore the result<br />
foreach ($responseXml->xpath('/packet/domain/get/result') as $resultNode) {<br />
echo "Domain id:" . (string)$resultNode->id ." ";<br />
echo (string)$resultNode->data->gen_info->name ." (" .<br />
(string)$resultNode->data->gen_info->dns_ip_address .")\n";<br />
}<br />
>
通 过 远 程 API 设 置 55<br />
C# Client Application<br />
下 列 代 码 样 本 是 用 C# 编 写 的 即 用 型 客 户 应 用 程 序 。<br />
注 释<br />
类 Request 通 过 HTTP 发 送 请 求 到 <strong>Panel</strong> 管 理 的 服 务 器 并 接 收 响 应 数 据 包 。 内 容 如 下 :<br />
公 共 字 符 串 主 机 名<br />
公 共 字 符 串 登 录<br />
公 共 字 符 串 密 码<br />
请 求 数 据 包 要 发 送 到 的 <strong>Panel</strong> 管 理 的 服 务 器 主 机 名<br />
(IP 地 址 )。 默 认 是 "localhost"。<br />
持 有 <strong>Panel</strong> 管 理 员 登 录 名 。 默 认 是 "admin"。<br />
持 有 默 认 管 理 员 的 密 码 。 默 认 是 "setup"。<br />
公 共 字 符 串 协 议 持 有 与 <strong>Panel</strong> 互 动 的 API RPC 协 议 。<br />
public ValidationEventHandler<br />
XmlSchemaValidation<br />
公 共 字 符 串 AgentEntryPoint<br />
公 共 字 符 串 InputValidationSchema<br />
公 共 字 符 串<br />
OutputValidationSchema<br />
public XmlDocument Send<br />
(XmlDocument)<br />
public XmlDocument Send<br />
(Stream)<br />
public XmlDocument Send<br />
(string)<br />
private HttpWebRequest<br />
SendRequest (string)<br />
private XmlDocument<br />
ParseAndValidate (TextReader,<br />
string)<br />
private XmlDocument GetResponse<br />
(HttpWebRequest)<br />
用 来 接 收 模 板 验 证 错 误 的 处 理 器 。<br />
持 有 处 理 服 务 器 上 请 求 数 据 包 的 <strong>Panel</strong> 代 理 URL。<br />
持 有 发 送 给 服 务 器 之 前 应 用 到 请 求 数 据 包 的 验 证 模<br />
板 URL。<br />
持 有 客 户 接 受 之 后 要 应 用 到 响 应 数 据 包 的 验 证 模 板<br />
URL。<br />
获 取 请 求 数 据 包 ( 在 XmlDocument 对 象 表 单 中 ) 到<br />
输 入 参 数 。 在 XmlDocument 对 象 表 单 中 发 送 请 求 ,<br />
获 取 响 应 。<br />
获 取 请 求 数 据 包 ( 流 ) 到 输 入 参 数 。 使 用<br />
agent_input.xsd 验 证 模 板 验 证 请 求 数 据 包 。 调<br />
用 Send(XmlDocument) 子 函 数 。<br />
获 取 请 求 数 据 包 URI (XML 文 件 ) 到 输 入 参 数 。 使 用<br />
agent_input.xsd 验 证 模 板 验 证 请 求 数 据 包 。 调<br />
用 Send(XmlDocument) 子 函 数 。<br />
生 成 HTTP 请 求 : 将 HTTP 标 头 和 连 续 XML 数 据 包<br />
到 HttpWebRequest 类 型 的 对 象 。 返 回 此 对 象 。<br />
获 取 agent_input.xsd URI 和 字 符 串 阅 读 器<br />
( 要 验 证 的 XML 数 据 包 URI) 到 输 入 参 数 。 验 证 数 据<br />
包 , 并 返 回 树 状 结 构 图 (XmlDocument 对 象 )。<br />
获 取 请 求 数 据 包 (HttpWebRequest 对 象 ) 到 输 入 参<br />
数 。 通 过 HTTP 发 送 数 据 包 , 从 服 务 器 接 收 响 应 数<br />
据 包 , 使 用 agent_output.xsd 模 板 验 证 , 并 返<br />
回 树 状 结 构 的 响 应 XML 数 据 包 (XmlDocument 对<br />
象 )。
56 通 过 远 程 API 设 置<br />
类 Program 执 行 ' 客 户 ' 控 制 台 应 用 程 序 。<br />
static void Main (string[])<br />
<strong>Panel</strong>ApiRpcClient 应 用 程 序 进 入 点 。 获 取 函 数 队<br />
列 ( 字 符 串 ) 到 输 入 参 数 。 选 项 有 :<br />
[0] - <strong>Panel</strong> 管 理 的 服 务 器 主 机 名 (IP 地 址 )<br />
[1] - <strong>Panel</strong> 管 理 员 登 录 名<br />
[2] - <strong>Panel</strong> 管 理 员 密 码<br />
[3] - 所 用 的 API RPC 协 议<br />
[4] - 内 有 XML 请 求 数 据 包 的 XML 文 件 。<br />
函 数 生 成 请 求 类 数 据 包 ( 如 上 所 示 ), 验 证 , 发 送 请<br />
求 到 <strong>Panel</strong>, 然 后 打 印 出 最 终 XML 数 据 包 。<br />
private static bool<br />
RemoteCertificateValidation<br />
(object, X509Certificate,<br />
X509Chain, SslPolicyErrors)<br />
private static void<br />
XmlSchemaValidation (object,<br />
ValidationEventArgs)<br />
static void<br />
PrintResult(XmlDocument)<br />
函 数 验 证 远 程 SSL 证 书 来 授 权 服 务 器 。 若 服 务 器 未<br />
经 授 权 , 返 回 false。<br />
验 证 错 误 事 件 处 理 器 。<br />
函 数 输 出 响 应 数 据 包 (XmlDocument 对 象 ) 到 控 制<br />
台 。
通 过 远 程 API 设 置 57<br />
可 从 命 令 行 启 动 客 户 应 用 程 序 :<br />
<strong>Panel</strong>ApiRpcClient 192.0.2.168 admin_login admin_passwd 1.6.2.0<br />
"c:\requests\AddNewDomain.xml"<br />
请 求 数 据 包 川 到 AddNewDomain.xml 文 件 :<br />
<br />
<br />
<br />
<br />
<br />
example.com<br />
192.0.2.48<br />
<br />
<br />
<br />
<br />
ftp_login<br />
fpt16se4fdf0<br />
<br />
<br />
ftp_password<br />
qweqwe<br />
<br />
192.0.2.48<br />
<br />
<br />
<br />
<br />
<br />
从 管 理 的 服 务 器 接 收 到 的 响 应 数 据 包 如 下 :<br />
<br />
<br />
<br />
<br />
<br />
ok<br />
6<br />
5c0e3881-22a2-4401-bcc0-881d691bfdef<br />
<br />
<br />
<br />
<br />
此 数 据 包 返 回 add 操 作 结 果 , 以 及 刚 创 建 站 点 的 ID 和 GUID。<br />
代 码 样 本<br />
使 用 系 统 ;<br />
使 用 System.Net;<br />
使 用 System.Text;<br />
使 用 System.IO;<br />
使 用 System.Xml;<br />
使 用 System.Xml.Schema;<br />
使 用 System.Security.Cryptography.X509Certificates;
58 通 过 远 程 API 设 置<br />
使 用 System.Net.Security;<br />
命 名 空 间 <strong>Panel</strong>ApiRpcClient<br />
{<br />
公 共 类 请 求<br />
{<br />
// Public interface<br />
//<br />
public string Hostname = "localhost"; // <strong>Panel</strong> Hostname<br />
public string Login = "admin_login"; //<br />
Administrator's Login<br />
public string Password = "admin_passwd"; //<br />
Administrator's Password<br />
public string Protocol = "1.6.2.0"; // API RPC Version<br />
Protocol.<br />
(DTD),<br />
(XSD)<br />
// Handler for receiving information about document type definition<br />
// XML-Data Reduced (XDR) schema, and XML Schema definition language<br />
// schema validation errors.<br />
public ValidationEventHandler XmlSchemaValidation = null;<br />
public Request()<br />
{<br />
}<br />
public string AgentEntryPoint { get { return "https://" +<br />
Hostname + ":8443/enterprise/control/agent.php"; } }<br />
public string InputValidationSchema { get { return "https://" +<br />
Hostname + ":8443/schemas/rpc/" + Protocol + "/agent_input.xsd"; } }<br />
public string OutputValidationSchema { get { return "https://" +<br />
Hostname + ":8443/schemas/rpc/" + Protocol + "/agent_output.xsd"; } }<br />
public XmlDocument Send(XmlDocument packet)<br />
{<br />
HttpWebRequest request = SendRequest(packet.OuterXml);<br />
XmlDocument result = GetResponse(request);<br />
return result;<br />
}<br />
public XmlDocument Send(Stream packet)<br />
{<br />
using (TextReader reader = new StreamReader(packet))<br />
{<br />
return Send(ParseAndValidate(reader,<br />
InputValidationSchema));<br />
}<br />
}<br />
public XmlDocument Send(string packetUri)<br />
{<br />
using (TextReader reader = new StreamReader(packetUri))<br />
{<br />
return Send(ParseAndValidate(reader,<br />
InputValidationSchema));<br />
}<br />
}<br />
// Private interface<br />
//
通 过 远 程 API 设 置 59<br />
// Sending a request message<br />
//<br />
private HttpWebRequest SendRequest(string message)<br />
{<br />
HttpWebRequest request =<br />
(HttpWebRequest)WebRequest.Create(AgentEntryPoint);<br />
request.Method = "POST";<br />
request.Headers.Add("HTTP_AUTH_LOGIN", Login);<br />
request.Headers.Add("HTTP_AUTH_PASSWD", Password); request.ContentType =<br />
"text/xml"; request.ContentLength = message.Length;<br />
ASCIIEncoding encoding = new ASCIIEncoding(); byte[] buffer<br />
= encoding.GetBytes(message);<br />
using (Stream stream = request.GetRequestStream())<br />
{<br />
stream.Write(buffer, 0, message.Length);<br />
}<br />
}<br />
return request;<br />
// Parsing and validating packet<br />
//<br />
private XmlDocument ParseAndValidate(TextReader xml, string<br />
schemaUri)<br />
{<br />
XmlSchemaSet schemas = new XmlSchemaSet();<br />
schemas.Add(null, schemaUri);<br />
XmlReaderSettings settings = new XmlReaderSettings(); if<br />
(XmlSchemaValidation != null)<br />
settings.ValidationEventHandler += new<br />
ValidationEventHandler(XmlSchemaValidation);<br />
settings.ValidationType = ValidationType.Schema;<br />
settings.ValidationFlags |=<br />
XmlSchemaValidationFlags.ProcessSchemaLocation;<br />
settings.Schemas = schemas;<br />
XmlDocument document = new XmlDocument();<br />
using (XmlReader reader = XmlTextReader.Create(xml,<br />
settings))<br />
{<br />
document.Load(reader);<br />
}<br />
return document;<br />
}<br />
private XmlDocument GetResponse(HttpWebRequest request)<br />
{<br />
using (HttpWebResponse response =<br />
(HttpWebResponse)request.GetResponse())<br />
using (Stream stream = response.GetResponseStream())<br />
using (TextReader reader = new StreamReader(stream))<br />
{<br />
return ParseAndValidate(reader,<br />
OutputValidationSchema);<br />
}<br />
}<br />
}<br />
class Program<br />
{<br />
static void Main(string[] args)
60 通 过 远 程 API 设 置<br />
{<br />
if (args.Length < 5)<br />
{<br />
Console.WriteLine("Usage:<strong>Panel</strong>ApiRpcClient<br />
");<br />
Console.WriteLine(" ");<br />
Console.WriteLine(" Hostname - <strong>Panel</strong> host name");<br />
Console.WriteLine(" Login - Administrator's<br />
login");<br />
Console.WriteLine(" Password - Administrator's<br />
password");<br />
Console.WriteLine(" Protocol - API RPC protocol<br />
version");<br />
Console.WriteLine(" Request - Request file path<br />
(*.xml)");<br />
return;<br />
}<br />
// Verifies the remote Secure Sockets Layer (SSL) certificate<br />
// used for authentication.<br />
ServicePointManager.ServerCertificateValidationCallback =<br />
new<br />
RemoteCertificateValidationCallback(RemoteCertificateValidation);<br />
Request request = new Request(); request.XmlSchemaValidation<br />
= XmlSchemaValidation;<br />
request.Hostname = args[0]; // "10.49.8.120";<br />
request.Login = args[1]; // "admin";<br />
request.Password = args[2]; // "setup";<br />
request.Protocol = args[3]; // "1.6.2.0";<br />
string packet<br />
= args[4]; // "request.xml";<br />
}<br />
try<br />
{<br />
XmlDocument result = request.Send(packet);<br />
PrintResult(result);<br />
}<br />
catch (Exception e)<br />
{<br />
Console.WriteLine("Request error:{0}", e.Message);<br />
}<br />
// The following method is invoked by the<br />
RemoteCertificateValidationDelegate.<br />
private static bool RemoteCertificateValidation(object sender,<br />
X509Certificate certificate, X509Chain chain,<br />
SslPolicyErrors sslPolicyErrors)<br />
{<br />
if (sslPolicyErrors !=<br />
SslPolicyErrors.RemoteCertificateNotAvailable)<br />
return true;<br />
Console.WriteLine("Certificate error:{0}",<br />
sslPolicyErrors);<br />
// Do not allow this client to communicate with<br />
unauthenticated servers.<br />
return false;<br />
}<br />
//
通 过 远 程 API 设 置 61<br />
private static void XmlSchemaValidation(object sender,<br />
ValidationEventArgs e)<br />
{<br />
Console.WriteLine("Validation error:{0}", e.Message);<br />
}<br />
}<br />
}<br />
static void PrintResult(XmlDocument document)<br />
{<br />
XmlTextWriter writer = new XmlTextWriter(Console.Out);<br />
writer.Formatting = Formatting.Indented;<br />
document.WriteTo(writer);<br />
writer.Flush();<br />
Console.WriteLine();<br />
}<br />
VB.NET 客 户 应 用 程 序<br />
下 列 代 码 样 本 是 用 VB.NET 编 写 的 即 用 型 客 户 应 用 程 序 。<br />
注 释<br />
类 Request 通 过 HTTP 发 送 请 求 到 <strong>Panel</strong> 管 理 的 服 务 器 并 接 收 响 应 数 据 包 。 内 容 如 下 :<br />
公 共 字 符 串 主 机 名<br />
公 共 字 符 串 登 录<br />
公 共 字 符 串 密 码<br />
请 求 数 据 包 要 发 送 到 的 <strong>Panel</strong> 管 理 的 服 务 器 主 机 名<br />
(IP 地 址 )。 默 认 是 "localhost"。<br />
持 有 <strong>Panel</strong> 管 理 员 登 录 名 。 默 认 是 "admin"。<br />
持 有 默 认 管 理 员 的 密 码 。 默 认 是 "setup"。<br />
公 共 字 符 串 协 议 持 有 与 <strong>Panel</strong> 互 动 的 API RPC 协 议 。<br />
public XmlSchemaValidation 用 来 接 收 模 板 验 证 错 误 的 处 理 器 。<br />
Public ReadOnly Property<br />
AgentEntryPoint<br />
Public ReadOnly Property<br />
InputValidationSchema<br />
Public ReadOnly Property<br />
OutputValidationSchema<br />
Public Function Send(ByVal<br />
packet As XmlDocument)<br />
Public Function Send(ByVal<br />
packet As Stream)<br />
Public Function Send(ByVal<br />
packetUri As String)<br />
持 有 处 理 服 务 器 上 请 求 数 据 包 的 <strong>Panel</strong> 代 理 URL。<br />
持 有 发 送 给 服 务 器 之 前 应 用 到 请 求 数 据 包 的 验 证 模<br />
板 URL。<br />
持 有 客 户 接 受 之 后 要 应 用 到 响 应 数 据 包 的 验 证 模 板<br />
URL。<br />
获 取 请 求 数 据 包 ( 在 XmlDocument 对 象 表 单 中 ) 到<br />
输 入 参 数 。 在 XmlDocument 对 象 表 单 中 发 送 请 求 ,<br />
获 取 响 应 。<br />
获 取 请 求 数 据 包 ( 流 ) 到 输 入 参 数 。Validates the<br />
request packet using the validation schema. 调 用<br />
Send(XmlDocument) 子 函 数 。<br />
获 取 请 求 数 据 包 URI (XML 文 件 ) 到 输 入 参 数 。<br />
Validates the request packet using the validation<br />
schema. 调 用 Send(XmlDocument) 子 函 数 。
62 通 过 远 程 API 设 置<br />
Private Function<br />
SendRequest(ByVal message As<br />
String)<br />
Private Function<br />
ParseAndValidate(ByVal xml As<br />
TextReader, ByVal schemaUri As<br />
String)<br />
Private Function<br />
GetResponse(ByVal request As<br />
HttpWebRequest)<br />
生 成 HTTP 请 求 : 将 HTTP 标 头 和 连 续 XML 数 据 包<br />
到 HttpWebRequest 类 型 的 对 象 。 返 回 此 对 象 。<br />
获 取 验 证 模 板 URI 和 字 符 串 阅 读 器 ( 要 验 证 的 XML<br />
数 据 包 URI) 到 输 入 参 数 。 验 证 数 据 包 , 并 返 回 树 状<br />
结 构 图 (XmlDocument 对 象 )。<br />
获 取 请 求 数 据 包 (HttpWebRequest 对 象 ) 到 输 入 参<br />
数 。 通 过 HTTP 发 送 数 据 包 , 从 服 务 器 接 收 响 应 数 据<br />
包 , 使 用 模 板 验 证 , 并 返 回 树 状 结 构 的 响 应 XML 数<br />
据 包 (XmlDocument 对 象 )。
通 过 远 程 API 设 置 63<br />
类 Program 执 行 ' 客 户 ' 控 制 台 应 用 程 序 。<br />
Shared Sub Main(ByVal args As<br />
String())<br />
Private Shared Function<br />
RemoteCertificateValidation(<br />
ByVal sender As Object, ByVal<br />
certificate As<br />
X509Certificate, ByVal chain<br />
As X509Chain, ByVal<br />
sslPolicyErrors As<br />
SslPolicyErrors)<br />
<strong>Panel</strong>ApiRpcClient 应 用 程 序 进 入 点 。 获 取 函 数<br />
队 列 ( 字 符 串 ) 到 输 入 参 数 。 选 项 有 :<br />
[0] - <strong>Panel</strong> 管 理 的 服 务 器 主 机 名 (IP 地 址 )<br />
[1] - <strong>Panel</strong> 管 理 员 登 录 名<br />
[2] - <strong>Panel</strong> 管 理 员 密 码<br />
[3] - 所 用 的 API RPC 协 议<br />
[4] - 内 有 XML 请 求 数 据 包 的 XML 文 件 。<br />
函 数 生 成 请 求 类 数 据 包 ( 如 上 所 示 ), 验 证 , 发 送<br />
请 求 到 <strong>Panel</strong>, 然 后 打 印 出 最 终 XML 数 据 包 。<br />
函 数 验 证 远 程 SSL 证 书 来 授 权 服 务 器 。 若 服 务<br />
器 未 经 授 权 , 返 回 false。<br />
Private Shared Sub<br />
XmlSchemaValidation(ByVal<br />
sender As Object, ByVal e As<br />
ValidationEventArgs)<br />
验 证 错 误 事 件 处 理 器 。<br />
Private Shared Sub<br />
PrintResult(ByVal document As<br />
XmlDocument)<br />
函 数 输 出 响 应 数 据 包 (XmlDocument 对 象 ) 到<br />
控 制 台 。<br />
可 从 命 令 行 启 动 客 户 应 用 程 序 :<br />
<strong>Panel</strong>ApiRpcClient 192.0.2.168 admin_login admin_passwd 1.6.2.0<br />
"c:\requests\request.xml"<br />
请 求 数 据 包 川 到 request.xml 文 件 :<br />
<br />
<br />
<br />
<br />
<br />
example.com<br />
192.0.2.48
64 通 过 远 程 API 设 置<br />
<br />
<br />
<br />
<br />
ftp_login<br />
fp16se4fdf0<br />
<br />
<br />
ftp_password<br />
qweqwe<br />
<br />
192.0.2.48<br />
<br />
<br />
<br />
<br />
<br />
从 管 理 的 服 务 器 接 收 到 的 响 应 数 据 包 如 下 :<br />
<br />
<br />
<br />
<br />
<br />
ok<br />
6<br />
5c0e3881-22a2-4401-bcc0-881d691bfdef<br />
<br />
<br />
<br />
<br />
此 数 据 包 返 回 add 操 作 结 果 , 以 及 刚 创 建 站 点 的 ID 和 GUID。<br />
代 码 样 本<br />
导 入 系 统<br />
Imports System.Net<br />
Imports System.Text<br />
Imports System.IO<br />
Imports System.Xml<br />
Imports System.Xml.Schema<br />
Imports System.Security.Cryptography.X509Certificates<br />
Imports System.Net.Security<br />
Namespace <strong>Parallels</strong><strong>Panel</strong>ApiRpcClient<br />
Public Class Request<br />
' Public interface<br />
Public Hostname As String = "localhost" 'The <strong>Panel</strong> Host name<br />
Public Login As String = "admin_login" //<br />
Administrator's Login<br />
Public Password As String = "admin_setup"<br />
'Administrator's Password<br />
Public Protocol As String = "1.6.2.0" 'API RPC Version<br />
Protocol<br />
(DTD),<br />
(XSD)<br />
' Handler for receiving information about document type definition<br />
' XML-Data Reduced (XDR) schema, and XML Schema definition language
通 过 远 程 API 设 置 65<br />
' schema validation errors.<br />
Public XmlSchemaValidation As ValidationEventHandler<br />
Public ReadOnly Property AgentEntryPoint As String<br />
Get<br />
Return ("https://" & Me.Hostname &<br />
":8443/enterprise/control/agent.php")<br />
End Get<br />
End Property<br />
Public ReadOnly Property InputValidationSchema As String<br />
Get<br />
Return String.Concat(New String() { "https://",<br />
Me.Hostname, ":8443/schemas/rpc/", Me.Protocol, "/agent_input.xsd" })<br />
End Get<br />
End Property<br />
Public ReadOnly Property OutputValidationSchema As String<br />
Get<br />
Return String.Concat(New String() { "https://",<br />
Me.Hostname, ":8443/schemas/rpc/", Me.Protocol, "/agent_output.xsd" })<br />
End Get<br />
End Property<br />
Public Function Send(ByVal packet As XmlDocument) As XmlDocument<br />
Dim request As HttpWebRequest =<br />
Me.SendRequest(packet.OuterXml)<br />
Return Me.GetResponse(request)<br />
End Function<br />
Public Function Send(ByVal packet As Stream) As XmlDocument<br />
Using reader As TextReader = New StreamReader(packet)<br />
Return Me.Send(Me.ParseAndValidate(reader,<br />
Me.InputValidationSchema))<br />
End Using<br />
End Function<br />
Public Function Send(ByVal packetUri As String) As XmlDocument<br />
Using reader As TextReader = New StreamReader(packetUri)<br />
Return Me.Send(Me.ParseAndValidate(reader,<br />
Me.InputValidationSchema))<br />
End Using<br />
End Function<br />
' Private interface<br />
'<br />
' Sending a request message<br />
'<br />
Private Function SendRequest(ByVal message As String) As<br />
HttpWebRequest<br />
Dim request As HttpWebRequest =<br />
DirectCast(WebRequest.Create(Me.AgentEntryPoint), HttpWebRequest)<br />
request.Method = "POST"<br />
request.Headers.Add("HTTP_AUTH_LOGIN", Me.Login)<br />
request.Headers.Add("HTTP_AUTH_PASSWD", Me.Password)<br />
request.ContentType = "text/xml"<br />
request.ContentLength = message.Length<br />
Dim bytes As Byte() = New ASCIIEncoding().GetBytes(message)<br />
Using stream As Stream = request.GetRequestStream<br />
stream.Write(bytes, 0, message.Length)<br />
End Using<br />
Return request<br />
End Function<br />
' Parsing and validating packet<br />
'
66 通 过 远 程 API 设 置<br />
Private Function ParseAndValidate(ByVal xml As TextReader, ByVal<br />
schemaUri As String) As XmlDocument<br />
Dim schemas As New XmlSchemaSet<br />
schemas.Add(Nothing, schemaUri)<br />
Dim settings As New XmlReaderSettings<br />
If (Not Me.XmlSchemaValidation Is Nothing) Then<br />
AddHandler settings.ValidationEventHandler, New<br />
ValidationEventHandler(AddressOf Me.XmlSchemaValidation.Invoke)<br />
End If<br />
settings.ValidationType = ValidationType.Schema<br />
settings.ValidationFlags = (settings.ValidationFlags Or<br />
XmlSchemaValidationFlags.ProcessSchemaLocation)<br />
settings.Schemas = schemas<br />
Dim document As New XmlDocument<br />
Using reader As XmlReader = XmlReader.Create(xml, settings)<br />
document.Load(reader)<br />
End Using<br />
Return document<br />
End Function<br />
Private Function GetResponse(ByVal request As HttpWebRequest) As<br />
XmlDocument<br />
Using response As HttpWebResponse =<br />
DirectCast(request.GetResponse, HttpWebResponse)<br />
Using stream As Stream = response.GetResponseStream<br />
Using reader As TextReader = New<br />
StreamReader(stream)<br />
return Me.ParseAndValidate(reader,<br />
Me.OutputValidationSchema)<br />
End Using<br />
End Using<br />
End Using<br />
End Function<br />
End Class<br />
友 好 类 程 序<br />
Shared Sub Main(ByVal args As String())<br />
If (args.Length < 5) Then<br />
Console.WriteLine("Usage:<strong>Panel</strong>ApiRpcClient<br />
")<br />
Console.WriteLine(" ")<br />
Console.WriteLine(" Host name - The <strong>Panel</strong>'s host name")<br />
Console.WriteLine(" Login - Administrator's login")<br />
Console.WriteLine(" Password - Administrator's<br />
password")<br />
Console.WriteLine(" Protocol - API RPC protocol<br />
version")<br />
Console.WriteLine(" Request - Request file path<br />
(*.xml)")<br />
Else<br />
' Verifies the remote Secure Sockets Layer (SSL)<br />
certificate<br />
' used for authentication.<br />
ServicePointManager.ServerCertificateValidationCallback = New<br />
RemoteCertificateValidationCallback(AddressOf<br />
Program.RemoteCertificateValidation)<br />
Dim request As New Request
通 过 远 程 API 设 置 67<br />
request.XmlSchemaValidation = New<br />
ValidationEventHandler(AddressOf Program.XmlSchemaValidation)<br />
request.Hostname = args(0)<br />
'<br />
"10.49.8.120";<br />
request.Login = args(1)<br />
' "admin";<br />
request.Password = args(2)<br />
' "setup";<br />
request.Protocol = args(3)<br />
'<br />
"1.6.2.0";<br />
Dim packetUri As String = args(4) ' "request.xml";<br />
Try<br />
Program.PrintResult(request.Send(packetUri))<br />
Catch exception As Exception<br />
Console.WriteLine("Request error:{0}",<br />
exception.Message)<br />
End Try<br />
End If<br />
End Sub<br />
' The following method is invoked by the<br />
RemoteCertificateValidationDelegate.<br />
Private Shared Function RemoteCertificateValidation(ByVal sender<br />
As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal<br />
sslPolicyErrors As SslPolicyErrors) As Boolean<br />
If (sslPolicyErrors <br />
SslPolicyErrors.RemoteCertificateNotAvailable) Then<br />
Return True<br />
End If<br />
Console.WriteLine("Certificate error:{0}",<br />
sslPolicyErrors)<br />
' Do not allow this client to communicate with unauthenticated<br />
servers.<br />
Return False<br />
End Function<br />
'<br />
Private Shared Sub XmlSchemaValidation(ByVal sender As Object,<br />
ByVal e As ValidationEventArgs)<br />
Console.WriteLine("Validation error:{0}", e.Message)<br />
End Sub<br />
Private Shared Sub PrintResult(ByVal document As XmlDocument)<br />
Dim w As New XmlTextWriter(Console.Out)<br />
w.Formatting = Formatting.Indented<br />
document.WriteTo(w)<br />
w.Flush<br />
Console.WriteLine<br />
End Sub<br />
End Class<br />
End Namespace
68 通 过 远 程 API 设 置<br />
设 置 <strong>Panel</strong><br />
本 章 详 细 阐 述 如 何 使 用 远 程 API 执 行 <strong>Panel</strong> 设 置 操 作 。<br />
初 始 化 <strong>Panel</strong><br />
若 要 通 过 API RPC 初 始 化 <strong>Panel</strong>, 使 用 smb/initial_setup 操 作 模 式 执 行 XML 请 求 数 据 包 :<br />
<br />
<br />
<br />
...<br />
<br />
<br />
<br />
请 求 数 据 包 结 构<br />
initial_setup 节 点 结 构 如 下 :<br />
• password, required<br />
指 定 <strong>Panel</strong> 管 理 员 新 密 码 。 数 据 类 型 :serverPassword (plesk_server.xsd).5 到 14 个<br />
字 符 。<br />
• admin_email, required<br />
指 定 <strong>Panel</strong> 管 理 员 邮 件 地 址 。 数 据 类 型 :emailType (common.xsd).3 到 255 个 字 符 。<br />
• locale, optional<br />
指 定 <strong>Panel</strong> 语 言 - <strong>Panel</strong> 界 面 上 要 使 用 的 语 言 数 据 类 型 : 字 符 串 。
通 过 远 程 API 设 置 69<br />
请 求 样 本<br />
初 始 化 <strong>Panel</strong> 的 请 求 数 据 包 类 似 于 :<br />
<br />
<br />
<br />
P4$$w0rd<br />
johndoe@example.com<br />
<br />
<br />
<br />
初 始 化 <strong>Panel</strong> 的 请 求 数 据 包 默 认 语 言 是 德 语 ( 德 国 ) 类 似 于 :<br />
<br />
<br />
<br />
P4$$w0rd<br />
johndoe@example.com<br />
de-DE<br />
<br />
<br />
<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 的 initial_setup 节 点 结 构 如 下 :
70 通 过 远 程 API 设 置<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
特 定 操 作 错 误<br />
• 1003, 代 理 工 具 初 始 化 错 误 。<br />
<strong>Panel</strong> 已 初 始 化 。<br />
• 1019, 无 效 值 。<br />
指 定 语 言 不 可 用 。
通 过 远 程 API 设 置 71<br />
响 应 样 本<br />
从 服 务 器 接 收 到 的 正 响 应 如 下 :<br />
<br />
<br />
<br />
<br />
ok<br />
<br />
<br />
<br />
<br />
若 <strong>Panel</strong> 已 初 始 化 , 则 有 下 列 负 响 应 。<br />
<br />
<br />
<br />
<br />
error<br />
1003<br />
Initial setup already completed<br />
<br />
<br />
<br />
<br />
若 指 定 语 言 不 可 用 , 则 有 下 列 负 响 应 。<br />
<br />
<br />
<br />
<br />
error<br />
1019<br />
Locale en-US2 is not installed on server<br />
<br />
<br />
<br />
<br />
安 装 许 可 证<br />
若 要 使 用 API RPC 安 装 许 可 证 , 使 用 server/lic_install 操 作 模 式 执 行 XML 请 求 数 据 包 :<br />
<br />
<br />
<br />
...<br />
<br />
<br />
72 通 过 远 程 API 设 置<br />
请 求 数 据 包 结 构<br />
安 装 许 可 证 的 请 求 XML 数 据 包 , 包 括 server/lic_install 操 作 模 式 , 结 构 如 下 :<br />
• license, required<br />
包 含 许 可 证 数 据 。 数 据 类 型 :base64。<br />
• additional_key, optional<br />
若 要 安 装 附 加 许 可 证 , 请 指 定 。 数 据 类 型 : 无 。
通 过 远 程 API 设 置 73<br />
请 求 样 本<br />
此 数 据 包 安 装 <strong>Parallels</strong> Small Business <strong>Panel</strong> for Linux/Unix 默 认 许 可 证 :<br />
<br />
74 通 过 远 程 API 设 置<br />
<br />
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+IA0KLSA8cHAtc2<br />
1iLXVuaXgtMTA6a2V5IGNvcmU6Zm9ybWF0PSJvcGVuZnVzaW9uLTMiIHhtbG5zOmNvcmU9Imh0d<br />
HA6Ly9wYXJhbGxlbHMuY29tL3NjaGVtYXMva2V5cy9jb3JlLzMiIHhtbG5zOnBwLXNtYi11bml4<br />
LTEwPSJodHRwOi8vcGFyYWxsZWxzLmNvbS9zY2hlbWFzL2tleXMvcHJvZHVjdHMvcHAtc21iL3V<br />
uaXgvMTAuMCI+DQotIDwhLS0gVW5pcXVlIHByb2R1Y3QgS2V5IG51bWJlcg0KICAtLT4gDQogID<br />
xjb3JlOmtleS1udW1iZXIgY29yZTp0eXBlPSJzdHJpbmciPlNNQi4wMDAwMDAwMDwvY29yZTprZ<br />
XktbnVtYmVyPiANCi0gPCEtLSBLZXkgdmVyc2lvbg0KICAtLT4gDQogIDxjb3JlOmtleS12ZXJz<br />
aW9uIGNvcmU6dHlwZT0ic3RyaW5nIj4wMDAwPC9jb3JlOmtleS12ZXJzaW9uPiANCi0gPCEtLSB<br />
LZXkgZGVzY3JpcHRpb24NCiAgLS0+IA0KLSA8Y29yZTpkZXNjcmlwdGlvbj4NCiAgPGNvcmU6a2<br />
V5dHlwZT5QYXJhbGxlbHMgUGFuZWwgMTAgU01CIEVkaXRpb24gZm9yIFVuaXgvTGludXg8L2Nvc<br />
mU6a2V5dHlwZT4gDQogIDwvY29yZTpkZXNjcmlwdGlvbj4NCi0gPCEtLSBQcm9kdWN0IHdoaWNo<br />
IHRoaXMgbGljZW5zZSBpcyBpbnRlbmRlZCB0byB3b3JrIG9uDQogIC0tPiANCiAgPGNvcmU6cHJ<br />
vZHVjdCBjb3JlOnR5cGU9InN0cmluZyI+cHAtc21iLXVuaXg8L2NvcmU6cHJvZHVjdD4gDQotID<br />
whLS0gU3VwcG9ydGVkIHByb2R1Y3QgdmVyc2lvbg0KICAtLT4gDQogIDxjb3JlOnZlcnNpb24gY<br />
29yZTp0eXBlPSJzdHJpbmciPjEwLjA8L2NvcmU6dmVyc2lvbj4gDQotIDwhLS0gRGF0ZSBhZnRl<br />
ciB3aGljaCB0aGlzIGxpY2Vuc2UgYmVjb21lcyB1c2FibGUgKGluY2x1c2l2ZSkNCiAgLS0+IA0<br />
KICA8Y29yZTpzdGFydC1kYXRlIGNvcmU6dHlwZT0iZGF0ZSI+aW5zdGFudDwvY29yZTpzdGFydC<br />
1kYXRlPiANCi0gPCEtLSBEYXRlIGJlZm9yZSB3aGljaCB0aGlzIGxpY2Vuc2UgaXMgdXNhYmxlI<br />
ChleGNsdXNpdmUpDQogIC0tPiANCiAgPGNvcmU6ZXhwaXJhdGlvbi1kYXRlIGNvcmU6dHlwZT0i<br />
ZGF0ZSI+bmV2ZXI8L2NvcmU6ZXhwaXJhdGlvbi1kYXRlPiANCi0gPCEtLSBVUkwgb2YgdGhlIHN<br />
lcnZpY2UgZW5kcG9pbnQgdG8gdXNlIHdoZW4gcGVyZm9ybWluZyBhbiBhdXRvdXBkYXRlDQogIC<br />
0tPiANCiAgPGNvcmU6bGljZW5zZS1zZXJ2ZXItdXJsIGNvcmU6dHlwZT0ic3RyaW5nIj5odHRwc<br />
zovL2thLnBhcmFsbGVscy5jb206NTIyNC94bWxycGM8L2NvcmU6bGljZW5zZS1zZXJ2ZXItdXJs<br />
PiANCi0gPCEtLSBEYXRlIHdoZW4gcHJvZHVjdCB3aWxsIHRyeSB0byBwZXJmb3JtIGFuIGF1dG9<br />
1cGRhdGUNCiAgLS0+IA0KICA8Y29yZTp1cGRhdGUtZGF0ZSBjb3JlOnR5cGU9ImRhdGUiPmluc3<br />
RhbnQ8L2NvcmU6dXBkYXRlLWRhdGU+IA0KICA8Y29yZTp1cGRhdGUtdGlja2V0IGNvcmU6aGlkZ<br />
GVuPSJ0cnVlIiBjb3JlOnR5cGU9InN0cmluZyI+LS0tLS0tc21iXzEwX3VuaXhfZGVmYXVsdC0t<br />
LS0tLS08L2NvcmU6dXBkYXRlLXRpY2tldD4gDQotIDwhLS0gU01CIFVzZXJzDQogIC0tPiANCiA<br />
gPHBwLXNtYi11bml4LTEwOnNtYi11c2VycyBjb3JlOnR5cGU9ImludGVnZXIiPjE8L3BwLXNtYi<br />
11bml4LTEwOnNtYi11c2Vycz4gDQotIDwhLS0gTnVtYmVyIG9mIGRvbWFpbnMNCiAgLS0+IA0KI<br />
CA8cHAtc21iLXVuaXgtMTA6ZG9tYWlucyBjb3JlOnR5cGU9ImludGVnZXIiPjE8L3BwLXNtYi11<br />
bml4LTEwOmRvbWFpbnM+IA0KLSA8IS0tIEFiaWxpdHkgdG8gdXNlIFNwYW1Bc3Nhc3Npbg0KICA<br />
tLT4gDQogIDxwcC1zbWItdW5peC0xMDpzcGFtYXNzYXNpbi1zdXBwb3J0IGNvcmU6dHlwZT0iYm<br />
9vbGVhbiI+dHJ1ZTwvcHAtc21iLXVuaXgtMTA6c3BhbWFzc2FzaW4tc3VwcG9ydD4gDQotIDwhL<br />
S0gQVBTIEFwcGxpY2F0aW9uDQogIC0tPiANCiAgPHBwLXNtYi11bml4LTEwOmFwcy1hcHAgY29y<br />
ZTp0eXBlPSJzdHJpbmciPmh0dHA6Ly93d3cubWFnaWNzcGFtLmNvbS88L3BwLXNtYi11bml4LTE<br />
wOmFwcy1hcHA+IA0KLSA8IS0tIEFQUyBBcHBsaWNhdGlvbg0KICAtLT4gDQogIDxwcC1zbWItdW<br />
5peC0xMDphcHMtYXBwIGNvcmU6dHlwZT0ic3RyaW5nIj5odHRwOi8vd3d3LnBpbm5hY2xlY2Fyd<br />
C5jb20vPC9wcC1zbWItdW5peC0xMDphcHMtYXBwPiANCi0gPCEtLSBBUFMgQXBwbGljYXRpb24N<br />
CiAgLS0+IA0KICA8cHAtc21iLXVuaXgtMTA6YXBzLWFwcCBjb3JlOnR5cGU9InN0cmluZyI+aHR<br />
0cHM6Ly93d3cua2VlcGl0LmNvbS91bmxpbWl0ZWQ8L3BwLXNtYi11bml4LTEwOmFwcy1hcHA+IA<br />
0KLSA8IS0tIEFQUyBBcHBsaWNhdGlvbg0KICAtLT4gDQogIDxwcC1zbWItdW5peC0xMDphcHMtY<br />
XBwIGNvcmU6dHlwZT0ic3RyaW5nIj5odHRwOi8vd3d3LnN5bWFudGVjLmNvbS9ub3J0b24vaW50<br />
ZXJuZXQtc2VjdXJpdHk8L3BwLXNtYi11bml4LTEwOmFwcy1hcHA+IA0KLSA8IS0tIEFQUyBBcHB<br />
saWNhdGlvbg0KICAtLT4gDQogIDxwcC1zbWItdW5peC0xMDphcHMtYXBwIGNvcmU6dHlwZT0ic3<br />
RyaW5nIj5odHRwOi8vd3d3LmludGVyc3BpcmUuY29tL2VtYWlsbWFya2V0ZXIvPC9wcC1zbWItd<br />
W5peC0xMDphcHMtYXBwPiANCi0gPCEtLSBBUFMgQXBwbGljYXRpb24NCiAgLS0+IA0KICA8cHAt<br />
c21iLXVuaXgtMTA6YXBzLWFwcCBjb3JlOnR5cGU9InN0cmluZyI+aHR0cDovL3d3dy5pbnRlcnN<br />
waXJlLmNvbS9rbm93bGVkZ2VtYW5hZ2VyLzwvcHAtc21iLXVuaXgtMTA6YXBzLWFwcD4gDQotID<br />
xkc2lnOlNpZ25hdHVyZSB4bWxuczpkc2lnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htb<br />
GRzaWcjIj4NCi0gPGRzaWc6U2lnbmVkSW5mbz4NCiAgPGRzaWc6Q2Fub25pY2FsaXphdGlvbk1l<br />
dGhvZCBBbGdvcml0aG09Imh0dHA6Ly9wYXJhbGxlbHMuY29tL3NjaGVtYXMva2V5cy9jb3JlLzM<br />
jY2Fub25pY2FsaXplIiAvPiANCiAgPGRzaWc6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaH<br />
R0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIgLz4gDQotI<br />
Dxkc2lnOlJlZmVyZW5jZSBVUkk9IiI+DQotIDxkc2lnOlRyYW5zZm9ybXM+DQogIDxkc2lnOlRy<br />
YW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTR<br />
uLTIwMDEwMzE1I1dpdGhDb21tZW50cyIgLz4gDQogIDxkc2lnOlRyYW5zZm9ybSBBbGdvcml0aG<br />
09Imh0dHA6Ly9wYXJhbGxlbHMuY29tL3NjaGVtYXMva2V5cy9jb3JlLzMjdHJhbnNmb3JtIiAvP<br />
iANCiAgPC9kc2lnOlRyYW5zZm9ybXM+DQogIDxkc2lnOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09
通 过 远 程 API 设 置 75<br />
Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIgLz4gDQogIDxkc2lnOkR<br />
pZ2VzdFZhbHVlPlRrUzk2YnlycEpVdTVpUTdIbkhZYUhhMTIra2lPYmZhRXBYMC9TWU5iV2M9PC<br />
9kc2lnOkRpZ2VzdFZhbHVlPiANCiAgPC9kc2lnOlJlZmVyZW5jZT4NCiAgPC9kc2lnOlNpZ25lZ<br />
EluZm8+DQogIDxkc2lnOlNpZ25hdHVyZVZhbHVlPmZvcUxYVFErTWhRUm44Y2NzSmdoU1ZhNUJU<br />
Vi9kaUtaVGJjdk9qUnBXcW5XaDlXei9NQmFKY0pDNnFnZUNkMHJ4OFZsWERxcm0yVUYgS1I1d0d<br />
WeFM1ZSt6NWNqREFEcVUyRStGOXRaUndubXRuamZ4dHV0THZibjVyS0FYc1VtWTQ2OU1EcjNQeF<br />
RYbi9mYjZycmpvbGZOOCBOWVE1WUVtMDkyd3IrWTg2TGNIVkhKM2ZXK01sQWd3WXpua0lzdFVQS<br />
E1JMVVkYlgwZWkvWTFmcStSc0dSSnNhZ2dRNW56MzgralV5IFRvUDBRK2VrUnAxcUFVa09OWUYy<br />
M21FT1FuQ2V5eFNqQ3FrejNyZEhkaVFFQTBKcmhYMGowYWZYWDJkL2JRUnZVeU93UFBsVWhzNU4<br />
gY3FjcndRRDdMQ0lsOE9Udk5FaFRrNFo0OGdaM1ZIRzJ2bitpVGc9PTwvZHNpZzpTaWduYXR1cm<br />
VWYWx1ZT4gDQotIDxkc2lnOktleUluZm8+DQotIDxkc2lnOlg1MDlEYXRhPg0KICA8ZHNpZzpYN<br />
TA5Q2VydGlmaWNhdGU+TUlJRW5EQ0NBb1FDQVJFd0RRWUpLb1pJaHZjTkFRRUZCUUF3Z2FZeEN6<br />
QUpCZ05WQkFZVEFrSk5NUXN3Q1FZRFZRUUlFd0pJVFRFUiBNQThHQTFVRUJ4TUlTR0Z0YVd4MGI<br />
yNHhIREFhQmdOVkJBb1RFMU5YYzI5bWRDQkliMnhrYVc1bmN5Qk1kR1F4SFRBYkJnTlZCQXNUIE<br />
ZFbHVkR1Z5Ym1Gc0lFUmxkbVZzYjNCdFpXNTBNUnd3R2dZRFZRUURFeE5MUVNCeWIyOTBJR05sY<br />
25ScFptbGpZWFJsTVJ3d0dnWUogS29aSWh2Y05BUWtCRmcxcllVQnpkM052Wm5RdVkyOXRNQjRY<br />
RFRBNU1EWXdNakEyTURrek0xb1hEVE0yTVRBeE9EQTJNRGt6TTFvdyBnWUF4Q3pBSkJnTlZCQVl<br />
UQWtKTk1Rc3dDUVlEVlFRSUV3SklUVEVSTUE4R0ExVUVCeE1JU0dGdGFXeDBiMjR4SERBYUJnTl<br />
ZCQW9UIEUxTlhjMjltZENCSWIyeGthVzVuY3lCTWRHUXhIVEFiQmdOVkJBc1RGRWx1ZEdWeWJtR<br />
nNJRVJsZG1Wc2IzQnRaVzUwTVJRd0VnWUQgVlFRREV3dHdjQzF6YldJdGRXNXBlRENDQVNJd0RR<br />
WUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNYzR0RWVhRFMzciBDS0sxQ1RaUm9<br />
aMTdGVzU5Z0tBbTlOQmt6V3ZwZW9VM0lnZU5SMTMrdWs0My9lYW1EQkNHZTBtQnNwb05vWjErWD<br />
k3RXVGYzB4b2RvIGg0NVgrRUNIZk5kME1adzVrSFljWWF1M2kxSVBBakZMdm5DcE52ZXc1WHpXQ<br />
zcwZ0xlenZNaWxRbWxTYWpLSEFEL0EvMGhzYkI0aDkgeVdxNTZPcDRiT1hUTDVKN0NZV1JHeVRS<br />
aFV1MnFPbjZ2Y2o3Q2Rkb05oeWhRdDJTYlArNDlVMXFJdjMvOFZ3YnZrMzZhTVlTVlBlMSBHRk5<br />
0MlE3RkhKUUxicW1pY1doL0JBWkpjU2FGMWlPSUhuZ2VIbG9uSGptbzdJWUEvSXcyTUZMT0dPam<br />
82Kzg2M0dUbDJUOXA0dGxGIHZHNWhOMWFpNHkybDdOVzFTczhVT1JSclVlMENBd0VBQVRBTkJna<br />
3Foa2lHOXcwQkFRVUZBQU9DQWdFQUgrcnFFdkhNdEFRaStWOHEgSDdFM3VSRk8xaVA1QzBVejlD<br />
QVdMZ0QyNWthWTlSaUV1K1ZNcGtyZ2RwMkRKZUxIaWd5Q3MyM3dUbkZ6SS9qMUJNRjJ1VGdKS1B<br />
6MiBSOTA2YVcyR0tJWWpIencvd3BmUDUxck9CWTVQNlhpdXNtM2NGdk8zTnJ4Z0hJSy9WV3N5WW<br />
1EN25mMksyZUptQmsvZU85TklaalBoIGRkS2NrYmNZRVhRN3dzd2l0dDlYcTFuckg2eFNXT1lIV<br />
UUwcHI0QW1jVXc3TDdRQVUzdDBVM0lIQzNHYmVyVE1RNERSL2xDTFV5a24gUkl3aDNKQXZkYVFJ<br />
ZnA2TW9yNkY0VWtrMWh2bzkwVTR1VHFEbXc4RFJHcVRoOCtPUEY1V1dTL0MyK0o0bThOWTNDWjZ<br />
pa3FIc0FpcCB5Si9uR1pqU3cvdHc4N0xMWHBMMzJhRkFLcGpjOGc1MkZuc3YzVDlwdjRHd0Q2V0<br />
hHYU1DNUVsL21XSWplSE5pLytPTk5hbkdHbHJxIHVLQ1p2UktHenJRNjV4bHIyeEovTXFTWDV3c<br />
WdTK3R5SE1XY3BwVFpZdmF6cXZtZFRUbllNWlhwd1M1YWxqQlAwb3FWd09wVDFLUksgY0o3bXVa<br />
YzNUWlJ1OHY0b2pWa1dWTlF2QVNUUFNsdXFkcW42RFdwV2V3UEQ0ZXg3c2ZJam52N1phWmtZV2t<br />
PL3VDam9SeE4wbmFtVSBlVk5QemZSNXJ5emVjalozb0g0L1NXTGFYeHFiQ2k0QzBjMFlVeTZBMk<br />
ZkejVKK3RwWUdFbkVFMENpcDFyRjVnMFJhMURBZXV4ZFFaIEMwang3NlNsQ1VjSWhGQ0p4RmRxM<br />
k5JMHZJVnlVNTl6R2NrY3E3WVZZVlJ2czNVc2crb1pNRTBKbTFjPTwvZHNpZzpYNTA5Q2VydGlm<br />
aWNhdGU+IA0KICA8L2RzaWc6WDUwOURhdGE+DQogIDwvZHNpZzpLZXlJbmZvPg0KICA8L2RzaWc<br />
6U2lnbmF0dXJlPg0KICA8L3BwLXNtYi11bml4LTEwOmtleT4=<br />
<br />
<br />
<br />
此 请 求 数 据 包 安 装 附 加 许 可 证 。<br />
注 意 许 可 证 节 点 内 容 是 有 效 的 base64 节 点 , 不 是 许 可 证 。 执 行 此 请 求 数 据 包 会 出 现 错 误 1020。<br />
<br />
<br />
<br />
TGV0IHVzIGp1c3QgcHJldGVuZCB0aGF0IHRoaXMgaXMgYSBQYXJhbGxlbHMgUGFuZW<br />
wgbGljZW5zZSBrZXkuCk9mIGNvdXJzZSwgd2UgY291bGQgbm90IGluY2x1ZGUgYSByZWFsIGxpY<br />
2Vuc2Uga2V5IGluIHRoZSBkb2N1bWVudGF0aW9uLgpUaGFuayB5b3UgZm9yIHVuZGVyc3RhbmRp<br />
bmcu<br />
76 通 过 远 程 API 设 置<br />
<br />
<br />
<br />
响 应 数 据 包 结 构<br />
输 出 响 应 数 据 包 的 lic_install 节 点 结 构 如 下 :<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 :unsignedInt.<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。
通 过 远 程 API 设 置 77<br />
响 应 样 本<br />
从 服 务 器 接 收 到 的 正 响 应 如 下 :<br />
<br />
<br />
<br />
<br />
ok<br />
<br />
<br />
<br />
<br />
若 请 求 数 据 包 尝 试 安 装 无 效 许 可 证 , 则 收 到 错 误 。<br />
<br />
<br />
<br />
<br />
error<br />
1020<br />
上 传 的 许 可 证 文 件 无 效 或 不 包 含 许 可 证 。<br />
<br />
<br />
<br />
<br />
配 置 DNS<br />
若 要 通 过 API RPC 协 议 配 置 <strong>Panel</strong> DNS 服 务 , 使 用 dns 运 算 子 。<br />
停 用 DNS 服 务<br />
若 要 使 用 API RPC 停 用 <strong>Panel</strong> DNS 服 务 , 执 行 包 含 dns/disable 操 作 节 点 的 XML 请 求 :<br />
<br />
<br />
<br />
<br />
78 通 过 远 程 API 设 置<br />
请 求 数 据 包<br />
下 列 请 求 数 据 包 停 用 DNS 服 务 :<br />
<br />
<br />
<br />
<br />
<br />
响 应 数 据 包<br />
输 出 XML 数 据 包 的 停 用 节 点 结 构 如 下 :<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。<br />
• status, required<br />
数 据 类 型 :resultType (common.xsd).<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
样 本<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
正 响 应 类 似 于 :<br />
<br />
<br />
<br />
<br />
ok<br />
<br />
<br />
<br />
通 过 远 程 API 设 置 79<br />
更 改 SOA 记 录 模 板<br />
若 要 设 置 新 SOA 记 录 模 板 , 执 行 包 含 dns/set 操 作 节 点 的 XML 请 求 数 据 包 :<br />
<br />
<br />
<br />
...<br />
<br />
<br />
<br />
请 求 数 据 包 结 构<br />
若 要 设 置 新 SOA 记 录 模 板 , 执 行 包 含 dns/set 操 作 节 点 的 XML 请 求 数 据 包 :<br />
• soa, required<br />
指 定 SOA 参 数 。 数 据 类 型 :SOAType (plesk_dns.xsd).<br />
• ttl, optional<br />
指 定 ttl 参 数 值 。<strong>Panel</strong> 设 置 的 默 认 值 为 一 天 。 数 据 类 型 :unsignedInt.<br />
• refresh, optional<br />
指 定 refresh 参 数 值 。<strong>Panel</strong> 设 置 的 默 认 值 为 三 小 时 。 数 据 类 型 :unsignedInt.<br />
• retry, optional<br />
指 定 retry 参 数 值 。<strong>Panel</strong> 设 置 的 默 认 值 为 一 小 时 。 数 据 类 型 :unsignedInt.<br />
• expire, optional<br />
指 定 expire 参 数 值 。( 即 时 签 署 32 位 值 。)<br />
<strong>Panel</strong> 设 置 的 默 认 值 为 一 周 。 数 据 类 型 :unsignedInt.<br />
• minimum, optional<br />
指 定 minimum 参 数 值 。<strong>Panel</strong> 设 置 的 默 认 值 为 三 小 时 。 数 据 类 型 :unsignedInt.
80 通 过 远 程 API 设 置<br />
请 求 样 本<br />
此 数 据 包 更 新 SOA 记 录 模 板 , 设 置 TTL 间 隔 为 32 小 时 , 刷 新 间 隔 为 6 小 时 , 重 试 间 隔 为 15<br />
分 钟 , 保 留 <strong>Panel</strong> 过 期 和 最 小 间 隔 默 认 值 。<br />
<br />
<br />
<br />
<br />
115200<br />
21600<br />
900<br />
<br />
<br />
<br />
<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 的 set 节 点 结 构 如 下 :<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。
通 过 远 程 API 设 置 81<br />
响 应 样 本<br />
从 服 务 器 接 收 到 的 正 响 应 如 下 :<br />
<br />
<br />
<br />
<br />
ok<br />
<br />
<br />
<br />
<br />
若 指 定 的 值 过 长 , 则 返 回 负 响 应 :<br />
REQUEST PACKET<br />
<br />
<br />
<br />
<br />
4320000000<br />
<br />
<br />
<br />
<br />
RESPONSE PACKET<br />
<br />
<br />
error<br />
1014<br />
Parser error:Request is invalid<br />
<br />
设 置 资 源 记 录 模 板<br />
使 用 API RPC, 您 可 以 按 下 列 方 式 在 DNS 区 域 模 板 中 修 改 资 源 记 录 :<br />
• 添 加 新 资 源 记 录<br />
• 删 除 现 有 资 源 记 录 ( 可 在 模 板 中 检 索 到 RR 列 表 )
82 通 过 远 程 API 设 置<br />
添 加 RR 模 板<br />
若 要 添 加 DNS 区 域 资 源 记 录 模 板 , 执 行 包 含 dns/add-rec 操 作 模 式 的 XML 请 求 数 据 包 :<br />
<br />
<br />
<br />
...<br />
<br />
<br />
<br />
请 求 数 据 包 结 构<br />
添 加 DNS 记 录 到 DNS 区 域 模 板 的 请 求 XML 数 据 包 包 括 dns/add_rec 操 作 节 点 , 由 dnsRecord<br />
类 型 (plesk_dns.xsd) 表 示 , 结 构 如 下 :
通 过 远 程 API 设 置 83<br />
• type, required<br />
指 定 DNS 记 录 类 型 。 数 据 类 型 : 字 符 串 。<br />
允 许 的 值 :A | NS | CNAME | MX | PTR | TXT | SOA | AXFR | SRV.<br />
• host, required<br />
指 定 记 录 设 置 要 应 用 到 的 主 机 名 。 数 据 类 型 : 字 符 串 。<br />
• value, required<br />
指 定 即 将 链 接 host 值 的 值 。 数 据 类 型 : 字 符 串 。<br />
站 点 创 建 后 即 创 建 DNS 区 域 文 件 , 占 位 符 或 会 被 真 实 IP 地 址 / 主 机 名<br />
替 换 。<br />
• opt, optional<br />
持 有 DNS 记 录 可 选 信 息 。 数 据 类 型 : 字 符 串 。<br />
注 意 : 若 是 SRV 记 录 ,opt 节 点 可 以 包 含 附 加 XML 代 码 , 格 式 如 下 :。<br />
可 使 用 单 个 数 据 包 添 加 多 个 DNS 记 录 。 执 行 多 少 次 操 作 , 即 可 添 加 多 个 条 DNS 记<br />
录 。<br />
<br />
<br />
...<br />
<br />
...<br />
<br />
...<br />
<br />
84 通 过 远 程 API 设 置<br />
请 求 样 本<br />
NS 请 求 样 本<br />
<br />
<br />
<br />
NS<br />
<br />
ns.<domain><br />
<br />
<br />
<br />
创 建 example.com 站 点 后 即 可 创 建 DNS 区 域 , 包 含 下 列 RR:<br />
example.com.NS ns.example.com.<br />
让 ns.example.com 名 称 服 务 器 成 为 主 机 example.com。<br />
此 请 求 数 据 包 将 请 求 数 据 包 作 为 记 录 添 加 到 DNZ 区 域 模 板 ,<br />
provider-dns-server.example.com 站 点 名 称 服 务 器 。<br />
<br />
<br />
<br />
NS<br />
<br />
provider-dns-server.example.com<br />
<br />
<br />
<br />
记 录 模 板<br />
<br />
<br />
<br />
A<br />
mail<br />
<ip><br />
<br />
<br />
<br />
创 建 example.com 站 点 ( 站 点 IP 192.0.2.12) 后 即 可 创 建 DNS 区 域 , 包 含 下 列 RR:<br />
mail.example.com.A 192.0.2.12<br />
定 义 主 机 mail.example.com 的 IP 地 址 192.0.2.12。<br />
CNAME 记 录 模 板<br />
通 过 远 程 API 设 置 85<br />
<br />
<br />
CNAME<br />
www<br />
ns.<domain><br />
<br />
<br />
<br />
创 建 example.com 站 点 后 即 可 创 建 DNS 区 域 , 包 含 下 列 RR:<br />
www NS ns<br />
让 ns.example.com 成 为 www.example.com 别 名 。<br />
MX 记 录 模 板<br />
<br />
<br />
<br />
MX<br />
<br />
exchange.<domain><br />
0<br />
<br />
<br />
<br />
创 建 example.com 站 点 后 即 可 创 建 DNS 区 域 , 包 含 下 列 RR:<br />
example.com.MX<br />
0 exchange.example.com.<br />
让 mail.example.com 成 为 example.com 站 点 邮 件 服 务 器 。<br />
PTR 记 录 模 板<br />
<br />
<br />
<br />
PTR<br />
<ip><br />
community<br />
24<br />
<br />
<br />
<br />
创 建 example.com 站 点 ( 站 点 IP 192.0.2.12) 后 即 可 创 建 DNS 区 域 , 包 含 下 列 RR:<br />
192.0.2.12/24 PTR community.example.com<br />
让 community.example.com 站 点 成 为 子 网 192.0.2.12/24 的 域 名 指 示 器 。<br />
TXT 记 录 模 板<br />
<br />
<br />
86 通 过 远 程 API 设 置<br />
TXT<br />
about<br />
由 服 务 商 提 供 <br />
<br />
<br />
<br />
创 建 example.com 站 点 后 即 可 创 建 DNS 区 域 , 包 含 下 列 RR:<br />
关 于<br />
TXT 由 服 务 商 提 供<br />
添 加 文 字 描 述 " 由 服 务 商 提 供 " 到 域 名 about.example.com。<br />
SRV 记 录 模 板<br />
<br />
<br />
<br />
SRV<br />
_LDAP._tcp<br />
192.0.2.4.<br />
5 25 220<br />
<br />
<br />
<br />
创 建 example.com 站 点 后 即 可 创 建 DNS 区 域 , 包 含 下 列 RR:<br />
_LDAP._tcp SRV 5 25 220 192.0.2.4.<br />
让 站 点 example.com 上 的 客 户 LDAP 执 行 SRV 192.0.2.4 查 询 。<br />
添 加 多 条 记 录<br />
下 列 请 求 数 据 包 从 样 本 一 次 添 加 所 有 记 录 :<br />
<br />
<br />
<br />
NS<br />
<br />
ns.<domain><br />
<br />
<br />
NS<br />
<br />
provider-dns-server.example.com<br />
<br />
<br />
A<br />
mail<br />
<ip><br />
<br />
通 过 远 程 API 设 置 87<br />
CNAME<br />
www<br />
ns.<domain><br />
<br />
<br />
MX<br />
<br />
exchange.<domain><br />
0<br />
<br />
<br />
PTR<br />
<ip><br />
community<br />
24<br />
<br />
<br />
TXT<br />
about<br />
由 服 务 商 提 供 <br />
<br />
<br />
SRV<br />
_LDAP._tcp<br />
192.0.2.4.<br />
5 25 220<br />
<br />
<br />
<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 的 add_rec 节 点 结 构 如 下 :
88 通 过 远 程 API 设 置<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
• id, 若 操 作 成 功 需 提 供<br />
返 回 刚 添 加 的 DNS 记 录 唯 一 标 识 符 。 数 据 类 型 : 整 数 。
通 过 远 程 API 设 置 89<br />
响 应 样 本<br />
正 响 应 类 似 于 :<br />
<br />
<br />
<br />
<br />
ok<br />
17<br />
<br />
<br />
<br />
若 指 定 的 请 求 数 据 包 添 加 的 RR 值 错 误 ( 示 例 中 是 理 解 错 误 , 并 为 SRV 记 录 指 定 主 机 ), 则 返 回<br />
下 列 负 响 应 :<br />
REQUEST PACKET<br />
<br />
<br />
<br />
SRV<br />
_LDAP._tcp.ldap.domain-test-480908606.tst.<br />
192.0.2.4.<br />
5 25 220<br />
<br />
<br />
<br />
RESPONSE PACKET<br />
<br />
<br />
<br />
<br />
error<br />
1019<br />
指 定 的 DNS 记 录 值 错 误 。<br />
<br />
<br />
<br />
90 通 过 远 程 API 设 置<br />
检 索 DNS 区 域 模 板 相 关 信 息<br />
若 要 在 DNS 区 域 模 板 中 检 索 资 源 记 录 相 关 信 息 , 执 行 包 含 dns/get_rec 操 作 节 点 的 XML 数 据 包<br />
:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 的 get_rec 节 点 结 构 如 下 :
通 过 远 程 API 设 置 91<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。<br />
• status, required<br />
数 据 类 型 :resultType (common.xsd).<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
• id, 若 操 作 成 功 需 提 供<br />
返 回 DNS 记 录 唯 一 标 识 符 。 数 据 类 型 : 整 数 。<br />
• data, 若 操 作 成 功 需 提 供<br />
资 源 记 录 数 据 。<br />
• type, required<br />
指 定 DNS 记 录 类 型 。 数 据 类 型 : 字 符 串 。<br />
允 许 的 值 :A | NS | CNAME | MX | PTR | TXT | SOA | AXFR | SRV.<br />
• host, required<br />
指 定 DNS 所 用 的 主 机 名 。 数 据 类 型 : 字 符 串 。<br />
• value, required<br />
指 定 即 将 链 接 host 值 的 值 。 数 据 类 型 : 字 符 串 。<br />
站 点 创 建 后 即 创 建 DNS 区 域 文 件 , 占 位 符 或 会 被 真 实 IP 地 址 / 主 机<br />
名 替 换 。<br />
• opt, optional<br />
持 有 DNS 记 录 可 选 信 息 。 数 据 类 型 : 字 符 串 。
92 通 过 远 程 API 设 置<br />
响 应 样 本<br />
若 DNS 区 域 模 板 不 包 含 一 条 资 源 记 录 , 返 回 下 列 响 应 :<br />
REQUEST PACKET<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
RESPONSE PACKET<br />
<br />
<br />
<br />
<br />
<br />
下 列 响 应 包 含 <strong>Panel</strong> 默 认 DNS 区 域 模 板 描 述 :<br />
REQUEST PACKET<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
RESPONSE PACKET<br />
<br />
<br />
<br />
<br />
ok<br />
1<br />
<br />
NS<br />
<domain>.<br />
ns.<domain>.<br />
<br />
<br />
<br />
<br />
ok<br />
2<br />
<br />
A<br />
ns.<domain>.<br />
<ip><br />
<br />
<br />
ok<br />
3<br />
<br />
A<br />
<domain>.<br />
<ip><br />
<br />
<br />
<br />
<br />
ok<br />
4<br />
<br />
A<br />
webmail.<domain>.<br />
<ip><br />
<br />
<br />
<br />
<br />
ok<br />
5<br />
<br />
MX<br />
<domain>.<br />
mail.<domain>.<br />
10<br />
<br />
<br />
<br />
ok<br />
6<br />
<br />
A<br />
mail.<domain>.<br />
<ip><br />
<br />
<br />
<br />
<br />
ok<br />
7<br />
<br />
CNAME<br />
ftp.<domain>.<br />
<domain>.<br />
<br />
<br />
<br />
<br />
ok<br />
8<br />
<br />
PTR<br />
<ip> / 24<br />
<domain>.<br />
24<br />
<br />
通 过 远 程 API 设 置 93
94 通 过 远 程 API 设 置<br />
<br />
<br />
<br />
<br />
删 除 RR 模 板<br />
若 要 从 DNS 区 域 模 板 删 除 RR, 执 行 包 含 dns/del_rec 操 作 节 点 的 XML 数 据 包 :<br />
<br />
<br />
<br />
...<br />
<br />
<br />
<br />
请 求 数 据 包 结 构<br />
删 除 DNS 记 录 的 请 求 XML 数 据 包 , 包 括 del_rec 操 作 模 式 , 结 构 如 下 :<br />
• filter, required<br />
指 定 过 滤 规 则 。 数 据 类 型 :dnsSelectionFilterType (dns_input.xsd).<br />
若 留 空 (), 则 会 删 除 所 有 记 录 模 板 。<br />
• id, optional<br />
指 定 要 删 除 资 源 记 录 模 板 的 ID。 数 据 类 型 :id_type (common.xsd).<br />
• template, required<br />
指 定 要 删 除 的 记 录 模 板 。 数 据 类 型 : 无 。
通 过 远 程 API 设 置 95<br />
请 求 样 本<br />
此 请 求 数 据 包 从 DNS 区 域 模 板 删 除 记 录 ID 7。<br />
<br />
<br />
<br />
<br />
7<br />
<br />
<br />
<br />
<br />
<br />
此 请 求 数 据 包 从 DNS 区 域 模 板 删 除 记 录 ID 1-5。<br />
<br />
<br />
<br />
<br />
1<br />
2<br />
3<br />
4<br />
5<br />
<br />
<br />
<br />
<br />
<br />
此 数 据 包 从 DNS 区 域 模 板 删 除 所 有 记 录 :<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
96 通 过 远 程 API 设 置<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 的 del_rec 节 点 结 构 如 下 :<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
• id, 若 操 作 成 功 需 提 供<br />
返 回 DNS 记 录 删 除 的 唯 一 标 识 符 。 数 据 类 型 : 整 数 。
通 过 远 程 API 设 置 97<br />
响 应 样 本<br />
从 服 务 器 返 回 的 正 响 应 如 下 ( 成 功 删 除 所 有 DNS 区 域 模 板 记 录 ):<br />
REQUEST PACKET<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
RESPONSE PACKET<br />
<br />
<br />
<br />
<br />
ok<br />
1<br />
<br />
<br />
ok<br />
2<br />
<br />
<br />
ok<br />
3<br />
<br />
<br />
ok<br />
4<br />
<br />
<br />
ok<br />
5<br />
<br />
<br />
ok<br />
6<br />
<br />
<br />
ok<br />
7<br />
<br />
<br />
ok<br />
8<br />
<br />
<br />
ok<br />
9<br />
<br />
<br />
ok
98 通 过 远 程 API 设 置<br />
10<br />
<br />
<br />
ok<br />
11<br />
<br />
<br />
ok<br />
12<br />
<br />
<br />
<br />
<br />
若 指 定 要 删 除 记 录 簿 存 在 , 则 返 回 负 响 应 :<br />
REQUEST PACKET<br />
<br />
<br />
<br />
<br />
1<br />
2<br />
3<br />
4<br />
5<br />
<br />
<br />
<br />
<br />
<br />
RESPONSE PACKET<br />
<br />
<br />
<br />
<br />
error<br />
1013<br />
指 定 的 DNS 记 录 不 存 在 。<br />
1<br />
<br />
<br />
error<br />
1013<br />
指 定 的 DNS 记 录 不 存 在 。<br />
2<br />
<br />
<br />
error<br />
1013<br />
指 定 的 DNS 记 录 不 存 在 。<br />
3<br />
<br />
<br />
error<br />
1013<br />
指 定 的 DNS 记 录 不 存 在 。
通 过 远 程 API 设 置 99<br />
4<br />
<br />
<br />
error<br />
1013<br />
指 定 的 DNS 记 录 不 存 在 。<br />
5<br />
<br />
<br />
<br />
<br />
安 装 SSL 证 书<br />
若 要 安 装 SSL 证 书 , 执 行 包 含 certificate/install 操 作 节 点 的 XML 请 求 数 据 包 :<br />
<br />
< 证 书 ><br />
<br />
…<br />
<br />
<br />
<br />
请 求 数 据 包 结 构<br />
请 求 XML 数 据 包 的 安 装 节 点 结 构 如 下 :
100 通 过 远 程 API 设 置<br />
• name, required<br />
指 定 证 书 要 在 <strong>Panel</strong> 中 显 示 的 名 称 。 数 据 类 型 : 字 符 串 。<br />
• admin, required<br />
指 定 要 导 入 到 服 务 器 库 的 证 书 。 数 据 类 型 : 无 。<br />
• content, required<br />
包 含 证 书 相 关 所 有 数 据 。 数 据 类 型 : 无 。<br />
• csr, required<br />
指 定 证 书 CSR ( 证 书 签 署 请 求 )。 数 据 类 型 : 字 符 串 。<br />
• pvt, required<br />
指 定 证 书 密 钥 。 数 据 类 型 : 字 符 串 。<br />
• cert, optional<br />
包 含 证 书 内 容 。 数 据 类 型 : 字 符 串 。<br />
• ca, optional<br />
包 含 证 书 授 权 内 容 。 数 据 类 型 : 字 符 串 。<br />
• ip_address, required<br />
指 定 证 书 要 分 配 到 的 IP 地 址 。 数 据 类 型 :ip_type (common.xsd).
通 过 远 程 API 设 置 101<br />
请 求 样 本<br />
此 数 据 库 安 装 要 显 示 在 <strong>Panel</strong> 中 的 CA 证 书 , 名 称 common, 并 分 配 到 IP 地 址 192.0.2.14。<br />
<br />
< 证 书 ><br />
<br />
common<br />
<br />
<br />
-----BEGIN CERTIFICATE REQUEST-----<br />
MIICwTCCAakCAQAwfDELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB2dlb3JnaWExEDAO<br />
BgNVBAcTB0F0bGFudGExEjAQBgNVBAoTCURvZSwgTHRkLjEUMBIGA1UEAxMLam9o<br />
bmRvZS5vcmcxHzAdBgkqhkiG9w0BCQEWEGpkb2VAam9obmRvZS5vcmcwggEiMA0G<br />
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AQlX0pXqCs61ZUZ28zJ9PAG0yxvV<br />
2pJnJTMqrudyi/3vV8IZrBUUWMthf7tQmMSSyZWAqM+7n4Q9Y4f5WuR+3ReM5kxC<br />
hbQnOrjpdUmv1+ZhB9Q21UFA5eEptyDM/LR2JAjpKJD078rh76pVZm3EsJMl3+UE<br />
3Dg0DeKDelDKa4SYzW1JJnoen4UXX37lIHdBnIj+NCQbHRSiGD6w6mMyiCMOzXCp<br />
SBiGXgRRcaOVl50OeAdVKkwpJaae1K7K3q9j/LkAlOa1C8kuwdaCtKC+jFCE72I0<br />
Q8TnIn7ahPy0yd2EgzZ42Ys8D3PziqGax8I/e6BbEOfzi0n1HD9GCzaPAgMBAAGg<br />
ADANBgkqhkiG9w0BAQQFAAOCAQEAhoSVmInXLQDJu8jrZTVvFUx6O6aHOUkUf/G8<br />
Wnc2x7w+Qo7XHMHVDCUcP3K+bEw9oKxfpvRXP9XTVhX2jABHrxywLyjg4cXwaUgR<br />
t7ULvpLQ0Sum5XNtBypAdSQZZ7ktAa6Q3OMAFNdY8YG9J/L2zlcL9JJZLAUnRWzN<br />
fMBn9Ip3pCC8N9OF9+PFpxGvhtlc1O27w9wj0RdK3hF6Rg37qcUJSnn6XxOB41Q8<br />
ZZbX2Vbskz0WJ1IcxsfWDJ/HFdho7GrrD/wujNpwkTPc3xe2AHcfQX8c/92xyra/<br />
kdzxsDdFD7IwA5bBWGm8QwlL9yWuDPiZ8vSGw96D/Qije9UVkA==<br />
-----END CERTIFICATE REQUEST-----<br />
-----BEGIN RSA PRIVATE KEY-----<br />
MIIEpQIBAAKCAQEAyxfczy4HqgwOI6yxEa+dLaMLe5zC0ijcawsha8oFtJlxv/DM<br />
9INpdKjv9HaInrR0StjG9HgqTpYrhOCJxeB07/gGsQ82xsvbcKANuCSQKInpwVim<br />
GUsisGNrfnbKIoAewN21ENCZQrufcQNWNzTx/GjVCXqa/Sy4pXJ6Jud0dzA/+Vis<br />
SBw5Oo4IqI2MDvuoDk+exQLdgM45Vgq4d3A9+ESzmRmjmdovhNxnXdvMxA5RSrF+<br />
GZlBTFftsLQsnfnNiMR6ZTFgNCt2vdDmUAV9iix2B1PuoH94TRCJRG5tVCFtfVzS<br />
Rjo4ZzoiUs57efb3Oe56Lb64Ubi9ZRzNhdkGLwIDAQABAoIBABJdOAQr31mK+YRU<br />
SzaUMJw9z/3/cMZcF4I+YWlDvTxVW6nFdmLttw1rcTcjuLrRCmryKxtT+k9c2NaN<br />
DygrYaeJP+GmxIc5S8BlWJg8BiUEQ3TONUa4OozEkKXAzApOl3lNEuBQXGtiV8p6<br />
SMN5MCBowkq3IWifMJsVPOJjr25Pby04HCPeeM+cnEiPnMrBjK4OGH8/pKqedf05<br />
EcjnFKGFP2G0BUEhLX7ooMhB+AbjoIbGFXlBIzhaofs8zzSjNkKJ9i4LQMEe0GDf<br />
zCgE4GehW+FdcUlhG1zO7FOJc0LdVUR4deoMzaiNRIwdWxbokVwgSEnM20yXYdCl<br />
t+dsREECgYEA+sNPkzdQC0vF6me6WO8EqMu6AbPjObKnw0i8+g8ndRkMcJQ8FEXD<br />
+D447fCMORUdqGFH8aMWDp392z4JX3+ksSN9XtyEEKB3fsknENsDZKVJvh9U+gUD<br />
DO12mC1PleQBHBjN7Wlsg4mPZNv3cxUQLhFU0qW/moQdy0JrDfv+51ECgYEAz1Ww<br />
OJolOjKhPkGxiDY9sh95E/rpuwkGjb0qiS/UFHHuLc9pDYHyKRpPggdT4nEuBz34<br />
cRpihMgxBKEzuXGEPvdIST0aObOwcqfY4HAJ8PS08rZupCJsk413gYeI/ckXacQK<br />
bYYHLKSEavrcmMFc98i2fmbbNp+ckeLHfzVYtX8CgYEAyP6X39YsEIHRx4sQ8IvU<br />
3j89fnPjo7GxinPZFU3kQJWtROdsKIurAmVNWFrA6lgkh3xCIEqqOVklyv+0n5k+<br />
NsXNjaWPLYyRe0xcRcRmudtKelu+zxAJW+lSb7OR4QD6arzvAmbIFb7C8wLlGpc9<br />
es9lf9pe88kF4JACIxljPaECgYEAj4sWtwlZbsJwygZ3YAOVkUWi8QdNXLVx+R2X<br />
XmVjokgCi2rGo5hszLIvi6mBFQwgvtjTsZJ/1Mg4z6i/g8sosONJA5OvHXXfWnIE<br />
f9Zxu4Xf5Q4S6cX/f+R4cZAhcvsPH6WfRpZ9TxYTq3FE2uk8cTxfxIF3kYjNwF7O<br />
ma6YXQcCgYEApqdVVr92YSYZuDTKYGN5Rd5BaJSGPYWpShS5lPKBQ4n/TkSZzO1v<br />
Bxq2AbPRohXasWEAdfgfss1mcwX9xnKO/DhnxXE8KVFXKVehGmUth0WqA5qtL4xD<br />
h4hm3V7DcMqYbVzpmlWXFz5Is1fIflAhlfeX4h3s1rirTj+T6hODVf4=<br />
-----END RSA PRIVATE KEY-----<br />
-----BEGIN CERTIFICATE-----<br />
MIIDiTCCAnECBETUDecwDQYJKoZIhvcNAQEEBQAwgYgxCzAJBgNVBAYTAlJVMQww<br />
CgYDVQQIEwNOU08xDDAKBgNVBAcTA05TSzEUMBIGA1UEChMLRGFtYWdlIEluYy4x<br />
CzAJBgNVBAsTAlFBMRcwFQYDVQQDEw53d3cuc3dzb2Z0LmNvbTEhMB8GCSqGSIb3
102 通 过 远 程 API 设 置<br />
DQEJARYScmJ1c3lndWluQHBsZXNrLnJ1MB4XDTA2MDgwNTAzMTgwMVoXDTA3MDgw<br />
NTAzMTgwMVowgYgxCzAJBgNVBAYTAlJVMQwwCgYDVQQIEwNOU08xDDAKBgNVBAcT<br />
A05TSzEUMBIGA1UEChMLRGFtYWdlIEluYy4xCzAJBgNVBAsTAlFBMRcwFQYDVQQD<br />
Ew53d3cuc3dzb2Z0LmNvbTEhMB8GCSqGSIb3DQEJARYScmJ1c3lndWluQHBsZXNr<br />
LnJ1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyxfczy4HqgwOI6yx<br />
Ea+dLaMLe5zC0ijcawsha8oFtJlxv/DM9INpdKjv9HaInrR0StjG9HgqTpYrhOCJ<br />
xeB07/gGsQ82xsvbcKANuCSQKInpwVimGUsisGNrfnbKIoAewN21ENCZQrufcQNW<br />
NzTx/GjVCXqa/Sy4pXJ6Jud0dzA/+VisSBw5Oo4IqI2MDvuoDk+exQLdgM45Vgq4<br />
d3A9+ESzmRmjmdovhNxnXdvMxA5RSrF+GZlBTFftsLQsnfnNiMR6ZTFgNCt2vdDm<br />
UAV9iix2B1PuoH94TRCJRG5tVCFtfVzSRjo4ZzoiUs57efb3Oe56Lb64Ubi9ZRzN<br />
hdkGLwIDAQABMA0GCSqGSIb3DQEBBAUAA4IBAQBH8mTX3Q3csBUjzwfy3kIVobgh<br />
yElljOQ87Qv5rht5yktuTyS3oGXsDD0sO/uSG/akL34CTPkjl/vqYtzKMsfQ5pXY<br />
MlY6Q+GCd9FgL5pBn1S8HSZLpTBWZc25mNe3mXbCQzI03r4W+dQajAgAgDKpnRjg<br />
mblRg98+HwOL033pVgUnRwPoS3LO5jia5z3F0MkS8sV3x18DuoSLeVILhj0ttZ/p<br />
B7x0kIUee8A95Q00EDh+4IaPSMOqiFrVIlsHEuPV33aCAz2Dk2TxzplsoNz61BFA<br />
i3Cm04Gz1h9W/yzkcYCqiwUMIzSgUSBLn0hBeTid1u/NaDtic776YGuyaI+/<br />
-----END CERTIFICATE-----<br />
<br />
-----BEGIN CERTIFICATE-----<br />
MIIEjDCCA3SgAwIBAgIJAL4AGzKhkL5wMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYD<br />
VQQGEwJSVTELMAkGA1UECBMCTlYxFDASBgNVBAcTC05vdm9zaWJpcnNrMRIwEAYD<br />
VQQKEwlQYXJhbGxlbHMxDjAMBgNVBAsTBVBsZXNrMQ0wCwYDVQQDEwRhYmVsMSUw<br />
IwYJKoZIhvcNAQkBFhZhYmVseWFldkBwYXJhbGxlbHMuY29tMB4XDTA5MDQyODAz<br />
NDMxMloXDTEwMDQyODAzNDMxMlowgYoxCzAJBgNVBAYTAlJVMQswCQYDVQQIEwJO<br />
VjEUMBIGA1UEBxMLTm92b3NpYmlyc2sxEjAQBgNVBAoTCVBhcmFsbGVsczEOMAwG<br />
A1UECxMFUGxlc2sxDTALBgNVBAMTBGFiZWwxJTAjBgkqhkiG9w0BCQEWFmFiZWx5<br />
YWV2QHBhcmFsbGVscy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB<br />
AQDlslx5nXTQTvoic3GgW4HH5n5PoCz95Z9XNtCykwv0M2HdhMeNvde1NYDvkipa<br />
FHzVPEH7eBgjAsHR4y1J4zVGAs2KiJF0W81vi5YAVMOJ7Ysyz8WLP0PQWTmUoMFM<br />
aE0P7m788tphL328chdPJTjlCF6w9FKzddzrvdeK04ojp2cRO6fFMH7WJPcajvh/<br />
3EuYpc7xBNC6Wf8Gk6tB5kCCe7wpHyXsc7ve97nn30p6rUXypBNHYmLujMCtS90I<br />
K2xOCaSsCwkeUQ4mpXrr5lK7yM07b322vNZBiMTHV8DnaOWDPIcEIFl8NmOJovub<br />
dG5wdXopA6seCQLaf95lvULrAgMBAAGjgfIwge8wHQYDVR0OBBYEFLSg4V0zc0i0<br />
pRFtcygaiTgz5ikCMIG/BgNVHSMEgbcwgbSAFLSg4V0zc0i0pRFtcygaiTgz5ikC<br />
oYGQpIGNMIGKMQswCQYDVQQGEwJSVTELMAkGA1UECBMCTlYxFDASBgNVBAcTC05v<br />
dm9zaWJpcnNrMRIwEAYDVQQKEwlQYXJhbGxlbHMxDjAMBgNVBAsTBVBsZXNrMQ0w<br />
CwYDVQQDEwRhYmVsMSUwIwYJKoZIhvcNAQkBFhZhYmVseWFldkBwYXJhbGxlbHMu<br />
Y29tggkAvgAbMqGQvnAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA<br />
dEkV4DZMr7Rp0dlYqDpdviGu7FE+7R5u87Mz3E9cTApycbg4KTZAS53B3ItsAQv2<br />
yjXnkTQw2/l5XusW+OxhGpWC0z58jScyqNW/HkvheUrgbylIOOaKs9vAayi3mA0T<br />
O1cB1vnAgmB8puV6IdEKuvUimgbJhiGIpqTiL+2/YgSnkGhRuYlxuFB6U8WPgrUN<br />
UMt0linQtUsxMJCghMA3T8cODGon4ugZ0cCJmDfpkStI3jUuoxulSX2I8xmUQtGe<br />
2Q/sUQaWgJhe4RDoth6w7E9GE8733WGhC1mIjxyJMx4vmu4ofLAwN6XUzJJ3eC7s<br />
P34vOGq/sqxG/U+BbUu71A==<br />
-----END CERTIFICATE-----<br />
<br />
<br />
192.0.2.14<br />
<br />
<br />
通 过 远 程 API 设 置 103<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 的 install 节 点 结 构 如 下 :<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 :unsignedInt.<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。
104 通 过 远 程 API 设 置<br />
响 应 样 本<br />
正 响 应 类 似 于 :<br />
<br />
< 证 书 ><br />
<br />
<br />
ok<br />
<br />
<br />
<br />
<br />
服 务 器 负 响 应 类 似 于 :<br />
<br />
< 证 书 ><br />
<br />
<br />
error<br />
8002<br />
Unable to set csr content to certificate :CSR 字 段 包 含 错 误 值 :<br />
openssl 失 败 :<br />
<br />
<br />
<br />
<br />
<br />
< 证 书 ><br />
<br />
<br />
error<br />
8006<br />
Unable to set certificate name :<br />
<br />
<br />
<br />
通 过 远 程 API 设 置 105<br />
创 建 站 点<br />
若 要 创 建 站 点 帐 户 , 执 行 包 含 domain/add 操 作 节 点 的 XML 请 求 数 据 包 :<br />
<br />
<br />
<br />
…<br />
<br />
<br />
<br />
请 求 数 据 包 结 构<br />
创 建 站 点 帐 户 的 请 求 XML 数 据 包 , 包 括 domain/add 操 作 模 式 , 结 构 如 下 :
106 通 过 远 程 API 设 置<br />
• gen_setup, required<br />
站 点 帐 户 重 要 信 息 。 数 据 类 型 : 无 。<br />
• name, required<br />
指 定 站 点 名 称 。 数 据 类 型 :domainName (plesk_domain.xsd).<br />
• ip_address, required<br />
指 定 托 管 站 点 的 IP。 数 据 类 型 :ip_address (common.xsd).<br />
• hosting, required<br />
指 定 站 点 主 机 设 置 。 数 据 类 型 :domainHostingAgentSet (plesk_domain.xsd).<br />
• vrt_hst, required<br />
指 定 站 点 主 机 设 置 。 数 据 类 型 :domainPhHostingSet (plesk_domain.xsd).<br />
结 构 如 下 :<br />
• property, required<br />
指 定 主 机 参 数 。 数 据 类 型 :PleskPhysHostingPropertyType (plesk_domain.xsd).<br />
• name, required<br />
指 定 主 机 参 数 名 。 数 据 类 型 : 字 符 串 。<br />
• value, required<br />
指 定 主 机 参 数 值 。 数 据 类 型 : 任 何 。<br />
• ip_address, required<br />
指 定 站 点 IP 地 址 。 数 据 类 型 :ip_address (common.xsd).
通 过 远 程 API 设 置 107<br />
请 求 样 本<br />
此 请 求 创 建 站 点 example.com, 托 管 在 IP 192.0.2.48。<br />
<br />
<br />
<br />
<br />
example.com<br />
192.0.2.48<br />
<br />
<br />
<br />
<br />
ftp_login<br />
fp16se4fdf0<br />
<br />
<br />
ftp_password<br />
qweqwe<br />
<br />
192.0.2.48<br />
<br />
<br />
<br />
<br />
<br />
响 应 数 据 包 结 构<br />
输 出 响 应 数 据 包 的 add 节 点 结 构 如 下 :
108 通 过 远 程 API 设 置<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
• id, 若 操 作 成 功 需 提 供<br />
返 回 刚 添 加 的 站 点 帐 户 唯 一 标 识 符 。 数 据 类 型 : 整 数 。<br />
• guid, 若 操 作 成 功 需 提 供<br />
返 回 刚 添 加 的 站 点 帐 户 全 局 唯 一 标 识 符 。 数 据 类 型 : 字 符 串 。
通 过 远 程 API 设 置 109<br />
响 应 样 本<br />
添 加 新 站 点 帐 户 后 , 从 服 务 器 返 回 正 响 应 , 类 似 于 :<br />
<br />
<br />
<br />
<br />
ok<br />
6<br />
5c0e3881-22a2-4401-bcc0-881d691bfdef<br />
<br />
<br />
<br />
<br />
负 响 应 类 似 于 ( 取 决 于 错 误 类 型 返 回 不 同 的 错 误 码 ):<br />
<br />
<br />
<br />
<br />
error<br />
1023<br />
Operation failed.<br />
<br />
<br />
<br />
<br />
若 未 指 定 所 需 的 主 机 设 置 , 则 会 返 回 此 类 负 响 应 :<br />
REQUEST PACKET<br />
<br />
<br />
<br />
<br />
sample.com<br />
10.53.129.101<br />
<br />
<br />
<br />
<br />
ftp_password<br />
fp16sdfdfrttg0<br />
<br />
10.53.129.101<br />
<br />
<br />
<br />
<br />
<br />
RESPONSE PACKET<br />
<br />
110 通 过 远 程 API 设 置<br />
<br />
<br />
error<br />
2204<br />
无 法 更 新 主 机 首 选 项 。 系 统 用 户 更 新 失 败 : 无 法 检 查 系 统 用 户 是 否 存 在 : 登 录 名<br />
为 空 。 错 误 字 段 :"login".<br />
<br />
<br />
<br />
<br />
创 建 子 站 点<br />
若 要 创 建 子 站 点 帐 户 , 执 行 包 含 subdomain/add 操 作 节 点 的 XML 请 求 数 据 包 :<br />
<br />
< 子 站 点 ><br />
<br />
…<br />
<br />
<br />
<br />
请 求 数 据 包 结 构<br />
添 加 新 子 站 点 的 请 求 XML 数 据 包 , 包 括 subdomain/add 操 作 模 式 , 结 构 如 下 :
通 过 远 程 API 设 置 111<br />
• parent, required<br />
指 定 要 创 建 站 点 / 子 站 点 的 子 站 点 名 称 。(Windows 仅 支 持 主 要 子 站 点 。) 数 据 类 型 : 字 符 串 。<br />
• name, required<br />
指 定 子 站 点 名 称 。 数 据 类 型 : 字 符 串 。<br />
• home, required 若 在 子 文 件 夹 中 创 建 子 站 点 ( 仅 限 Windows)<br />
指 定 子 站 点 主 目 录 路 径 。 数 据 类 型 : 字 符 串 。<br />
若 留 空 (), 则 会 使 用 主 要 站 点 根 目 录 。<br />
• property, optional<br />
指 定 所 创 建 子 站 点 的 主 机 设 置 。 数 据 类 型 :SubdomainPropertyType<br />
(subdomain.xsd).<br />
• name, required<br />
指 定 主 机 参 数 名 。 数 据 类 型 : 字 符 串 。<br />
• value, required<br />
指 定 主 机 参 数 值 。 数 据 类 型 : 任 何 。
112 通 过 远 程 API 设 置<br />
请 求 样 本<br />
此 数 据 包 创 建 子 站 点 forum.example.com:<br />
<br />
< 子 站 点 ><br />
<br />
example.com<br />
forum<br />
<br />
ftp_login<br />
john<br />
<br />
<br />
ftp_password<br />
sample<br />
<br />
<br />
<br />
<br />
在 子 文 件 夹 中 创 建 子 站 点<br />
此 数 据 包 在 子 文 件 夹 /httpdocs/BlogEngine 中 创 建 子 站 点 blog.example.com<br />
<br />
< 子 站 点 ><br />
<br />
example.com<br />
blog<br />
/httpdocs/BlogEngine<br />
<br />
<br />
通 过 远 程 API 设 置 113<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 的 add 节 点 结 构 如 下 :<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
• id, 若 操 作 成 功 需 提 供<br />
• 返 回 所 创 建 子 站 点 的 唯 一 标 识 符 。 数 据 类 型 :id_type (common.xsd).<br />
特 定 操 作 错 误<br />
• 1007 - 同 名 子 站 点 已 存 在 。<br />
• 1015 - 未 找 到 主 站 点 / 子 站 点 。<br />
• 1019 - 指 定 的 属 性 无 效 。<br />
• 1023 - 操 作 失 败 。
114 通 过 远 程 API 设 置<br />
响 应 样 本<br />
创 建 子 站 点 后 , 从 服 务 器 接 收 到 的 正 响 应 如 下 :<br />
<br />
< 子 站 点 ><br />
<br />
<br />
ok<br />
1<br />
<br />
<br />
<br />
<br />
若 指 定 的 子 站 点 已 存 在 , 返 回 此 类 负 响 应 :<br />
REQUEST PACKET<br />
<br />
< 子 站 点 ><br />
<br />
example.com<br />
blog<br />
<br />
<br />
<br />
RESPONSE PACKET<br />
<br />
< 子 站 点 ><br />
<br />
<br />
error<br />
1007<br />
同 名 子 站 点 已 存 在 。<br />
<br />
<br />
<br />
通 过 远 程 API 设 置 115<br />
定 义 可 用 的 APS 目 录<br />
若 要 导 出 APS 目 录 自 定 义 列 表 ( 配 置 文 件 ) 到 <strong>Panel</strong>, 执 行 包 含 aps/import-config 操 作 节 点 的<br />
XML 请 求 数 据 包 :<br />
<br />
<br />
<br />
...<br />
<br />
<br />
<br />
配 置 文 件 ( 第 37 页 ) 应 先 通 过 上 传 运 算 子 ( 第 118 页 ) 上 传 到 服 务 器 。<br />
请 求 数 据 包 结 构<br />
请 求 数 据 包 的 import-config 节 点 结 构 如 下 :<br />
• filename, required<br />
请 求 样 本<br />
指 定 上 传 到 服 务 器 的 配 置 文 件 名 称 。 数 据 类 型 : 字 符 串 。<br />
值 上 传 响 应 ( 第 124 页 ) 是 中 的 临 时 文 件 名 ( 位 于 "upload/result/file" 元 素 )。<br />
上 传 到 服 务 器 之 前 导 入 APS 目 录 配 置 的 请 求 数 据 包 , 类 似 于 :<br />
在 Linux/Unix 中 :<br />
<br />
<br />
<br />
/usr/local/psa/tmp/li_8FZruf<br />
<br />
<br />
<br />
在 Windows 中 :<br />
<br />
<br />
<br />
"C:/Program Files/<strong>Parallels</strong>/Plesk/tmp/li_9D.tmp"<br />
<br />
<br />
116 通 过 远 程 API 设 置<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 的 import-config 节 点 结 构 如 下 :<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。
通 过 远 程 API 设 置 117<br />
响 应 样 本<br />
从 服 务 器 接 收 到 的 正 响 应 如 下 :<br />
<br />
<br />
<br />
<br />
ok<br />
<br />
<br />
<br />
<br />
若 未 找 到 所 需 文 件 , 则 返 回 此 类 负 响 应 :<br />
<br />
<br />
<br />
<br />
error<br />
1013<br />
File "/usr/local/psa/tmp/li_8FZruf" does not exist<br />
<br />
<br />
<br />
<br />
若 请 求 的 文 件 访 问 权 限 错 误 , 则 返 回 此 类 负 响 应 ( 未 使 用 上 传 代 理 上 传 ):<br />
<br />
<br />
<br />
<br />
error<br />
1023<br />
无 法 使 用 指 定 文 件 作 为 配 置 文 件 <br />
<br />
<br />
<br />
<br />
安 装 应 用 程 序<br />
若 要 在 站 点 和 子 站 点 上 安 装 应 用 程 序 , 使 用 aps 运 算 子 。
118 通 过 远 程 API 设 置<br />
导 入 应 用 程 序 包<br />
将 文 件 上 传 到 服 务 器<br />
若 要 上 传 文 件 到 <strong>Panel</strong> 管 理 的 服 务 器 , 使 用 上 传 运 算 子 。 不 同 于 其 他 操 作 , 上 传 运 算 子 不 使 用<br />
标 准 请 求 数 据 包 结 构 。 而 是 使 用 发 布 方 式<br />
(http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html) 来 上 传 文 件 。<br />
当 <strong>Panel</strong> 处 理 请 求 时 , 响 应 包 含 在 常 规 响 应 XML 数 据 包 中 。 上 传 文 件 到 <strong>Panel</strong> 后 , 则 可 用 于 其<br />
他 操 作 。<br />
注 意 : 也 可 使 用 FTP 管 理 器 上 传 文 件 , 注 意 对 文 件 进 行 API RPC 操 作 可 能 会 出 现 权 限 问 题 。<br />
建 议 使 用 上 传 运 算 子 。<br />
使 用 cURL 上 传 文 件<br />
步 骤 如 下 :<br />
1. 创 建 到 服 务 器 的 SSH 连 线 。<br />
2. 在 Unix shell 中 键 入 下 列 字 符 串 :<br />
curl -k -F myfile=@install.log -H 'HTTP_AUTH_LOGIN:admin' -H<br />
'HTTP_AUTH_PASSWD:password' https://panel-ip:8443/enterprise/control/agent.<br />
php<br />
参 数<br />
curl<br />
-k<br />
指 定 要 用 的 cURL (http://curl.haxx.se/)。 需 安 装 到 Unix 机 器 。<br />
使 用 SSL 连 线 。<br />
-F myfile=@install.log<br />
install.log 文 件 已 上 传 。 可 在 单 个 数 据 包 中 上 传 多 个 文 件 。<br />
-H 'HTTP_AUTH_LOGIN:admin'<br />
指 定 <strong>Panel</strong> 管 理 员 登 录 名 。 使 用 <strong>Panel</strong> 登 录 名 替 换 管 理 值 。<br />
-H 'HTTP_AUTH_PASSWD:password'<br />
指 定 默 认 管 理 员 的 密 码 。 使 用 <strong>Panel</strong> 访 问 密 码 替 换 密 码 值 。<br />
https://panel-ip:8443/enterprise/control/agent.php<br />
指 定 <strong>Panel</strong> 服 务 器 地 址 。 使 用 服 务 器 IP 地 址 替 换 值 。<br />
3. 按 下 ENTER。
通 过 远 程 API 设 置 119<br />
使 用 PHP 上 传 文 件<br />
此 为 使 用 PHP 脚 本 上 传 文 件 到 <strong>Panel</strong> 的 示 例 。 使 用 <strong>Panel</strong> 凭 证 更 改 HOST、LOGIN、PASSWD<br />
和 FILENAME。<br />
主 机 <strong>Panel</strong> 管 理 的 服 务 器 IP 地 址 和 名 称 。<br />
LOGIN <strong>Panel</strong> 管 理 员 登 录 名 。<br />
PASSWD <strong>Panel</strong> 管 理 员 密 码 。<br />
FILENAME 要 上 传 的 文 件 全 名 。<br />
"@$filename"));<br />
$result = curl_exec($ch);<br />
if (curl_errno($ch)) {<br />
echo "\n\n-------------------------\n" .<br />
"cURL error number:".<br />
curl_errno($ch);
120 通 过 远 程 API 设 置<br />
echo "\n\ncURL error:". curl_error($ch);<br />
}<br />
curl_close($ch);<br />
//fclose($fp);<br />
return;<br />
}<br />
uploadFile(realpath(FILENAME));<br />
>
通 过 远 程 API 设 置 121<br />
使 用 .NET 上 传 文 件<br />
此 .NET 源 代 码 上 传 文 件 到 <strong>Panel</strong>。 使 用 <strong>Panel</strong> 实 例 参 数 替 换 变 量 Hostname、Login、<br />
Password 和 Protocol。 使 用 要 上 传 的 文 件 全 名 替 换 Filename 变 量 。<br />
Filename 要 上 传 的 文 件 全 名 。<br />
主 机 名 <strong>Panel</strong> 管 理 的 服 务 器 IP 地 址 和 名 称 。<br />
登 录 <strong>Panel</strong> 管 理 员 登 录 名 。<br />
密 码 <strong>Panel</strong> 管 理 员 密 码 。<br />
Protocol API RPC 协 议 版 本 。<br />
使 用 系 统 ;<br />
使 用 System.Net;<br />
使 用 System.Text;<br />
使 用 System.IO;<br />
使 用 System.Xml;<br />
使 用 System.Xml.Schema;<br />
使 用 System.Security.Cryptography.X509Certificates;<br />
使 用 System.Net.Security;<br />
namespace ConsoleApplication1<br />
{<br />
public class Request<br />
{<br />
// Public interface<br />
//<br />
public string Filename = "./tmp/myfile.sh"; // Upload file name;<br />
public string Hostname = "localhost"; // The <strong>Panel</strong>'s host name<br />
public string Login = "admin";<br />
// Administrator Login<br />
public string Password = "setup"; // Administrator Password<br />
public string Protocol = "1.6.2.0"; // API RPC Version Protocol.<br />
// Handler for receiving information about document type definition (DTD),<br />
// XML-Data Reduced (XDR) schema, and XML Schema definition language (XSD)<br />
schema validation errors.<br />
public ValidationEventHandler XmlSchemaValidation = null;<br />
public Request()<br />
{<br />
}<br />
public string AgentEntryPoint { get { return "https://" + Hostname +<br />
":8443/enterprise/control/agent.php"; } }<br />
public string InputValidationSchema { get { return "https://" + Hostname +<br />
":8443/schemas/rpc/" + Protocol + "/agent_input.xsd"; } }<br />
public string OutputValidationSchema { get { return "https://" + Hostname +<br />
":8443/schemas/rpc/" + Protocol + "/agent_output.xsd"; } }<br />
public XmlDocument UploadFile(string uploadfile)<br />
{
122 通 过 远 程 API 设 置<br />
HttpWebRequest request =<br />
(HttpWebRequest)WebRequest.Create(AgentEntryPoint);<br />
string boundary = "----------" + DateTime.Now.Ticks.ToString("x");<br />
request.Headers.Add("HTTP_AUTH_LOGIN",<br />
Login); request.Headers.Add("HTTP_AUTH_PASSWD",<br />
Password); request.ContentType = "multipart/form-data; boundary=" +<br />
boundary; request.Method = "POST";<br />
// Build up the post message header<br />
StringBuilder sb = new StringBuilder();<br />
sb.Append("--");<br />
sb.Append(boundary);<br />
sb.Append("\r\n");<br />
sb.Append("Content-Disposition:form-data; name=\"");<br />
sb.Append("sampfile");<br />
sb.Append("\"; filename=\"");<br />
sb.Append(Path.GetFileName(uploadfile));<br />
sb.Append("\"");<br />
sb.Append("\r\n");<br />
sb.Append("Content-Type:");<br />
sb.Append("application/octet-stream");<br />
sb.Append("\r\n");<br />
sb.Append("\r\n");<br />
string postHeader = sb.ToString();<br />
byte[] postHeaderBytes = Encoding.UTF8.GetBytes(postHeader);<br />
// Build the trailing boundary string as a byte array<br />
// ensuring the boundary appears on a line by itself<br />
byte[] boundaryBytes =<br />
Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");<br />
FileStream fileStream = new FileStream(uploadfile,<br />
FileMode.Open, FileAccess.Read);<br />
long length = postHeaderBytes.Length + fileStream.Length +<br />
boundaryBytes.Length;<br />
request.ContentLength = length;<br />
Stream stream = request.GetRequestStream();<br />
stream.Write(postHeaderBytes, 0, postHeaderBytes.Length);<br />
// Write out the file contents<br />
byte[] buffer = new Byte[checked((uint)Math.Min(4096,<br />
(int)fileStream.Length))];<br />
int bytesRead = 0;<br />
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)<br />
stream.Write(buffer, 0, bytesRead);<br />
// Write out the trailing boundary stream.Write(boundaryBytes, 0,<br />
boundaryBytes.Length);<br />
XmlDocument result = GetResponse(request);<br />
return result;<br />
}<br />
// Private interface<br />
//<br />
// Parsing and validating packet<br />
//<br />
private XmlDocument ParseAndValidate(TextReader xml, string schemaUri)<br />
{<br />
XmlSchemaSet schemas = new XmlSchemaSet();<br />
schemas.Add(null, schemaUri);
通 过 远 程 API 设 置 123<br />
XmlReaderSettings settings = new XmlReaderSettings();<br />
if (XmlSchemaValidation != null)<br />
settings.ValidationEventHandler += new<br />
ValidationEventHandler(XmlSchemaValidation);<br />
settings.ValidationType = ValidationType.Schema;<br />
settings.ValidationFlags |=<br />
XmlSchemaValidationFlags.ProcessSchemaLocation;<br />
settings.Schemas = schemas;<br />
XmlDocument document = new XmlDocument();<br />
using (XmlReader reader = XmlTextReader.Create(xml, settings))<br />
{<br />
document.Load(reader);<br />
}<br />
return document;<br />
}<br />
private XmlDocument GetResponse(HttpWebRequest request)<br />
{<br />
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())<br />
using (Stream stream = response.GetResponseStream())<br />
using (TextReader reader = new StreamReader(stream))<br />
{<br />
return ParseAndValidate(reader, OutputValidationSchema);<br />
}<br />
}<br />
}<br />
class Program<br />
{<br />
static void Main(string[] args)<br />
{<br />
if (args.Length < 4)<br />
{<br />
Console.WriteLine("Usage:ParalLelSpaNelapirpcclient <br />
");<br />
Console.WriteLine(" ");<br />
Console.WriteLine(" Hostname - The <strong>Panel</strong>'s host name");<br />
Console.WriteLine(" Login - Administrator login");<br />
Console.WriteLine(" Password - Administrator password");<br />
Console.WriteLine(" FileName - Upload file name");<br />
return;<br />
}<br />
// Verifies the remote Secure Sockets Layer (SSL) certificate used for<br />
authentication.<br />
ServicePointManager.ServerCertificateValidationCallback =<br />
new RemoteCertificateValidationCallback(RemoteCertificateValidation);<br />
Request request = new Request(); request.XmlSchemaValidation =<br />
XmlSchemaValidation;<br />
try<br />
{<br />
XmlDocument result = request.UploadFile(filename);<br />
PrintResult(result);<br />
}<br />
catch (Exception e)<br />
{<br />
Console.WriteLine("Request error:{0}", e.Message);<br />
}<br />
}
124 通 过 远 程 API 设 置<br />
// The following method is invoked by the<br />
RemoteCertificateValidationDelegate.<br />
private static bool RemoteCertificateValidation(object sender,<br />
X509Certificate certificate, X509Chain chain, SslPolicyErrors<br />
sslPolicyErrors)<br />
{<br />
if (sslPolicyErrors != SslPolicyErrors.RemoteCertificateNotAvailable)<br />
return true;<br />
Console.WriteLine("Certificate error:{0}", sslPolicyErrors);<br />
// Do not allow this client to communicate with unauthenticated servers.<br />
return false;<br />
}<br />
//<br />
private static void XmlSchemaValidation(object sender, ValidationEventArgs<br />
e)<br />
{<br />
Console.WriteLine("Validation error:{0}", e.Message);<br />
}<br />
static void PrintResult(XmlDocument document)<br />
{<br />
XmlTextWriter writer = new XmlTextWriter(Console.Out);<br />
writer.Formatting = Formatting.Indented;<br />
document.WriteTo(writer);<br />
writer.Flush();<br />
Console.WriteLine();<br />
}<br />
}<br />
}<br />
响 应 数 据 包 结 构<br />
上 传 输 出 XML 数 据 包 结 构 如 下 :
通 过 远 程 API 设 置 125<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
• name, required<br />
指 定 上 传 文 件 名 。 数 据 类 型 : 字 符 串 。<br />
• file, required<br />
指 定 创 建 的 临 时 文 件 全 名 。 数 据 类 型 : 字 符 串 。
126 通 过 远 程 API 设 置<br />
响 应 样 本<br />
上 传 单 个 数 据 包<br />
若 请 求 代 理 上 传 li.sh 数 据 包 到 <strong>Panel</strong> 管 理 的 服 务 器 , 则 返 回 负 响 应 , 类 似 于 :<br />
<br />
<br />
<br />
ok<br />
li.sh<br />
/usr/local/psa/tmp/li_8FZruf<br />
<br />
<br />
<br />
若 上 传 的 文 件 超 出 upload_max_filesize, 在 php.ini 中 设 置 , 则 返 回 负 响 应 , 类 似 于 :<br />
<br />
<br />
<br />
error<br />
1023<br />
上 传 的 文 件 超 出 php.ini 中 的 upload_max_filesize 设 置 <br />
li.sh<br />
/usr/local/psa/tmp/li_8FZruf<br />
<br />
<br />
<br />
上 传 多 个 数 据 包<br />
若 请 求 代 理 上 传 li.sh 和 mybox.sh 文 件 到 <strong>Panel</strong> 服 务 器 , 则 返 回 负 响 应 , 类 似 于 :<br />
<br />
<br />
<br />
ok<br />
li.sh<br />
/usr/local/psa/tmp/li_8FZruf<br />
<br />
<br />
ok<br />
mybox.sh<br />
/usr/local/psa/tmp/li_8FZrHts<br />
<br />
<br />
通 过 远 程 API 设 置 127<br />
导 入 上 传 的 应 用 程 序 包<br />
若 要 导 入 上 传 的 应 用 程 序 包 ( 第 118 页 ) 到 <strong>Panel</strong>, 执 行 包 含 aps/import-package 操 作 模 式 的<br />
XML 请 求 :<br />
<br />
<br />
<br />
...<br />
<br />
<br />
<br />
请 求 数 据 包 结 构<br />
导 入 APS 数 据 包 到 <strong>Panel</strong> 的 XML 数 据 包 包 含 import-package 操 作 节 点 , 结 构 如 下 :<br />
• filename, required<br />
指 定 上 传 到 服 务 器 的 应 用 程 序 包 名 称 。 数 据 类 型 : 字 符 串 。<br />
值 上 传 响 应 ( 第 124 页 ) 是 中 的 临 时 文 件 名 ( 位 于 "upload/result/file" 元 素 )。<br />
请 求 样 本<br />
上 传 到 服 务 器 之 前 导 入 <strong>Panel</strong> APS 目 录 配 置 的 请 求 数 据 包 , 类 似 于 :<br />
在 Linux/Unix 中 :<br />
<br />
<br />
<br />
/usr/local/psa/tmp/li_8FZruf<br />
<br />
<br />
<br />
在 Windows 中 :<br />
<br />
<br />
<br />
"C:/Program Files/<strong>Parallels</strong>/Plesk/tmp/li_9D.tmp"<br />
<br />
<br />
128 通 过 远 程 API 设 置<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 的 import-package 节 点 结 构 如 下 :<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
• package-id, required 若 操 作 成 功 需 提 供<br />
返 回 分 配 给 <strong>Panel</strong> 管 理 的 服 务 器 上 的 程 序 包 ID 。 数 据 类 型 :id_type<br />
(common.xsd).
通 过 远 程 API 设 置 129<br />
响 应 样 本<br />
从 服 务 器 接 收 到 的 正 响 应 如 下 :<br />
<br />
<br />
<br />
<br />
ok<br />
13<br />
<br />
<br />
<br />
<br />
若 未 找 到 所 需 文 件 , 则 返 回 此 类 负 响 应 :<br />
<br />
<br />
<br />
<br />
error<br />
1013<br />
File "/usr/local/psa/tmp/li_8FZruf" does not exist<br />
<br />
<br />
<br />
<br />
若 导 入 的 文 件 是 无 效 的 APS 应 用 程 序 包 , 则 返 回 此 类 负 响 应 。<br />
1) 要 导 入 的 存 档 缺 少 APP-META.xml 程 序 包 元 文 件 。<br />
<br />
<br />
<br />
<br />
error<br />
1023<br />
Entry 'APP-META.xml' not found<br />
<br />
<br />
<br />
<br />
2) APP-META.xml 未 经 过 XML 方 案 验 证 。<br />
<br />
<br />
<br />
<br />
error<br />
1023<br />
无 法 要 求 元 数 据 描 述 <br />
<br />
<br />
<br />
130 通 过 远 程 API 设 置<br />
从 APS 目 录 下 载 应 用 程 序 包<br />
若 要 从 APS 目 录 下 载 应 用 程 序 包 , 执 行 包 含 aps/download-package 操 作 节 点 的 XML 请 求 数 据 包<br />
:<br />
<br />
<br />
<br />
...<br />
<br />
<br />
<br />
若 操 作 成 功 , 则 创 建 下 载 任 务 。<br />
注 意 : 操 作 成 功 不 表 示 开 始 下 载 。 下 载 是 否 成 功 , 需 执 行 get-download-status ( 第 135 页 ) 查 看<br />
。<br />
请 求 数 据 包 结 构<br />
download-package 节 点 结 构 如 下 :
通 过 远 程 API 设 置 131<br />
• package, required<br />
描 述 目 标 数 据 包 的 所 有 数 据 。 数 据 类 型 :APSIdentifierType (aps.xsd).<br />
APS 目 录 的 子 节 点 值 。 详 细 信 息 , 参 阅 元 素 参 考 ,APS 目 录 API 参 考<br />
(http://www.apsstandard.org/r/doc/aps-catalog-1.1-api/index.htm)。<br />
• name, required<br />
指 定 应 用 程 序 数 据 包 名 。 数 据 类 型 : 字 符 串 。<br />
• version, optional<br />
指 定 应 用 程 序 版 本 。 数 据 类 型 : 字 符 串 。<br />
若 未 定 义 , 则 APS 目 录 中 有 多 个 版 本 , 只 下 载 最 新 版 。<br />
• release, optional<br />
指 定 程 序 包 版 本 。 数 据 类 型 : 字 符 串 。<br />
若 未 定 义 , 则 APS 目 录 中 有 多 个 版 本 , 只 下 载 最 新 版 。<br />
• vendor, optional<br />
指 定 应 用 程 序 厂 商 。 数 据 类 型 : 字 符 串 。<br />
• packager, optional<br />
指 定 应 用 程 序 打 包 程 序 。 数 据 类 型 : 字 符 串<br />
aps-catalog-url, optional<br />
指 定 要 下 载 程 序 包 的 APS 目 录 URL。 数 据 类 型 : 字 符 串<br />
若 节 点 出 现 , 值 中 的 URL 同 APS 目 录 配 置 文 件 ( 第 37 页 ) 中 相 同 , 否 则 会 出 现 错 误 1013。<br />
若 未 包 含 在 数 据 包 中 , 从 最 先 在 APS 目 录 配 置 文 件 ( 第 115 页 ) 中 定 义 的 APS 目 录 下 载 的<br />
数 据 包
132 通 过 远 程 API 设 置<br />
请 求 样 本<br />
此 数 据 包 安 装 从 特 定 APS 目 录 安 装 特 定 版 本 、 发 行 号 、 厂 商 和 发 行 商 的 应 用 程 序 包 ( 不 同 于 默<br />
认 值 )。<br />
<br />
<br />
<br />
<br />
BlogEngine.NET<br />
1.4.5<br />
2<br />
www.dotnetblogengine.net<br />
parallels.com<br />
<br />
http://apscatalog.com/<br />
<br />
<br />
<br />
此 数 据 包 从 APS 目 录 下 载 多 个 程 序 包 及 其 博 客 应 用 程 序 。 假 定 要 下 载 的 每 个 应 用 程 序 目 录 程 序<br />
包 版 本 最 新 。<br />
<br />
<br />
<br />
<br />
BlogEngine.NET<br />
<br />
<br />
<br />
<br />
WordPress<br />
<br />
<br />
<br />
<br />
geeklog<br />
<br />
<br />
<br />
通 过 远 程 API 设 置 133<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 download-package 结 构 如 下 :<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
• task-id, required 若 操 作 成 功 需 提 供<br />
返 回 下 载 任 务 ID, 可 稍 后 用 于 检 索 下 载 状 态 。 数 据 类 型 : 字 符 串 。
134 通 过 远 程 API 设 置<br />
响 应 样 本<br />
从 服 务 器 接 收 到 的 正 响 应 如 下 :<br />
<br />
<br />
<br />
<br />
ok<br />
4<br />
<br />
<br />
<br />
<br />
若 请 求 定 义 的 APS 目 录 URL 不 在 APS 目 录 配 置 文 件 ( 第 115 页 ) 列 表 中 , 则 返 回 下 列 响 应 。<br />
若 请 求 的 URL 不 同 于 配 置 文 件 中 定 义 的 URL 也 是 下 列 响 应 。 若 APS 目 录 配 置 中 定 义 的 URL<br />
遗 失 斜 线 。<br />
<br />
<br />
<br />
<br />
error<br />
1013<br />
目 录 中 的 URL "http://apscatalog.com" 不 存 在 <br />
<br />
<br />
<br />
<br />
若 APS 目 录 URL 无 法 解 析 , 返 回 此 类 负 响 应 :<br />
<br />
<br />
<br />
<br />
error<br />
1023<br />
无 法 解 析 主 机 :apscatalog.co; 无 请 求 类 型 的 数 据 记 录 <br />
<br />
<br />
<br />
<br />
若 APS 目 录 配 置 文 件 ( 第 115 页 ) 格 式 错 误 , 返 回 此 类 负 响 应 :<br />
<br />
<br />
<br />
<br />
error<br />
1023<br />
APS 目 录 配 置 文 件 损 坏 <br />
<br />
<br />
<br />
通 过 远 程 API 设 置 135<br />
获 取 下 载 任 务 状 态<br />
若 要 检 索 程 序 包 下 载 任 务 状 态 , 执 行 包 含 aps/get-download-status 操 作 节 点 的 XML 请 求 数 据 包 :<br />
<br />
<br />
<br />
...<br />
<br />
<br />
<br />
可 能 的 状 态 :<br />
• "finished/error" - 未 在 APS 目 录 中 找 到 程 序 包 , 导 致 无 法 启 动 任 务<br />
• "finished/package-id" - 成 功 完 成 任 务<br />
• "in-progress/current" - 程 序 包 下 载 中<br />
• "in-progress" 缺 少 "current" 子 节 点 - 未 开 始 下 载 程 序 包 , 但 已 在 队 列 中<br />
请 求 数 据 包 结 构<br />
get-download-status 节 点 结 构 如 下 :<br />
• filter, required<br />
检 索 到 过 滤 器 下 载 任 务 。 数 据 类 型 : 无 。<br />
若 定 义 的 值 为 空 , 则 返 回 所 有 当 前 所 有 下 载 任 务 列 表 。 在 Windows 中 , 为 每 个 下 载 任 务 创<br />
建 独 立 交 易 。 下 载 完 成 则 下 载 交 易 结 束 。<br />
• task-id, optional<br />
指 定 下 载 任 务 ID ( 返 回 操 作 结 果 )。 数 据 类 型 :id_type<br />
(common.xsd).
136 通 过 远 程 API 设 置<br />
请 求 样 本<br />
此 数 据 包 请 求 当 前 下 载 交 易 状 态 。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
此 数 据 包 请 求 下 载 任 务 ID 10、11 和 12 的 状 态 。<br />
<br />
<br />
<br />
<br />
10<br />
11<br />
12<br />
<br />
<br />
<br />
通 过 远 程 API 设 置 137<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 get-download-status 结 构 如 下 :
138 通 过 远 程 API 设 置<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 若 请 求 包 含 非 空 过 滤 器<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
• filter-id, required 若 操 作 成 功 需 提 供<br />
返 回 被 过 滤 操 作 的 ID。 数 据 类 型 : 任 何 。<br />
• id, required 若 操 作 成 功 需 提 供<br />
返 回 检 索 到 的 下 载 任 务 ID。 数 据 类 型 :id_type (common.xsd)<br />
• task, optional<br />
描 述 下 载 任 务 状 态 的 数 据 集 。 数 据 类 型 : 无 。<br />
结 构 如 下 :
通 过 远 程 API 设 置 139<br />
• id, required<br />
返 回 检 索 到 的 下 载 任 务 ID。 数 据 类 型 :id_type (common.xsd).<br />
• finished, optional<br />
指 定 下 载 任 务 完 成 。 数 据 类 型 : 无 。<br />
• in-progress, optional<br />
指 定 下 载 任 务 进 行 中 , 或 在 下 载 队 列 中 一 次 指 定 多 个 程 序 包 。 数 据 类 型 :<br />
APSPackageDownloadStatusInProgress (aps.xsd).<br />
• error, optional<br />
指 定 下 载 任 务 完 成 , 但 出 现 错 误 。 包 含 错 误 描 述 。 数 据 类 型 : 无 。<br />
• package-id, required 若 下 载 成 功 需 提 供<br />
指 定 下 载 成 功 完 成 , 以 及 在 服 务 器 上 分 配 给 程 序 包 的 ID。 数 据 类 型 :id_type<br />
(common.xsd).<br />
• total, required<br />
指 定 应 用 程 序 总 大 小 , 字 节 。 数 据 类 型 : 整 数 。<br />
• completed, required<br />
指 定 下 载 包 总 大 小 , 字 节 。 数 据 类 型 : 整 数 。<br />
• current, optional<br />
指 定 下 载 任 务 进 行 中 , 下 载 队 列 中 无 等 待 任 务 。 数 据 类 型 : 字 符 串 。
140 通 过 远 程 API 设 置<br />
请 求 和 响 应 样 本<br />
样 本 1<br />
请 求<br />
此 数 据 包 返 回 下 载 任 务 ID 18 的 状 态 :<br />
<br />
<br />
<br />
<br />
18<br />
<br />
<br />
<br />
<br />
响 应 A<br />
正 响 应 类 似 于 :<br />
<br />
<br />
<br />
<br />
ok<br />
18<br />
18<br />
<br />
18<br />
<br />
13<br />
<br />
<br />
<br />
<br />
<br />
<br />
响 应 B<br />
若 下 载 任 务 未 启 动 , 或 完 成 但 出 错 , 返 回 此 类 响 应 。<br />
<br />
<br />
<br />
<br />
ok<br />
18<br />
18<br />
<br />
18<br />
<br />
无 法 从 目 录 下 载 程 序 包 <br />
<br />
<br />
通 过 远 程 API 设 置 141<br />
<br />
<br />
<br />
响 应 C<br />
若 请 求 ID 不 存 在 , 返 回 此 类 负 响 应 。<br />
<br />
<br />
<br />
<br />
error<br />
1013<br />
未 找 到 下 载 任 务 id 18<br />
181<br />
<br />
<br />
<br />
<br />
样 本 2<br />
请 求<br />
此 数 据 包 请 求 当 前 交 易 中 所 有 下 载 任 务 的 状 态 。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
响 应 A<br />
从 运 行 树 状 任 务 的 Linux 服 务 器 返 回 此 响 应 : 一 个 任 务 完 成 , 一 个 处 理 中 , 一 个 在 队 列 中 。<br />
<br />
<br />
<br />
<br />
ok<br />
10<br />
10<br />
<br />
10<br />
<br />
5<br />
<br />
<br />
<br />
<br />
ok<br />
11<br />
11<br />
<br />
11<br />
142 通 过 远 程 API 设 置<br />
3584225<br />
2458<br />
<br />
<br />
<br />
<br />
<br />
ok<br />
12<br />
12<br />
<br />
12<br />
<br />
45888236<br />
0<br />
<br />
<br />
<br />
<br />
<br />
<br />
响 应 B<br />
交 易 运 行 时 , 从 Windows 服 务 器 上 返 回 此 响 应 :<br />
<br />
<br />
<br />
<br />
ok<br />
38<br />
38<br />
<br />
38<br />
<br />
0<br />
0<br />
<br />
<br />
<br />
<br />
<br />
<br />
响 应 C<br />
无 下 载 交 易 运 行 时 , 收 到 此 类 响 应 。<br />
<br />
<br />
<br />
<br />
ok<br />
<br />
<br />
<br />
通 过 远 程 API 设 置 143<br />
安 装 应 用 程 序<br />
安 装 应 用 程 序 要 求 您 识 别 要 安 装 的 源 程 序 包 。 按 ID 识 别 或<br />
name-version-release-vendor-packager 信 息 识 别 程 序 包 。<br />
若 要 提 供 程 序 包 ID, 执 行 :<br />
• 使 用 导 入 <strong>Panel</strong> 后 分 配 给 程 序 包 的 ID ( 第 128 页 )<br />
• 使 用 从 APS 目 录 成 功 下 载 后 分 配 给 程 序 包 的 ID ( 第 137 页 )<br />
• 使 用 从 可 用 程 序 包 信 息 返 回 的 ID ( 第 156 页 )<br />
若 要 提 供 name-version-release-vendor-packager 信 息 , 从 可 安 装 的 程 序 包 检 索 信 息 ( 第 154<br />
页 )。<br />
在 站 点 或 子 站 点 上 安 装 应 用 程 序<br />
若 要 安 装 应 用 程 序 , 执 行 包 含 aps/install 操 作 节 点 的 XML 请 求 数 据 包 :<br />
<br />
<br />
<br />
...<br />
<br />
<br />
144 通 过 远 程 API 设 置<br />
请 求 数 据 包 结 构<br />
install 节 点 结 构 如 下 :<br />
domain-id 或 domain-name 或 subdomain-id 或 subdomain-name 需 要 。<br />
• domain-id, optional<br />
指 定 要 安 装 的 站 点 ID。 数 据 类 型 :id_type (common.xsd).<br />
• domain-name, optional<br />
指 定 要 安 装 的 站 点 名 。 数 据 类 型 : 字 符 串 。<br />
• subdomain-id, optional<br />
指 定 要 安 装 的 子 站 点 ID。 数 据 类 型 :id_type (common.xsd).<br />
• subdomain-name, optional<br />
指 定 要 安 装 的 子 站 点 名 。 数 据 类 型 : 字 符 串 。<br />
package-id 或 package 需 要 。<br />
注 意 : 程 序 包 识 别 信 息 , 使 用 aps/get-packages-list 操 作 获 取 ( 第 154 页 )。<br />
• package-id, optional<br />
指 定 要 在 服 务 器 上 安 装 的 应 用 程 序 包 ID。 数 据 类 型 :id_type (common.xsd).
通 过 远 程 API 设 置 145<br />
• package, optional<br />
服 务 器 上 安 装 的 应 用 程 序 包 信 息 。 数 据 类 型 :APSIdentifierType (aps.xsd), 查 看 下 列 定<br />
义 。<br />
• ssl, optional<br />
指 定 应 用 程 序 是 否 可 以 通 过 HTTPS 协 议 访 问 。 数 据 类 型 :boolean.<br />
若 未 指 定 , 则 通 过 HTTP 访 问 。<br />
• url-prefix, optional<br />
指 定 站 点 / 子 站 点 URL。 数 据 类 型 :APSUrlPrefixType (aps.xsd).<br />
若 未 指 定 , 则 使 用 默 认 设 置 ("/application/default-prefix" 元 素 , 位 于<br />
APP-META.xml 文 件 中 )。<br />
• database, optional<br />
应 用 程 序 创 建 的 数 据 包 属 性 描 述 。 数 据 类 型 :APSDatabaseInputType (aps.xsd), 查 看<br />
下 列 定 义 。<br />
若 应 用 程 序 需 要 数 据 库 , 且 未 在 队 列 中 指 定 database 元 素 , 则 在 创 建 时 自 动 生 成 名 称 、 用 户<br />
登 录 名 和 密 码 。<br />
按 应 用 程 序 需 求 , 数 据 库 服 务 器 (MySQL, PostgreSQL 或 Microsoft SQL Server) 自 动 选 择<br />
。<br />
• settings, optional<br />
应 用 程 序 安 装 设 置 集 。<br />
。<br />
数 据 类 型 :APSSettingsInputType (aps.xsd), 查 看 下 列 定 义<br />
若 要 安 装 的 应 用 程 序 有 设 置 ( 应 用 程 序 包 元 数 据 文 件 APP-META.xml 包 含 至 少 一 个 元 素<br />
"//setting")。<br />
package 节 点 由 类 型 APSIdentifierType 表 示 (aps.xsd), 图 示 如 下 :<br />
• name, required<br />
指 定 应 用 程 序 数 据 包 名 。 数 据 类 型 : 字 符 串 。<br />
• version, optional<br />
指 定 应 用 程 序 版 本 。 数 据 类 型 : 字 符 串 。<br />
• release, optional<br />
指 定 程 序 包 版 本 。 数 据 类 型 : 字 符 串 。
146 通 过 远 程 API 设 置<br />
• vendor, optional<br />
指 定 应 用 程 序 厂 商 。 数 据 类 型 : 字 符 串 。<br />
• packager, optional<br />
指 定 应 用 程 序 打 包 程 序 。 数 据 类 型 : 字 符 串<br />
应 在 简 要 或 扩 展 表 单 中 指 定 程 序 包 :<br />
• 简 要 型 提 供 应 用 程 序 名<br />
• 扩 展 型 提 供 所 有 程 序 包 详 细 信 息 : 名 称 、 版 本 、 发 行 号 、 厂 商 和 打 包 程 序<br />
database 节 点 由 类 型 APSDatabaseInputType 表 示 (aps.xsd), 图 示 如 下 :<br />
• name, required<br />
指 定 数 据 包 名 称 。 应 唯 一 。 数 据 类 型 : 字 符 串 。<br />
• login, required<br />
指 定 数 据 包 用 户 登 录 名 。 应 唯 一 。 数 据 类 型 : 字 符 串 。<br />
• password, required<br />
指 定 数 据 库 用 户 密 码 。 数 据 类 型 : 字 符 串 。<br />
settings 节 点 由 类 型 APSSettingsInputType 表 示 (aps.xsd), 图 示 如 下 :<br />
• setting, required<br />
应 用 程 序 设 置 定 义 。 数 据 类 型 :APSSettingInputType (aps.xsd).<br />
应 用 程 序 设 置 名 称 信 息 , 以 及 从 应 用 程 序 包 元 数 据 文 件 获 取 的 值 APP-META.xml (<br />
"//setting" 元 素 )。<br />
应 用 程 序 元 数 据 文 件 中 未 指 定 默 认 值 , 则 使 用 设 置 元 素 。<br />
• name, required
通 过 远 程 API 设 置 147<br />
指 定 设 置 ID。 可 以 和 APP-META.xml ("//setting[@id]") 中 指 定 同 一 设 置 ID。 数<br />
据 类 型 : 字 符 串 。<br />
• value, required<br />
指 定 设 置 值 。 数 据 类 型 : 字 符 串 。
148 通 过 远 程 API 设 置<br />
请 求 样 本<br />
下 列 程 序 包 在 站 点 example.com 上 安 装 应 用 程 序 Serendipity。<br />
<br />
<br />
<br />
example.com<br />
<br />
serendipity<br />
1.1.2<br />
33<br />
s9y.org<br />
parallels.com<br />
<br />
<br />
s9DB<br />
s9user<br />
s9password<br />
<br />
< 设 置 ><br />
< 设 置 。><br />
admin_p_name<br />
admin<br />
<br />
< 设 置 。><br />
admin_name<br />
admin<br />
<br />
< 设 置 。><br />
admin_password<br />
P4$$w0rd<br />
<br />
< 设 置 。><br />
admin_email<br />
admin@example.com<br />
<br />
< 设 置 。><br />
title<br />
Project X Blog<br />
<br />
< 设 置 。><br />
blog_descr<br />
Project X Blog<br />
<br />
< 设 置 。><br />
locale<br />
en-US<br />
<br />
<br />
<br />
<br />
<br />
下 列 数 据 包 在 子 站 点 上 安 装 LinkPoint 应 用 程 序 ( 程 序 包 ID 5)。 若 安 装 应 用 程 序 不 需 要 数 据 库<br />
且 无 设 置 时 , 会 用 到 此 类 请 求 。
通 过 远 程 API 设 置 149<br />
<br />
<br />
<br />
subdomain.example.com<br />
5<br />
<br />
<br />
<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 的 install 节 点 结 构 如 下 :<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
特 定 操 作 错 误<br />
1013 - 未 找 到 指 定 对 象 ( 站 点 、 子 站 点 、 程 序 包 )<br />
1019 - 指 定 设 置 无 法 安 装 应 用 程 序<br />
1100 - 不 满 足 应 用 程 序 需 求
150 通 过 远 程 API 设 置<br />
响 应 样 本<br />
从 服 务 器 接 收 到 的 正 响 应 如 下 :<br />
<br />
<br />
<br />
<br />
ok<br />
<br />
<br />
<br />
<br />
'1013 未 找 到 对 象 ' 错 误<br />
1. 若 指 定 站 点 / 子 站 点 不 存 在 , 则 返 回 此 类 负 响 应 。<br />
<br />
<br />
<br />
<br />
error<br />
1013<br />
Domain not found.<br />
<br />
<br />
<br />
<br />
2. 若 未 在 服 务 器 上 找 到 所 需 程 序 包 , 则 返 回 此 类 负 响 应 。<br />
<br />
<br />
<br />
<br />
error<br />
1013<br />
程 序 包 不 存 在 <br />
<br />
<br />
<br />
<br />
'1019 设 置 错 误 ' 错 误<br />
1. 若 应 用 程 序 设 置 没 有 默 认 值 , 或 请 求 的 设 置 不 包 含 请 求 的 数 据 包 , 则 返 回 此 类 负 响 应 。<br />
REQUEST PACKET<br />
<br />
<br />
<br />
example.com<br />
<br />
AutoIndex<br />
<br />
<br />
通 过 远 程 API 设 置 151<br />
<br />
RESPONSE PACKET<br />
<br />
<br />
<br />
<br />
error<br />
1019<br />
安 装 中 出 错 。<br />
"admin_password" 设 置 值 无 效 :'' 字 符 短 于 1<br />
"user_password" 设 置 值 无 效 :'' 字 符 短 于 1<br />
<br />
<br />
<br />
<br />
2. 若 请 求 中 指 定 的 应 用 程 序 设 置 未 经 过 APP-META.xml 验 证 , 则 返 回 此 类 负 响 应 。<br />
REQUEST PACKET<br />
<br />
<br />
<br />
10<br />
<br />
joomla<br />
<br />
< 设 置 ><br />
< 设 置 。><br />
admin_name<br />
admin<br />
<br />
< 设 置 。><br />
admin_password<br />
dfkjEEtbgg<br />
<br />
< 设 置 。><br />
admin_email<br />
johndoe@example.com<br />
<br />
< 设 置 。><br />
locale<br />
en-US<br />
<br />
< 设 置 。><br />
title<br />
Joomla<br />
<br />
<br />
<br />
<br />
<br />
RESPONSE PACKET<br />
<br />
<br />
<br />
152 通 过 远 程 API 设 置<br />
error<br />
1019<br />
安 装 中 出 错 。<br />
"locale" 值 应 为 (en-GB, fr-FR, de-DE)<br />
<br />
<br />
<br />
<br />
3. 若 指 定 的 Web 目 录 已 存 在 , 或 用 于 其 它 内 容 , 则 返 回 此 类 负 响 应 :<br />
<br />
<br />
<br />
<br />
error<br />
1019<br />
安 装 中 出 错 。<br />
目 标 目 录 已 存 在 , 或 用 于 其 它 Web 应 用 程 序 。<br />
<br />
<br />
<br />
<br />
4. 若 请 求 数 据 包 中 指 定 的 数 据 包 已 存 在 , 则 返 回 此 类 负 响 应 :<br />
<br />
<br />
<br />
<br />
error<br />
1019<br />
安 装 中 出 错 。<br />
请 求 名 称 的 数 据 库 已 存 在 <br />
<br />
<br />
<br />
<br />
'1100 不 满 足 需 求 ' 错 误<br />
若 未 满 足 应 用 程 序 需 求 , 则 返 回 此 类 负 响 应 :<br />
<br />
<br />
<br />
<br />
error<br />
1100<br />
出 现 下 列 需 求 问 题 : 无 法 满 足 ASP.NET 版 本 需 求 。 需 要 ASP.NET 2.0; 无 法 满<br />
足 ASP.NET 版 本 需 求 。 需 要 ASP.NET 2.0; 无 法 满 足 数 据 库 服 务 器 需 求 。 未 找 到 'mssql' 数 据 库<br />
, 版 本 不 低 于 9.0 <br />
<br />
<br />
<br />
<br />
其 他 错 误
通 过 远 程 API 设 置 153<br />
若 指 定 的 应 用 程 序 应 通 过 HTTPS (true) 使 用 , 但 站 点 / 子 站 点 不 支 持 , 则 返 回 此 类<br />
负 响 应 。<br />
REQUEST PACKET<br />
<br />
<br />
<br />
2<br />
<br />
joomla<br />
<br />
true<br />
< 设 置 ><br />
< 设 置 。><br />
admin_name<br />
admin<br />
<br />
< 设 置 。><br />
admin_password<br />
dfkjEEtbgg<br />
<br />
< 设 置 。><br />
admin_email<br />
johndoe@example.com<br />
<br />
< 设 置 。><br />
locale<br />
en-GB<br />
<br />
< 设 置 。><br />
title<br />
Joomla<br />
<br />
<br />
<br />
<br />
<br />
RESPONSE PACKET<br />
<br />
<br />
<br />
<br />
error<br />
1023<br />
同 此 站 点 关 联 的 IP 地 址 已 经 被 另 一 个 站 点 所 使 用 , 用 于 支 持 SSL 实 现 。<br />
<br />
<br />
<br />
<br />
154 通 过 远 程 API 设 置<br />
检 索 可 用 数 据 包<br />
使 用 aps/get-packages-list 操 作 检 索 可 在 站 点 / 子 站 点 上 安 装 的 应 用 程 序 包 信 息 :<br />
<br />
<br />
<br />
...<br />
<br />
<br />
<br />
请 求 数 据 包 结 构<br />
get-packages-list 节 点 结 构 如 下 :<br />
• filter, required<br />
过 滤 检 索 到 其 信 息 的 程 序 包 。 数 据 类 型 : 无 。<br />
若 为 空 , 则 服 务 器 上 所 有 APS 程 序 包 相 关 信 息 会 返 回 响 应 程 序 包 。<br />
• package-id, optional<br />
指 定 要 检 索 其 信 息 的 程 序 包 ID。 数 据 类 型 :id_type (common.xsd).
通 过 远 程 API 设 置 155<br />
请 求 样 本<br />
此 数 据 包 检 索 所 有 应 用 程 序 包 相 关 信 息 。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
此 数 据 包 检 索 应 用 程 序 包 ID 11, 12 和 13 的 信 息 。<br />
<br />
<br />
<br />
<br />
11<br />
12<br />
13<br />
<br />
<br />
<br />
156 通 过 远 程 API 设 置<br />
响 应 数 据 包 结 构<br />
输 出 XML 数 据 包 get-packages-list 结 构 如 下 :<br />
• result, required<br />
包 含 从 服 务 器 检 索 到 的 响 应 。 数 据 类 型 :resultType (common.xsd).<br />
• status, required<br />
指 定 操 作 执 行 状 态 。 数 据 类 型 : 字 符 串 。 允 许 的 值 :ok | error.<br />
• errcode, required 若 操 作 失 败<br />
返 回 错 误 码 。 数 据 类 型 : 整 数 。<br />
• errtext, required 数 据 类 型 :<br />
返 回 错 误 消 息 。 数 据 类 型 : 字 符 串 。<br />
• filter-id, required 若 操 作 成 功 需 提 供<br />
返 回 被 过 滤 操 作 的 程 序 包 ID。 数 据 类 型 : 任 何 。<br />
• id, optional<br />
未 返 回 。<br />
• package, required 若 操 作 成 功 需 提 供<br />
描 述 数 据 包 的 所 有 数 据 。 数 据 类 型 :APSIdentifierType (aps.xsd).
通 过 远 程 API 设 置 157<br />
结 构 如 下 :<br />
• name, required<br />
指 定 应 用 程 序 数 据 包 名 。 数 据 类 型 : 字 符 串 。<br />
• version, optional<br />
指 定 应 用 程 序 version.Data 类 型 : 字 符 串 。<br />
• release, optional<br />
指 定 程 序 包 release.Data 类 型 : 字 符 串 。<br />
• vendor, optional<br />
指 定 应 用 程 序 厂 商 。 数 据 类 型 : 字 符 串 。<br />
• packager, optional<br />
指 定 应 用 程 序 打 包 程 序 。 数 据 类 型 : 字 符 串<br />
• id, required<br />
指 定 服 务 器 上 的 程 序 包 ID。 数 据 类 型 :id_type (common.xsd).
158 通 过 远 程 API 设 置<br />
请 求 和 响 应 样 本<br />
样 本 1<br />
请 求<br />
此 数 据 包 检 索 所 有 APS 程 序 包 相 关 信 息 。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
响 应 A<br />
从 服 务 器 接 收 到 的 正 响 应 如 下 :<br />
<br />
<br />
<br />
<br />
ok<br />
1<br />
<br />
phpWiki<br />
1.3.11<br />
44<br />
phpwiki.sourceforge.net<br />
parallels.com<br />
1<br />
<br />
<br />
<br />
ok<br />
2<br />
<br />
PinnacleCart<br />
3.6.1<br />
570<br />
www.pinnaclecart.com<br />
www.pinnaclecart.com<br />
2<br />
<br />
<br />
<br />
<br />
<br />
响 应 B<br />
若 服 务 器 上 无 APS 程 序 包 , 则 返 回 此 响 应 :<br />
<br />
<br />
通 过 远 程 API 设 置 159<br />
<br />
ok<br />
<br />
<br />
<br />
<br />
样 本 2<br />
此 数 据 包 检 索 APS 程 序 包 ID 11, 12 和 13 的 信 息 。<br />
<br />
<br />
<br />
<br />
12<br />
13<br />
<br />
<br />
<br />
<br />
若 请 求 数 据 包 ID 数 据 包 不 存 在 , 则 返 回 负 响 应 :<br />
<br />
<br />
<br />
<br />
error<br />
1013<br />
程 序 包 不 存 在 <br />
12<br />
<br />
<br />
error<br />
1013<br />
程 序 包 不 存 在 <br />
13<br />
<br />
<br />
<br />
第 6 章<br />
通 过 CLI 设 置<br />
本 章 阐 述 如 何 通 过 <strong>Panel</strong> 命 令 行 界 面 (CLI) 设 置 <strong>Panel</strong>。<br />
关 于 <strong>Panel</strong> CLI 章 节 ( 第 161 页 ) 概 述 CLI 使 用 基 本 信 息 。<br />
设 置 <strong>Panel</strong> 章 节 ( 第 162 页 ) 详 细 阐 述 要 执 行 的 <strong>Panel</strong> 设 置 操 作 。<br />
本 章 内 容 :<br />
关 于 <strong>Panel</strong> CLI .................................................................................................. 161<br />
设 置 <strong>Panel</strong> ......................................................................................................... 162
通 过 CLI 设 置 161<br />
关 于 <strong>Panel</strong> CLI<br />
<strong>Parallels</strong> Small Business <strong>Panel</strong> 命 令 行 界 面 (CLI) 提 供 <strong>Panel</strong> 管 理 员 可 以 在 命 令 行 界 面<br />
中 执 行 的 主 要 管 理 操 作 。<br />
root 用 户 可 从 控 制 台 或 脚 本 使 用 <strong>Panel</strong> 命 令 行 实 用 程 序 。 实 用 程 序 需 要 "root"/"psaadm"<br />
(Linux/Unix) 或 "Administrator" (Windows) 权 限 才 可 以 操 作 。<br />
<strong>Parallels</strong> Small Business <strong>Panel</strong> for Linux/Unix CLI 和 <strong>Panel</strong> 支 持 当 地 的 企 业 名 称 。 因 此 ,<br />
可 以 使 用 本 地 语 言 创 建 联 系 人 姓 名 。 使 用 LANG 环 境 变 量 设 置 特 定 语 言 。<br />
成 功 之 行 后 , 实 用 程 序 返 回 0 编 码 。 若 出 错 , 实 用 程 序 返 回 1 并 在 stderr 上 显 示 问 题<br />
描 述 。<br />
注 意 : 实 用 程 序 输 入 参 数 必 需 是 UTF-8 编 码 。 可 以 确 定 <strong>Panel</strong> 操 作 正 常 。<br />
实 用 程 序 位 置<br />
在 Linux/Unix 中 :<br />
/opt/psa/bin Debian 系 统 中<br />
/usr/local/psa/bin 非 -Debian Linux 和 Unix<br />
在 Windows 中 :<br />
%plesk_cli%
162 通 过 CLI 设 置<br />
设 置 <strong>Panel</strong><br />
本 章 阐 述 要 在 <strong>Panel</strong> 设 置 操 作 中 执 行 的 命 令 详 细 信 息 。<br />
初 始 化 <strong>Panel</strong><br />
若 要 通 过 CLI 初 始 化 <strong>Panel</strong>, 使 用 init_conf 实 用 程 序 。<br />
命 令<br />
下 列 命 令 可 初 始 化 <strong>Panel</strong>:<br />
init_conf --init -email -passwd [-locale ]<br />
格 式 按 RFC 1766 标 准 "-", 其 中<br />
是 小 写 的 两 个 字 母 ISO 639-1 和 是 大 写 , 来 自 ISO<br />
3166。 如 德 语 ( 德 国 ) 本 地 编 码 是 "de-DE"。<br />
样 本<br />
1. 下 列 命 令 初 始 化 <strong>Panel</strong>, 设 置 管 理 员 密 码 "jskekekHTD" 和 电 子 邮 件<br />
"johndoe@example.com"。<br />
在 Linux/Unix 中 :<br />
./init_conf --init -passwd jskekekHTD -email johndoe@example.com<br />
在 Windows 中 :<br />
./init_conf --init -passwd jskekekHTD -email johndoe@example.com<br />
2. 下 列 命 令 初 始 化 <strong>Panel</strong>, 设 置 管 理 员 密 码 "P4$$w0rd" 和 电 子 邮 件 "fischer@example.com",<br />
并 设 置 <strong>Panel</strong> 语 言 为 " 德 语 ( 德 国 )"。<br />
在 Linux/Unix 中 :<br />
./init_conf --init -passwd P4$$w0rd -email fischer@example.com -locale de-DE<br />
在 Windows 中 :<br />
init_conf --init -passwd P4$$w0rd -email fischer@example.com -locale de-DE
通 过 CLI 设 置 163<br />
安 装 许 可 证<br />
使 用 <strong>Panel</strong> CLI 安 装 <strong>Panel</strong> 许 可 证 , 先 需 使 用 <strong>Panel</strong> 上 传 到 电 脑 , 然 后 使 用 license 实 用 程 序<br />
安 装 。<br />
命 令<br />
若 要 安 装 执 行 格 式 如 下 的 命 令 :<br />
license <br />
示 例<br />
1. 在 Linux/Unix 上 :<br />
./license -i /tmp/psmbfu10key.xml<br />
2. 在 Windows 中 :<br />
license.exe -i "D:\keys\psmbfw10key.xml"
164 通 过 CLI 设 置<br />
定 义 <strong>Panel</strong> 徽 标<br />
若 要 设 置 <strong>Panel</strong> 商 标 , 使 用 branding 实 用 程 序 。<br />
更 改 徽 标<br />
两 步 即 可 更 改 <strong>Panel</strong> 徽 标 图 像 和 URL:<br />
1 使 用 下 列 命 令 , 定 义 徽 标 及 其 图 像 :<br />
branding true -path <br />
2 使 用 下 列 命 令 设 置 自 定 义 URL:<br />
branding -url <br />
示 例<br />
1. 下 列 命 令 设 置 自 定 义 徽 标 , 并 使 用 图 像 my-own-cool-logo.gif, 位 于 temp 目 录 中 。<br />
在 Linux/Unix 中 :<br />
./branding -u true -path temp/my-own-cool-logo.gif<br />
在 Windows 中 :<br />
branding.exe -u true -path D:\temp\my-own-cool-logo.gif<br />
2. 下 列 命 令 点 击 面 板 徽 标 , 即 可 打 开 URL http://example.com/about。 在 Linux/Unix 中 :<br />
./branding -l -url http://example.com/about<br />
在 Windows 中 :<br />
branding.exe -l -url http://example.com/about<br />
更 改 支 持 URL<br />
若 要 更 改 支 持 链 接 ( 从 <strong>Panel</strong> 点 击 支 持 按 钮 即 可 打 开 的 URL), 使 用 下 列 命 令 :<br />
branding -url <br />
示 例<br />
使 用 下 列 命 令 即 可 点 击 支 持 打 开 支 持 请 求 表 单 https://support.example.com/submit-ticket。<br />
在 Linux/Unix 中 :<br />
./branding -c -url https://support.example.com/submit-ticket<br />
在 Windows 中 :<br />
branding.exe -c -url https://support.example.com/submit-ticket
通 过 CLI 设 置 165<br />
配 置 DNS<br />
若 要 通 过 CLI 配 置 <strong>Panel</strong> DNS 服 务 ( 包 括 停 用 ), 使 用 server_dns 实 用 程 序 。<br />
停 用 DNS 服 务<br />
若 要 停 用 <strong>Panel</strong> DNS 服 务 , 执 行 下 列 命 令 :<br />
server_dns -status disabled<br />
格 式 如 下 。<br />
在 Linux/Unix 中 :<br />
./server_dns -u -status disabled<br />
在 Windows 中 :<br />
server_dns.exe -u -status disabled<br />
更 改 SOA 记 录 模 板<br />
若 要 更 改 SOA 记 录 模 板 , 执 行 下 列 命 令 :<br />
server_dns --update-soa [options]<br />
可 用 选 项<br />
选 项 参 数 描 述<br />
-soa-ttl<br />
-soa-refresh<br />
-soa-retry<br />
-soa-expire<br />
[S|<br />
M|H|D|W]<br />
[S|<br />
M|H|D|W]<br />
[S|<br />
M|H|D|W]<br />
[S|<br />
M|H|D|W]<br />
-soa-minimum [S|<br />
M|H|D|W]<br />
指 定 TTL 时 段 。<br />
<strong>Panel</strong> 设 置 的 默 认 值 为 一 天 。<br />
指 定 刷 新 时 段 。<br />
<strong>Panel</strong> 设 置 的 默 认 值 为 三 小 时 。<br />
指 定 重 试 时 段 。<br />
<strong>Panel</strong> 设 置 的 默 认 值 为 一 小 时 。<br />
指 定 过 期 日 。<br />
<strong>Panel</strong> 设 置 的 默 认 值 为 一 周 。<br />
指 定 最 小 值 。<br />
<strong>Panel</strong> 设 置 的 默 认 值 为 三 小 时 。<br />
-soa-serial-for<br />
mat<br />
timestamp|yyyy<br />
mmddnn<br />
指 定 SOA 记 录 序 列 号 格 式 :UNIX 时 间 戳 或 由 IETF 和 RIPE 建 议 。<br />
仅 在 Linux/Unix 上 支 持 。
166 通 过 CLI 设 置<br />
示 例<br />
1. 下 列 命 令 设 置 TTL 值 为 5 小 时 , 刷 新 值 为 4 小 时 , 重 试 值 为 10 秒 , 过 期 时 段 为 2 周 , 最 小 值 为 2 天 。<br />
在 Linux/Unix 中 :<br />
./server_dns --update-soa -soa-ttl 5H -soa-refresh 4H -soa-retry 10S<br />
-soa-expire 2W -soa-minimum 2D<br />
在 Windows 中 :<br />
server_dns.exe --update-soa -soa-ttl 5H -soa-refresh 4H -soa-retry 10S<br />
-soa-expire 2W -soa-minimum 2D<br />
2. 下 列 命 令 更 改 SOA 记 录 序 列 号 到 IETF 和 RIPE 建 议 值 :<br />
./server_dns --update-soa -soa-serial-format yyyymmddnn<br />
设 置 资 源 记 录 模 板<br />
<strong>Panel</strong> CLI 支 持 下 列 两 种 方 式 修 改 DNS 区 域 模 板 :<br />
1 添 加 记 录 。 通 过 在 一 条 命 令 中 添 加 一 条 记 录 机 可 以 修 改 。<br />
2 覆 盖 区 域 模 板 。 修 改 后 , 通 过 删 除 所 有 区 域 模 板 记 录 , 即 可 使 用 一 条 命 令 覆 盖 新 记 录 设 置 。<br />
添 加 记 录<br />
若 要 添 加 一 条 资 源 纪 录 到 DNS 区 域 模 板 中 , 使 用 下 列 命 令 :<br />
server_dns <br />
记 录 参 数 和 示 例<br />
参 数 函 数 描 述 示 例<br />
-a |""<br />
-ip<br />
|""<br />
指 定 记 录 设 置 要 应 用 到 的 主 机<br />
名 。<br />
指 定 IP 地 址 或 站 点 IP 地 址 占<br />
位 符 , 创 建 A 资 源 记 录 模 板 。<br />
若 要 添 加 新 A 资 源 记 录<br />
sample. ( 指 定 记 录 的 站 点 IP<br />
地 址 占 位 符 ) 到 站 点 DNS 区 域 模 板 :<br />
server_dns -a -a sample -ip<br />
""<br />
NS 记 录 参 数 和 示 例<br />
参 数 函 数 描 述 示 例<br />
-ns<br />
|""<br />
指 定 记 录 设 置 要 应 用 到 的 主 机<br />
名 。<br />
若 要 添 加 新 NS 资 源 记 录 , 指 定<br />
"ns.." 作 为
通 过 CLI 设 置 167<br />
参 数 函 数 描 述 示 例<br />
-nameserv<br />
er<br />
|"[.]"<br />
指 定 域 名 服 务 器 名 称 或 占 位 符 , 主 机 域 名 服 务 器 :<br />
创 建 NS 资 源 记 录 模 板 。 server_dns -a -ns ""<br />
-nameserver "ns."<br />
MX 记 录 参 数 和 示 例<br />
参 数 函 数 描 述 示 例<br />
-mx<br />
-mailexch<br />
anger<br />
|""<br />
<br />
|"[.]"<br />
指 定 记 录 设 置 要 应 用 到 的 主 机<br />
名 。<br />
指 定 邮 件 交 换 器 名 称 或 占 位<br />
符 。<br />
-priority 指 定 邮 件 交 换 器 优 先 级 。<br />
若 要 添 加 新 MX 资 源 记 录 , 让<br />
mail. 成 为 <br />
邮 件 服 务 器 , 优 先 级 15:<br />
server_dns -a -mx ""<br />
-mailexchanger<br />
"mail." -priority<br />
15<br />
CNAME 记 录 参 数 和 示 例<br />
参 数 函 数 描 述 示 例<br />
-cname<br />
-canonica<br />
l<br />
|""<br />
<br />
|[.]"<br />
指 定 记 录 设 置 要 应 用 到 的 主 机<br />
名 。<br />
若 要 指 定 规 范 名 称 或 占 位 符 ,<br />
创 建 CNAME 记 录 模 板 。<br />
若 要 添 加 新 CNAME 资 源 记 录 , 让<br />
ns. 成 为<br />
www. 别 名 :<br />
server_dns -a -cname www<br />
-canonical "ns."<br />
PTR 记 录 参 数 和 示 例<br />
参 数 函 数 描 述 示 例<br />
-ptr<br />
-subnet<br />
|""<br />
/<br />
<br />
|""/<br />
指 定 记 录 设 置 要 应 用 到 的 主 机<br />
名 。<br />
指 定 IP 地 址 和 子 网 掩 码 或 占<br />
位 符 , 创 建 PTR 记 录 模 板 。<br />
若 要 添 加 新 PTR 记 录 , 让<br />
成 为 ""/16 子 站 点<br />
的 域 名 指 标 。<br />
server_dns -a -ptr ""<br />
-subnet ""/16
168 通 过 CLI 设 置<br />
SRV 记 录 参 数 和 示 例<br />
参 数 函 数 描 述 示 例<br />
-srv<br />
-srv-prio<br />
rity<br />
-srv-weig<br />
ht<br />
""|<br />
指 定 记 录 设 置 要 应 用 到 的 主 机<br />
名 。<br />
[0-50] 设 置 SRV 记 录 优 先 级 (0 - 最<br />
高 , 50 - 最 低 )。<br />
[0-50] 指 定 SRV 记 录 重 要 程 序 , 同 优<br />
先 级 相 同 (0 - 最 低 ,50 - 最<br />
高 )。<br />
-srv-port [0-65535] 指 定 要 在 端 口 上 找 到 的 服 务 。<br />
-srv-targ<br />
et-host<br />
-srv-prot<br />
ocol<br />
-srv-serv<br />
ice<br />
指 定 提 供 服 务 的 机 器 主 机 名 。<br />
TCP|UDP 指 定 服 务 协 议 。<br />
< 服 务 > 指 定 服 务 符 号 名 。<br />
若 要 添 加 到 DNS 区 域 模 板 一 条<br />
SRV 记 录 , 让 处 理 SIP<br />
协 议 连 线 , 指 向 服 务 器 , 并 命 名 为<br />
sipserver.sample.com, 监 控 TCP<br />
端 口 5060。 优 先 级 是 0, 重 要 程 度<br />
是 5:<br />
server_dns --add -srv ""<br />
-srv-service sip<br />
-srv-target-host<br />
sipserver.sample.com.<br />
-srv-protocol TCP<br />
-srv-port 5060<br />
-srv-priority 0<br />
-srv-weight 5<br />
TXT 记 录 参 数 和 示 例<br />
参 数 函 数 描 述 示 例<br />
-txt |"" 指 定 文 字 描 述 若 要 指 定 TXT 类 型 DNS 记 录 " 此 记<br />
录 用 于 实 施 发 件 人 协 议 框 架 和<br />
-domain |""<br />
DomainKeys 规 范 ", 用 于 主 机<br />
名 。<br />
policy.:<br />
server_dns -a -txt " 此 条 记<br />
录 用 来 使 用 h 发 件 人 协 议 框 架 和<br />
DomainKeys 规 范 " -domain<br />
policy<br />
覆 盖 DNS 区 域 模 板 中 的 记 录<br />
若 要 覆 盖 DNS 区 域 模 板 , 使 用 下 列 命 令 :<br />
server_dns ";;..."<br />
其 中 格 式 是 ",,[,]"。<br />
即 格 式 如 下 列 <strong>Panel</strong> 中 的 每 条 资 源 记 录 :
通 过 CLI 设 置 169<br />
NS,,<br />
A,,<br />
MX,,,<br />
PTR,,,<br />
CNAME,,<br />
SRV,..,,<br />
。 NS ns..<br />
ns.. A <br />
< 站 点 >。 A <br />
webmail.. A<br />
<br />
< 站 点 >。 MX 10 mail..<br />
mail.. A <br />
ftp.. CNAME < 站 点 >。<br />
/24 PTR < 站 点 >。<br />
< 站 点 >。 TXT f1 +a +mx -all<br />
_SIP._tcp.megadomain.. SRV 5 25 12 example.com.<br />
在 Linux/Unix 中 :<br />
./server_dns -s<br />
'NS,,ns..;A,ns,;A,,;A,webmail,;MX,,mail..,10;A,<br />
mail,;CNAME,ftp,.;PTR,,,24;TXT,,v=spf1 +a +mx<br />
-all;SRV,_SIP._tcp.megadomain,example.com,5 25 12;'<br />
在 Windows 中 :<br />
server_dns.exe -s<br />
"NS,,ns..;A,ns,;A,,;A,webmail,;MX,,mail..,10;A,<br />
mail,;CNAME,ftp,.;PTR,,,24;TXT,,v=spf1 +a +mx<br />
-all;SRV,_SIP._tcp.megadomain,example.com,5 25 12;"
170 通 过 CLI 设 置<br />
安 装 SSL 证 书<br />
若 要 通 过 CLI 安 装 SSL 证 书 , 使 用 certificate 实 用 程 序 。 两 步 完 成 安 装 :<br />
1 导 入 证 书 到 <strong>Panel</strong>。<br />
2 分 配 证 书 到 IP 地 址 。<br />
注 意 , 证 书 之 前 已 使 用 <strong>Panel</strong> 上 传 到 机 器 。
通 过 CLI 设 置 171<br />
导 入 证 书<br />
若 要 导 入 证 书 , 执 行 格 式 如 下 的 命 令 :<br />
certificate -admin -key-file <br />
-cert-file [-cacert-file ] [-csr-file<br />
]<br />
示 例<br />
1. The following command imports the SSL certificate which private key file is<br />
/usr/local/keys/keyfile.key and certificate file is<br />
/usr/local/cert/certfile.cert. 导 入 后 , 证 书 名 称 为 " 站 点 证 书 "。<br />
在 Linux/Unix 中 :<br />
./certificate --create "Site Certificate" -admin -key-file<br />
/usr/local/keyfile.key -cert-file /usr/local/cert/certfile.cert<br />
或<br />
./certificate -c "Site Certificate" -admin -key-file /usr/local/keyfile.key<br />
-cert-file /usr/local/cert/certfile.cert<br />
Windows 中 ( 证 书 文 件 位 于 E:\temp\):<br />
certificate --create "Site Certificate" -admin -key-file E:\temp\keyfile.key<br />
-cert-file E:\temp\certfile.cert<br />
或<br />
certificate -c "Site Certificate" -admin -key-file E:\temp\keyfile.key<br />
-cert-file E:\temp\certfile.cert<br />
2. 下 列 命 令 导 入 SSL 证 书 , 专 用 证 书 文 件 是 /usr/local/keys/keyfile.key,, 证 书 文<br />
件 是 /usr/local/cert/certfile.cert, CA 证 书 文 件 是<br />
/usr/local/cert/cacert.cert, 签 署 相 应 请 求 文 件 的 证 书 是<br />
/usr/local/requests/csreq.csr。 导 入 后 , 证 书 名 称 为 " 站 点 证 书 "。<br />
在 Linux/Unix 中 :<br />
./certificate -c "Site Certificate" -domain example.com -key-file<br />
/usr/local/keys/keyfile.key -cert-file /usr/local/cert/certfile.cert<br />
-cacert-file /usr/local/cert/cacert.cert -csr-file<br />
/usr/local/requests/csreq.csr<br />
Windows 中 ( 证 书 文 件 位 于 E:\ssl\):<br />
certificate -c "Site Certificate" -domain example.com -key-file<br />
E:\ssl\keys\keyfile.key -cert-file E:\ssl\cert\certfile.cert -cacert-file<br />
E:\ssl\cert\cacert.cert -csr-file E:\ssl\requests\csreq.csr
172 通 过 CLI 设 置<br />
分 配 证 书 到 IP 地 址<br />
若 要 分 配 导 入 证 书 到 IP 地 址 , 使 用 命 令 :<br />
certificate -admin -ip <br />
示 例<br />
下 列 命 令 分 配 名 称 为 " 站 点 证 书 " 的 SSL 证 书 到 IP 地 址 192.0.2.78。<br />
在 Linux/Unix 中 :<br />
./certificate -ac "Site Certificate" -ip 192.0.2.78<br />
在 Windows 中 :<br />
certificate -ac "Site Certificate" -ip 192.0.2.78<br />
创 建 站 点<br />
若 要 创 建 站 点 帐 户 , 使 用 domain 实 用 程 序 。<br />
命 令<br />
下 列 命 令 创 建 站 点 帐 户 :<br />
domain -hosting true -ip -login<br />
-passwd <br />
其 中 FTP-login> 和 用 来 上 传 和 编 辑 网 站 内 容 的 FTP 帐 户 登 录 名 和 密 码 。<br />
示 例<br />
下 列 命 令 创 建 站 点 example.com , 托 管 到 IP 地 址 192.0.2.33,FTP 帐 户 凭 证 "johndoe" 和<br />
"P4$$w0rd"。<br />
在 Linux/Unix 中 :<br />
./domain --create example.com -hosting true -ip 192.0.2.33 -login johndoe<br />
-passwd P4$$w0rd<br />
在 Windows 中 :<br />
domain.exe --create example.com -hosting true -ip 192.0.2.33 -login johndoe<br />
-passwd P4$$w0rd<br />
创 建 子 站 点<br />
若 要 创 建 子 站 点 帐 户 , 使 用 subdomain 实 用 程 序 。
通 过 CLI 设 置 173<br />
创 建 常 规 子 站 点<br />
命 令<br />
下 列 命 令 创 建 子 站 点 帐 户 :<br />
subdomain -domain <br />
[-ftp_user native -login -passwd ]<br />
其 中<br />
-ftp_user native -login -passwd 当 主 站 点 FTP 帐<br />
户 用 来 管 理 子 站 点 时 , 负 责 创 建 新 子 站 点 FTP 帐 户 , 不 同 于 默 认 设 。<br />
示 例<br />
1. 下 列 命 令 用 来 创 建 子 站 点 mail.example.com, 和 FTP 帐 户 来 管 理 即 将 用 于 站 点<br />
example.com 的 相 同 内 容 。<br />
在 Linux/Unix 中 :<br />
./subdomain --create mail -domain example.com<br />
在 Windows 中 :<br />
subdomain.exe --create mail -domain example.com<br />
2. 下 列 命 令 创 建 子 站 点 portfolio.example.com 和 FTP 帐 户 及 其 登 录 名 portfolio 和<br />
密 码 P4$$w0rd, 用 来 管 理 子 站 点 内 容 。<br />
在 Linux/Unix 中 :<br />
./subdomain --create portfolio -domain example.com -ftp_user native -login<br />
portfolio -passwd P4$$w0rd<br />
在 Windows 中 :<br />
subdomain.exe --create portfolio -domain example.com -ftp_user native -login<br />
portfolio -passwd P4$$w0rd
174 通 过 CLI 设 置<br />
在 子 文 件 夹 中 创 建 子 站 点 ( 仅 限 Windows)<br />
命 令<br />
下 列 命 令 在 子 文 件 夹 中 创 建 子 站 点 帐 户 :<br />
subdomain -domain <br />
-hst_type virt [-www_root -create_phys false]<br />
其 中<br />
-www_root -create_phys false 负 责 在 目 录 中 创 建 子 站 点 , 路 径 在<br />
使 用 -www_root 选 项 指 定 。<br />
示 例<br />
1. 下 列 命 令 创 建 子 站 点 news.example.com, 并 为 其 内 容 创 建 目 录 /httpdocs/news/。<br />
subdomain.exe --create news -domain example.com -hst_type virt<br />
2. 下 列 命 令 创 建 子 站 点 blog.example.com, 位 于 现 有 目 录 /httpdocs/wordpress/。<br />
创 建 时 ,WordPress 博 客 工 具 可 从 URL http://blog.example.com 访 问 。<br />
subdomain.exe --create blog -domain example.com -hst_type virt -www_root<br />
/httpdocs/wordpress -create_phys false<br />
定 义 可 用 的 APS 目 录<br />
若 要 导 入 APS 目 录 配 置 文 件 , 使 用 命 令 :<br />
aps <br />
配 置 文 件 位 于 下 列 目 录 之 一 :
通 过 CLI 设 置 175<br />
• <strong>Panel</strong> 临 时 目 录 :<br />
• /opt/psa/tmp Debian 上 ,/usr/local/psa/tmp 其 他 Linux\Unix 上<br />
• %plesk_dir%\tmp Windows 上<br />
• 操 作 系 统 临 时 目 录 :<br />
• /tmp 在 Linux/Unix 上<br />
• C:\WINDOWS\Temp Windows 上<br />
如 需 有 关 配 置 文 件 相 关 信 息 , 参 阅 APS 目 录 配 置 文 件 章 节 ( 第 37 页 )。<br />
示 例<br />
下 列 命 令 导 入 APS 目 录 配 置 文 件 catalogs.ini:<br />
在 Linux/Unix 中 :<br />
./aps -ic /tmp/catalogs.ini<br />
或<br />
./aps -ic /usr/local/psa/tmp/catalogs.ini<br />
在 Windows 中 :<br />
aps -ic "C:\Program Files\<strong>Parallels</strong>\Plesk\tmp\catalogs.ini"<br />
或<br />
aps -ic "C:\WINDOWS\Temp\catalogs.ini"<br />
安 装 应 用 程 序<br />
若 要 安 装 应 用 程 序 , 使 用 aps 实 用 程 序 。<br />
导 入 应 用 程 序 包<br />
导 入 上 传 的 应 用 程 序 包<br />
若 要 导 入 应 用 程 序 包 , 使 用 下 列 命 令 :<br />
aps <br />
示 例<br />
下 列 命 令 将 SugarCRM-5.0.0-16.app.zip 程 序 包 导 入 <strong>Panel</strong>。<br />
在 Linux/Unix 中 :<br />
./aps --import-package /home/root/SugarCRM-5.0.0-16.app.zip<br />
在 Windows 中 :<br />
aps --import-package "C:\Documents and<br />
Settings\Administrator\Desktop\SugarCRM-5.0.0-16.app.zip"
176 通 过 CLI 设 置<br />
从 APS 目 录 下 载 应 用 程 序 包<br />
若 要 从 APS 目 录 下 载 应 用 程 序 包 , 使 用 下 列 命 令 :<br />
aps -package-name [-catalog-url ]<br />
[-package-version -package-release <br />
-package-vendor -package-packager ]<br />
其 中<br />
• 其 中<br />
[-catalog-url ]<br />
定 义 目 标 APS 目 录 (URL 与 配 置 文 件 中 相 同 )。 若 未 指 定 , 则 按 配 置 文 件 ( 第 37 页 ) 中 所 列<br />
的 程 序 包 从 APS 目 录 下 载 。<br />
• 其 中<br />
示 例<br />
[-package-version -package-release<br />
-package-vendor -package-packager<br />
]<br />
定 义 -package-name 选 项 指 定 的 应 用 程 序 包 。 若 未 指 定 , 则 从 APS 目 录 下 载 最 新 版 的 程<br />
序 包 。<br />
下 列 命 令 从 APS 目 录 http://apscatalog.com 下 载 最 新 版 的 WordPress 应 用 程 序 。<br />
在 Linux/Unix 中 :<br />
./aps -d -package-name WordPress -catalog-url http://apscatalog.com<br />
在 Windows 中 :<br />
aps -d -package-name WordPress -catalog-url http://apscatalog.com<br />
获 取 下 载 任 务 状 态<br />
若 要 获 取 下 载 状 态 , 使 用 下 列 命 令 :<br />
aps <br />
示 例<br />
下 列 命 令 获 取 下 载 任 务 ID 16 的 状 态 。<br />
在 Linux/Unix 中 :<br />
./aps -g 16<br />
在 Windows 中 :<br />
aps -g 16
通 过 CLI 设 置 177<br />
安 装 应 用 程 序<br />
安 装 应 用 程 序 要 求 您 识 别 要 安 装 的 源 程 序 包 。 按 ID 识 别 或<br />
name-version-release-vendor-packager 信 息 识 别 程 序 包 。<br />
若 要 提 供 程 序 包 ID, 执 行 :<br />
• 使 用 导 入 <strong>Panel</strong> 后 分 配 给 程 序 包 的 ID ( 第 175 页 )<br />
• 使 用 从 APS 目 录 成 功 下 载 后 分 配 给 程 序 包 的 ID ( 第 176 页 )<br />
• 使 用 从 可 用 程 序 包 信 息 返 回 的 ID ( 第 181 页 )<br />
若 要 提 供 name-version-release-vendor-packager 信 息 , 从 可 安 装 的 程 序 包 检 索 信 息 ( 第 181<br />
页 )。
178 通 过 CLI 设 置<br />
在 站 点 或 子 站 点 上 安 装 应 用 程 序<br />
若 要 在 站 点 / 子 站 点 上 安 装 应 用 程 序 , 使 用 命 令 :<br />
aps <br />
<<br />
|<br />
><br />
<<br />
|<br />
><br />
[installation options]<br />
其 中<br />
• 其 中<br />
|-<br />
负 责 指 定 应 用 程 序 设 置 (XML 格 式 ( 第 180 页 ))。 设 置 定 义 指 定 成 命 令 参 数 , 文 件 名 或 直 接<br />
从 STDIN 中 读 取 。 其 他 情 况 下 ,"-" 应 指 定 为 命 令 函 数 。<br />
有 关 设 置 格 式 和 样 本 , 参 阅 应 用 程 序 设 置 定 义 子 章 节 ( 第 180 页 )。<br />
• 其 中<br />
|<br />
指 定 应 用 程 序 安 装 来 源 。 按 程 序 包 ID、 名 称 、 版 本 、 发 行 号 、 厂 商 和 打 包 工 具 指 定 程 序 包 。<br />
使 用 --get-packages-list 命 令 ( 第 181 页 ) 获 取 程 序 包 属 性 。<br />
• 其 中<br />
|<br />
指 定 要 安 装 应 用 程 序 的 站 点 或 子 站 点 。<br />
可 用 选 项<br />
选 项 参 数 描 述<br />
-ssl<br />
-url-pref<br />
ix<br />
true|fals<br />
e<br />
<br />
指 定 应 用 程 序 是 否 可 以 通 过 HTTPS 协 议 访 问 。<br />
指 定 站 点 / 子 站 点 URL。<br />
若 安 装 博 客 工 具 应 用 程 序 , 并 指 定 URL 前 缀 "blog", 可 从<br />
http://domain-name/blog 访 问 应 用 程 序 。<br />
-db-name 在 应 用 程 序 安 装 中 指 定 数 据 库 名 称 。<br />
-db-user < 登 录 名 > 在 应 用 程 序 安 装 中 指 定 数 据 库 用 户 名 称 。
通 过 CLI 设 置 179<br />
选 项 参 数 描 述<br />
-passwd 在 应 用 程 序 安 装 中 指 定 数 据 库 用 户 密 码 。<br />
示 例<br />
1. 下 列 命 令 在 站 点 example.com,ID 13 上 安 装 应 用 程 序 包 , 应 用 程 序 可 通 过 URL<br />
example.com/blog 访 问 , 文 件 WordPress.xml 中 定 义 了 其 设 置 , 安 装 后 , 即 创 建 安 装 数 据 库<br />
WordPress。<br />
在 Linux/Unix 中 :<br />
# ./aps -i /home/apps/WordPress.xml -package-id 13 -domain example.com -ssl<br />
false -url-prefix blog -db-name WordPress -db-user BlogAdmin -passwd P4$$w0rd<br />
在 Windows 中 :<br />
>aps -i "E:\apps\WordPress.xml" -package-id 13 -domain example.com -ssl false<br />
-url-prefix blog -db-name WordPress -db-user BlogAdmin -passwd P4$$w0rd<br />
2. 下 列 命 令 仅 使 用 所 需 选 项 安 装 同 一 应 用 程 序 , 应 用 程 序 设 置 从 STDIN 读 取 。 在 Linux/Unix<br />
中 :<br />
# cat /home/apps/WordPress.xml | ./aps --install - -package-id 13 -domain<br />
example.com -db-name WordPress -db-user BlogAdmin -passwd P4$$w0rd<br />
在 Windows 中 :<br />
>aps --install - -package-id 13 -domain example.com -db-name WordPress -db-user<br />
BlogAdmin -passwd P4$$w0rd < C:\temp\WordPress.xml<br />
3. 下 列 命 令 在 子 站 点 api.example.com 上 从 程 序 包 ID 14 安 装 应 用 程 序 , 此 应 用 程 序 不 需 要 数<br />
据 库 。<br />
在 Linux/Unix 中 :<br />
# ./aps -i /home/apps/empty.xml -package-id 14 -domain api.example.com -ssl true<br />
在 Windows 中 :<br />
>aps -i "E:\apps\empty.xml" -package-id 14 -domain api.example.com -ssl true
180 通 过 CLI 设 置<br />
应 用 程 序 设 置 定 义<br />
若 应 用 程 序 有 任 何 设 置 , 当 在 站 点 或 子 站 点 上 安 装 应 用 程 序 实 例 时 ,aps 实 用 程 序 从 文 件 或<br />
STDIN 读 取 应 用 程 序 设 置 定 义 。<br />
设 置 定 义 应 为 结 构 如 下 的 XML 文 件 :<br />
• settings, required<br />
Root XML 元 素 , 包 含 设 置 集 和<br />
• setting, required<br />
设 置 定 义<br />
• name, required<br />
指 定 设 置 名 称 , 从 应 用 程 序 包 元 数 据 文 件 中 获 取 设 置 ID<br />
("setting[@id]")(APP-META.xml 位 于 *.app.zip)。<br />
• value, required<br />
例 如 ,<br />
指 定 设 置 值 。<br />
<br />
< 设 置 ><br />
< 设 置 。><br />
admin_email<br />
johndoe@example.com<br />
<br />
< 设 置 。><br />
admin_passwd<br />
p4$$w0rd<br />
<br />
< 设 置 。><br />
site_name<br />
iScripts socialWare<br />
<br />
< 设 置 。><br />
locale<br />
en-US<br />
<br />
通 过 CLI 设 置 181<br />
检 索 可 用 数 据 包<br />
若 要 检 索 应 用 程 序 包 信 息 (ID、 名 称 、 版 本 、 发 行 号 、 厂 商 、 打 包 程 序 ), 使 用 命 令 :<br />
aps <br />
格 式 如 下 。<br />
在 Linux/Unix 中 :<br />
./aps -gp<br />
在 Windows 中 :<br />
aps -gp