01.12.2014 Views

Parallels Panel 設定指南 - Parent Directory

Parallels Panel 設定指南 - Parent Directory

Parallels Panel 設定指南 - Parent Directory

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<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 ....................................................................................................................... 11<br />

獲 取 產 品 組 件 清 單 ............................................................................................................. 12<br />

安 裝 <strong>Panel</strong> ......................................................................................................................... 14<br />

安 裝 程 式 CLI 參 考 ( 簡 化 ) .................................................................................................. 15<br />

安 裝 指 令 碼 (Linux/Unix) ................................................................................................... 17<br />

在 <strong>Parallels</strong> Containers 環 境 中 部 署 ............................................................................................. 18<br />

<strong>Parallels</strong> Containers for Unix ............................................................................................. 19<br />

<strong>Parallels</strong> Containers for Windows ..................................................................................... 22<br />

使 用 Rsync 實 用 程 式 設 定 鏡 像 ..................................................................................................... 23<br />

建 立 Linux/Unix 分 發 包 鏡 像 .............................................................................................. 24<br />

建 立 Windows 分 發 包 鏡 像 ................................................................................................. 27<br />

安 裝 操 作 概 要 29<br />

初 始 化 <strong>Panel</strong> ................................................................................................................................ 30<br />

安 裝 授 權 ...................................................................................................................................... 30<br />

定 義 <strong>Panel</strong> 標 誌 ........................................................................................................................... 31<br />

設 定 DNS ..................................................................................................................................... 32<br />

變 更 SOA 記 錄 模 板 ........................................................................................................... 33<br />

設 定 資 源 記 錄 模 板 ............................................................................................................. 33<br />

安 裝 SSL 憑 證 .............................................................................................................................. 34<br />

建 立 網 站 及 子 網 站 ........................................................................................................................ 35<br />

安 裝 應 用 程 式 ............................................................................................................................... 36<br />

匯 入 套 用 套 裝 程 式 ............................................................................................................. 37<br />

安 裝 應 用 程 式 ..................................................................................................................... 37<br />

定 義 可 用 的 APS 目 錄 .................................................................................................................. 38<br />

APS 目 錄 設 定 檔 ................................................................................................................ 39<br />

透 過 遠 端 API 設 定 40<br />

使 用 遠 端 API ............................................................................................................................... 41


前 言 3<br />

關 於 遠 端 API ..................................................................................................................... 41<br />

API RPC 封 包 .................................................................................................................... 42<br />

建 立 客 戶 軟 體 ..................................................................................................................... 45<br />

設 定 <strong>Panel</strong> ................................................................................................................................... 70<br />

初 始 化 <strong>Panel</strong> ..................................................................................................................... 70<br />

安 裝 授 權 ............................................................................................................................ 74<br />

設 定 DNS ........................................................................................................................... 79<br />

安 裝 SSL 憑 證 ................................................................................................................. 104<br />

建 立 網 站 .......................................................................................................................... 110<br />

建 立 子 網 站 ...................................................................................................................... 115<br />

定 義 可 用 的 APS 目 錄 ...................................................................................................... 120<br />

安 裝 應 用 程 式 ................................................................................................................... 123<br />

透 過 CLI 設 定 167<br />

關 於 <strong>Panel</strong> CLI ........................................................................................................................... 168<br />

設 定 <strong>Panel</strong> ................................................................................................................................. 169<br />

初 始 化 <strong>Panel</strong> ................................................................................................................... 170<br />

安 裝 授 權 .......................................................................................................................... 171<br />

定 義 <strong>Panel</strong> 標 誌 ............................................................................................................... 171<br />

設 定 DNS ......................................................................................................................... 173<br />

安 裝 SSL 憑 證 ................................................................................................................. 179<br />

建 立 網 站 .......................................................................................................................... 181<br />

建 立 子 網 站 ...................................................................................................................... 181<br />

定 義 可 用 的 APS 目 錄 ...................................................................................................... 183<br />

安 裝 應 用 程 式 ................................................................................................................... 184


4 前 言<br />

前 言<br />

本 節 內 容<br />

排 版 約 定 ............................................................................................................ 4<br />

回 饋 ................................................................................................................... 5<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 />

# ls –al /files<br />

total 14470<br />

段 中 的 電 腦 輸 出 ; 為 XML、<br />

C++ 或 其 他 編 程 語 言 形 式<br />

的 原 始 碼 。<br />

當 您 輸 入 時 , 與 電 腦 螢 幕 輸<br />

出 對 比 。<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 />

管 理 。<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 環 境 中 部 署 ................................................................... 18<br />

使 用 Rsync 實 用 程 式 設 定 鏡 像 ........................................................................... 23


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> 安 裝 程 式 名 稱 是 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 />

訂 鏡 像 ( 第 23 頁 ), 確 保 安 全 安 裝 。<br />

本 節 內 容<br />

獲 取 版 本 ID ....................................................................................................... 11<br />

獲 取 產 品 組 件 清 單 .............................................................................................. 12<br />

安 裝 <strong>Panel</strong> ......................................................................................................... 14<br />

安 裝 程 式 CLI 參 考 ( 簡 化 )................................................................................... 15<br />

安 裝 指 令 碼 (Linux/Unix) .................................................................................... 17


部 署 <strong>Panel</strong> 11<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)


12 部 署 <strong>Panel</strong><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] - 繁 體 中 文 語 系 包


部 署 <strong>Panel</strong> 13<br />

• nl-NL-locale [install] - 荷 蘭 文 語 言 包<br />

• atmail [install] - Atmail 網 路 郵 件 支 援


14 部 署 <strong>Panel</strong><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 <br />

若 使 用 本 機 檔 案 系 統<br />

或<br />

無<br />

若 從 <strong>Panel</strong> 更 新 伺 服 器 安 裝<br />

• 組 件 ( 第 12 頁 ) 安 裝 選 項 定 義 要 安 裝 哪 些 <strong>Panel</strong> 組 件<br />

=<br />

--install-everything<br />

或<br />

--install-component component1 [--install-component component2 [...<br />

[--install-component componentN]]]<br />

• 其 他 選 項 包 括 定 義 Proxy 伺 服 器 設 定 、 安 裝 記 錄 等 等 。 如 需 詳 情 , 請 參 閱 安 裝 程 式 CLI 參 考<br />

章 節 ( 第 15 頁 )<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


部 署 <strong>Panel</strong> 15<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 />

描 述 及 可 能 的 問 題<br />

--source | 從 本 機 檔 案 系 統 檢 索 到 <strong>Panel</strong> 套 裝 程 式 後 , 指 定 --source 選 項 指 向 包<br />

含 要 安 裝 的 <strong>Panel</strong> 相 關 的 .inf3 檔 案 。<br />

--target <br />

--proxy-host < 網 路 位 址<br />

><br />

--proxy-port < 連 接 埠 號<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 />

使 用 Proxy 伺 服 器 或 防 火 牆 時 , 請 使 用 此 選 項 指 定 Proxy 伺 服 器 網 域 名<br />

稱 或 IP 位 址 。<br />

如 :<br />

--proxy-host proxy.example.com<br />

連 線 Proxy 伺 服 器 的 預 設 連 接 埠 是 3128。 若 Proxy 伺 服 器 使 用 其 他 連 接<br />

埠 號 , 請 使 用 此 選 項 指 定 。<br />

如 :<br />

--proxy-port 5741


16 部 署 <strong>Panel</strong><br />

選 項<br />

Proxy 伺 服 器 認 證 選 項 。<br />

--proxy-user<br />

<br />

--proxy-password<br />

<br />

--show-releases<br />

描 述 及 可 能 的 問 題<br />

若 Proxy 伺 服 器 需 要 認 證 , 請 使 用 這 些 選 項 在 Proxy 伺 服 器 上 認 證 安 裝<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 />

裝 程 式 透 過 退 出 程 式 碼 報 告 錯 誤 。 退 出 程 式 碼 是 零 , 報 告 的 所 有 錯 誤 都<br />

在 XML 輸 出 中 。<br />

--query-status<br />

因 RPM 資 料 庫 不 允 許 多 處 理 序 , 安 裝 程 式 會 鎖 定 它 的 功 能 。 執 行 此 選 項<br />

檢 視 安 裝 程 式 是 否 啟 用 。 這 會 檢 查 是 否 鎖 定 , 將 會 返 回 退 出 程 式 碼 (0 -<br />

安 裝 程 式 閒 置 ,1 - 安 裝 程 式 正 在 執 行 且 繁 忙 ), 或 XML 格 式 的 輸 出 。<br />

--truncate-log <strong>Parallels</strong> 產 品 安 裝 程 式 啟 動 後 , 即 清 除 記 錄 檔 案 。<br />

--separate-log <strong>Parallels</strong> 產 品 安 裝 程 式 每 次 啟 動 都 使 用 新 記 錄 檔 案 。


部 署 <strong>Panel</strong> 17<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> 更 新 伺 服 器 本 機 鏡 像 ( 參 閱 設 定 鏡 像 章 節 ( 第 23 頁 )), 使 用 下 列 選 項 :<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


18 部 署 <strong>Panel</strong><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 使 用 。<br />

本 節 內 容<br />

<strong>Parallels</strong> Containers for Unix ............................................................................. 19<br />

<strong>Parallels</strong> Containers for Windows ...................................................................... 22


部 署 <strong>Panel</strong> 19<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 Linux/Unix<br />

預 設 庫 是 <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 版 鏡 像 章 節 ( 第 24 頁 )。<br />

2 在 硬 體 節 點 上 , 編 輯 庫 URL 檔 案 :<br />

1. 開 啟 編 輯 檔 案<br />

/vz/template/Linux///config/<br />

app//default/repositories。


20 部 署 <strong>Panel</strong><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<br />

2 啟 動 新 近 建 立 的 Container:<br />

# vzctl start <br />

3 將 <strong>Panel</strong> 模 板 安 裝 到 Container 中 :<br />

vzpkg install ...


部 署 <strong>Panel</strong> 21<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


22 部 署 <strong>Panel</strong><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


部 署 <strong>Panel</strong> 23<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 />

於 鏡 像 套 裝 程 式 大 小 )。<br />

本 節 內 容<br />

建 立 Linux/Unix 分 發 包 鏡 像 ............................................................................... 24<br />

建 立 Windows 分 發 包 鏡 像 ................................................................................. 27


24 部 署 <strong>Panel</strong><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> 鏡 像 :<br />

1 登 入 要 建 立 鏡 像 的 伺 服 器 。


部 署 <strong>Panel</strong> 25<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> 安 裝 程 式 設 定 檔 。


26 部 署 <strong>Panel</strong><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/。


部 署 <strong>Panel</strong> 27<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 元 素 。


28 部 署 <strong>Panel</strong><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> ..................................................................................................... 30<br />

安 裝 授 權 ............................................................................................................ 30<br />

定 義 <strong>Panel</strong> 標 誌 ................................................................................................. 31<br />

設 定 DNS .......................................................................................................... 32<br />

安 裝 SSL 憑 證 ................................................................................................... 34<br />

建 立 網 站 及 子 網 站 .............................................................................................. 35<br />

安 裝 應 用 程 式 ..................................................................................................... 36<br />

定 義 可 用 的 APS 目 錄 ........................................................................................ 38


30 安 裝 操 作 概 要<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> 管 理 員 可 稍 後 變 更 介 面 語 言 ( 安 裝 所 需 語 言 組 件 ( 第 12 頁 ))。<br />

快 速 連 結<br />

使 用 遠 端 API 安 裝 <strong>Panel</strong> ( 第 70 頁 )<br />

使 用 CLI 初 始 化 <strong>Panel</strong> ( 第 170 頁 )<br />

安 裝 授 權<br />

<strong>Panel</strong> 分 發 版 隨 附 支 援 有 限 使 用 者 帳 戶 的 預 設 授 權 。 您 需 獲 取 並 安 裝 滿 足 使 用 者 需 求 的 授 權 。<br />

除 定 義 <strong>Panel</strong> 主 要 功 能 的 主 授 權 之 外 , 也 可 安 裝 附 加 授 權 , 即 可 使 用 <strong>Panel</strong> 載 入 項 , 如 Dr.Web<br />

防 病 毒 解 決 方 案 。<br />

快 速 連 結<br />

使 用 遠 端 API 安 裝 授 權 ( 第 74 頁 )<br />

使 用 CLI 安 裝 授 權 ( 第 171 頁 )


安 裝 操 作 概 要 31<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 Business<br />

<strong>Panel</strong> 產 品 標 誌 類 型 , 按 它 即 可 開 啟 <strong>Parallels</strong> 網 站 。 可 變 更 預 設 標 誌 影 像 和 URL。<br />

支 援<br />

支 援 按 鈕 位 於 <strong>Panel</strong> 管 理 員 可 以 使 用 的 設 定 標 籤 上 。 預 設 情 況 下 , 按 按 鈕 即 可 開 啟 <strong>Parallels</strong> 網<br />

站 上 的 技 術 支 援 請 求 表 單 , 假 定 由 管 理 員 完 成 和 提 交 。<br />

若 要 向 客 戶 提 供 技 術 支 援 , 按 一 下 支 援 按 鈕 即 可 變 更 URL。<br />

快 速 連 結<br />

使 用 CLI 建 立 <strong>Panel</strong> 標 誌 ( 第 171 頁 )


32 安 裝 操 作 概 要<br />

設 定 DNS<br />

安 裝 在 DNS 伺 服 器 上 , 該 DNS 伺 服 器 設 定 成 用 於 建 立 網 站 和 託 管 <strong>Panel</strong> 的 主<br />

控 網 域 名 稱 伺 服 器 。 設 定 <strong>Panel</strong> 時 , 即 可 停 用 DNS 服 務 , 或 按 照 需 求 進 行 設 定 。<br />

若 您 的 工 作 環 境 中 網 域 名 稱 伺 服 器 設 定 成 服 務 多 個 託 管 的 網 域 名 稱 , 且 安 裝 了 <strong>Panel</strong>, 則 無 需<br />

獨 立 的 DNS 伺 服 器 。 在 <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 ( 第 79 頁 )<br />

使 用 CLI 設 定 DNS ( 第 173 頁 )<br />

本 節 內 容<br />

變 更 SOA 記 錄 模 板 ............................................................................................ 33<br />

設 定 資 源 記 錄 模 板 .............................................................................................. 33


安 裝 操 作 概 要 33<br />

變 更 SOA 記 錄 模 板<br />

SOA 記 錄 的 <strong>Panel</strong> 模 板 允 許 變 更 下 列 記 錄 欄 位 :<br />

• ttl ( 生 效 時 間 )<br />

• 重 新 整 理<br />

• 重 詴<br />

• 過 期<br />

• 最 小<br />

• ( 僅 限 Unix CLI) sn (= 序 號 ) 格 式<br />

區 域 序 號 格 式 :yyyymmdd 或 Unix 時 間 戳<br />

設 定 資 源 記 錄 模 板<br />

DNS 區 域 的 <strong>Panel</strong> 模 板 支 援 下 列 資 源 記 錄 類 型 :<br />

• A<br />

• NS<br />

• CNAME<br />

• MX<br />

• PTR<br />

• TXT<br />

• AXFR<br />

• SRV


34 安 裝 操 作 概 要<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 憑 證 ( 第 104 頁 )<br />

使 用 CLI 安 裝 SSL 憑 證 ( 第 179 頁 )


安 裝 操 作 概 要 35<br />

建 立 網 站 及 子 網 站<br />

網 站<br />

<strong>Parallels</strong> Small Business <strong>Panel</strong> 中 新 型 的 網 站 和 子 網 站 建 立 與 設 定 流 程 簡 單 且 輕 鬆 。 建 立 網 站<br />

或 子 網 站 時 , 請 指 定 最 基 本 的 主 機 參 數 , 其 他 主 機 設 定 會 自 動 完 成 。<br />

因 此 , 若 要 建 立 網 站 , 請 指 定 下 列 函 數 :<br />

• 網 域 名 稱<br />

• IP 位 址<br />

若 IP 位 址 與 SSL 憑 證 關 聯 ( 第 34 頁 ), 則 會 自 動 啟 用 使 用 此 IP 建 立 網 站 的 SSL 支 援 。<br />

• 要 求 的 虛 擬 主 機 內 容 : 用 來 上 傳 網 站 內 容 的 FTP 帳 戶 登 入 名 和 密 碼 。<br />

在 網 站 上 安 裝 Web 應 用 程 式 時 ,<strong>Panel</strong> 會 自 動 設 定 應 用 程 式 所 需 的 所 有 服 務 。 因 此 必 頇 在<br />

網 站 建 立 過 程 中 指 定 IP 位 址 、FTP 登 入 名 和 密 碼 。<br />

快 速 連 結<br />

使 用 遠 端 API 建 立 網 站 ( 第 110 頁 )<br />

使 用 CLI 建 立 網 站 ( 第 181 頁 )<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 使 用 者 帳 戶 : 會 使 用 者 主 網 站 / 子 網 站<br />

的 FTP 使 用 者 帳 戶 。<br />

快 速 連 結


36 安 裝 操 作 概 要<br />

使 用 遠 端 API 建 立 子 網 站 ( 第 115 頁 )<br />

使 用 CLI 建 立 子 網 站 ( 第 181 頁 )<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 安 裝 應 用 程 式 ( 第 123 頁 )<br />

使 用 遠 端 CLI 安 裝 應 用 程 式 ( 第 184 頁 )<br />

本 節 內 容<br />

匯 入 套 用 套 裝 程 式 .............................................................................................. 37<br />

安 裝 應 用 程 式 ..................................................................................................... 37


安 裝 操 作 概 要 37<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 目 錄 設 定 檔 ( 第<br />

38 頁 ) 中 有 定 義 , 可 自 訂 來 滿 足 特 定 主 機 環 境 中 的 <strong>Panel</strong> 範 例 需 要 。<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/。


38 安 裝 操 作 概 要<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 目 錄 樣 本 ( 第 39 頁 )。<br />

2 匯 入 設 定 檔 到 <strong>Panel</strong> 中 。<br />

快 速 連 結<br />

使 用 遠 端 API 定 義 可 用 的 APS 目 錄 ( 第 120 頁 )<br />

使 用 CLI 定 義 可 用 的 APS 目 錄 ( 第 183 頁 )


安 裝 操 作 概 要 39<br />

本 節 內 容<br />

APS 目 錄 設 定 檔 ................................................................................................ 39<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 章 節 ( 第 41 頁 ) 包 括 API RPC 協 議 概 要 和 用 於 透 過 協 議 與 <strong>Panel</strong> 管 理 的 伺<br />

服 器 通 訊 的 工 具 樣 本 。<br />

設 定 <strong>Panel</strong> 章 節 ( 第 70 頁 ) 描 述 協 力 廠 商 工 具 應 執 行 <strong>Panel</strong> 設 定 操 作 的 請 求 資 訊 詳 情 ,<br />

以 及 從 每 個 操 作 返 回 的 回 應 資 訊 。<br />

本 章 內 容 :<br />

使 用 遠 端 API ..................................................................................................... 41<br />

設 定 <strong>Panel</strong> ......................................................................................................... 70


透 過 遠 端 API 設 定 41<br />

使 用 遠 端 API<br />

本 章 闡 述 <strong>Panel</strong> 遠 端 API 的 定 義 、 操 作 , 以 及 如 何 建 立 透 過 遠 端 API 與 <strong>Panel</strong> 通 訊 的 用 戶 端 應<br />

用 程 式 。<br />

本 節 內 容<br />

關 於 遠 端 API ..................................................................................................... 41<br />

API RPC 封 包 .................................................................................................... 42<br />

建 立 客 戶 軟 體 ..................................................................................................... 45<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 協 議 。


42 透 過 遠 端 API 設 定<br />

API RPC 封 包<br />

API RPC 封 包 是 包 含 在 HTTP 郵 件 內 文 中 的 簡 易 XML 檔 案 。<br />

區 別 下 面 兩 種 封 包 :<br />

• 申 請 封 包 - 用 戶 端 軟 體 透 過 遠 端 API 發 送 給 伺 服 器<br />

• 回 應 封 包 - 伺 服 器 發 給 客 戶<br />

回 應 封 包 包 含 所 請 求 操 作 的 執 行 狀 態 , 若 操 作 失 敗 , 還 會 包 含 錯 誤 資 訊 。<br />

本 節 內 容<br />

封 包 結 構 ............................................................................................................ 42<br />

封 包 實 例 ............................................................................................................ 43<br />

封 包 驗 證 ............................................................................................................ 44<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 設 定 43<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 />

<br />

<br />

P4$$w0rd<br />

johndoe@example.com<br />

de-DE<br />

<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 />

特 定 封 包 使 用 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 />

<br />

HTTP 伺 服 器 回 應 標 準 標 頭<br />

MIME 類 型 是 text/xml。 伺 服 器 元 素 顯 示 伺 服 器 上<br />

<strong>Panel</strong> 處 理 的 請 求 。<br />

有 效 XML 檔 案 標 準 標 頭<br />

XML 封 包 標 頭


44 透 過 遠 端 API 設 定<br />

<br />

<br />

<br />

ok<br />

<br />

<br />

<br />

<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 模 板 , 並 切 換 到 正 確 的 agent_input.xsd<br />

模 板 。 使 用 正 確 的 封 包 的 運 算 子 級 別 , 此 模 板 驗 證 封 包 的 運 算 子 級 別 。<br />

表 2: 伺 服 器 驗 證 封 包<br />

若 封 包 被 視 為 無 效 , 代 理 工 具 將 錯 誤 報 告 發 送 給 客 戶 。 若 封 包 的 所 有 元 素 驗 證 成 功 , 代 理 工 具<br />

檢 查 是 否 所 有 的 代 理 模 組 需 要 進 一 步 處 理 , 並 按 順 序 呼 叫 。<br />

呼 叫 的 每 個 代 理 ( 運 算 子 ) 接 收 到 運 算 子 封 包 部 分 , 解 析 並 呼 叫 內 部 功 能 , 並 將 指 令 執 行 結 果 返 回<br />

到 代 理 工 具 。


透 過 遠 端 API 設 定 45<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 封 包 發 送 器 在 <strong>Panel</strong> 使 用<br />

者 登 入 憑 據 中 加 入 HTTP 標 題 , 並 透 過 API RPC 協 議 將 封 包 發 送 給 <strong>Panel</strong> API RPC 伺 服 器 。<br />

3 HTTP 封 包 接 收 器 從 伺 服 器 獲 取 最 終 HTTP 封 包 , 移 除 HTTP 標 題 , 並 移 動 XML 回 應 到 XML<br />

封 包 解 析 器 。<br />

4 XML 封 包 解 析 器 分 析 回 應 XML 封 包 的 執 行 狀 態 , 若 結 果 為 負 則 會 生 成 錯 誤 訊 息 。 然 後 將 提<br />

取 和 處 理 的 資 料 返 回 給 GUI 或 呼 叫 模 組 。<br />

上 圖 顯 示 HTTP 操 作 部 分 的 HTTP 庫 。 這 些 操 作 可 從 頭 進 行 , 較 快 的 方 法 是 使 用 就 緒 並 經 過 測<br />

詴 的 HTTP 庫 。 分 開 HTTP 發 送 器 和 HTTP 接 收 器 是 有 條 件 的 : 僅 當 需 要 分 開 發 送 和 接 收 HTTP<br />

圖 形 操 作 時 才 執 行 此 操 作 。


46 透 過 遠 端 API 設 定<br />

本 節 內 容<br />

建 立 申 請 封 包 ..................................................................................................... 46<br />

發 送 請 求 資 訊 ..................................................................................................... 47<br />

解 析 回 應 ............................................................................................................ 49<br />

處 理 錯 誤 ............................................................................................................ 51<br />

客 戶 碼 範 例 ........................................................................................................ 52<br />

建 立 申 請 封 包<br />

請 求 API RPC 封 包 , 客 戶 從 GUI 或 軟 體 模 組 獲 取 指 令 對 一 或 多 個 <strong>Panel</strong> 物 件 執 行 操 作 。 此 應<br />

用 程 式 會 將 請 求 的 指 令 轉 換 成 與 <strong>Panel</strong> XML API 相 容 的 XML 封 包 格 式 。<br />

若 要 實 施 XML 封 包 轉 換 器 指 令 , 瞭 解 API RPC 架 構 , 以 及 如 何 透 過 <strong>Panel</strong> 伺 服 器 處 理 ( 第 42<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 設 定 47<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 =


48 透 過 遠 端 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 設 定 49<br />

解 析 回 應<br />

您 可 以 使 用 任 一 HTTP/FTP 客 戶 庫 傳 輸 請 求 到 <strong>Panel</strong>, 並 獲 取 結 果 。 多 數 情 況 下 , 最 終 HTTP<br />

封 包 結 構 , 參 閱 封 包 結 構 章 節 ( 第 42 頁 )。 若 使 用 CURL 工 具 , 返 回 的 最 終 結 果 是 純 XML 格<br />

式 。<br />

<strong>Panel</strong> API RPC 伺 服 器 返 回 的 純 XML 封 包 由 XML 模 板 定 義 。<br />

封 包 是 每 個 回 應 XML 封 包 的 根 節 點 , 版 本 內 容 返 回 伺 服 器 上 執 行 的 <strong>Panel</strong> API RPC 協 議 版 本<br />

。<br />

特 定 運 算 子 包 含 封 包 回 應 , 或 返 回 的 系 統 <strong>Panel</strong> 應 用 程 式 錯 誤 。<br />

有 關 系 統 和 輸 出 節 點 方 式 相 關 資 訊 , 參 閱 處 理 錯 誤 章 節 ( 第 51 頁 )。<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 伺 服 器 返 回 的 封 包 格 式 類 似 於 :<br />


50 透 過 遠 端 API 設 定<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 設 定 51<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 模 板 生 成 錯 誤 回 應 :


52 透 過 遠 端 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 />

本 節 內 容<br />

PHP 客 戶 應 用 程 式 ............................................................................................. 52<br />

C# Client Application ......................................................................................... 57<br />

VB.NET 客 戶 應 用 程 式 ....................................................................................... 63<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 />

function curlInit() 初 始 化 CURL 工 作 階 段 :<br />

CURLOPT_URL<br />

指 定 目 的 URL:


透 過 遠 端 API 設 定 53<br />

CURLOPT_RETURNTRANS<br />

FER<br />

CURLOPT_POST<br />

CURLOPT_SSL_VERIFYPE<br />

ER<br />

CURLOPT_SSL_VERIFYHO<br />

ST<br />

CURLOPT_HTTPHEADER<br />

設 定 成 true 表 示 將 從 伺 服<br />

器 返 回 字 串 格 式 的 最 終 輸<br />

出 。<br />

設 定 成 true 表 示 即 將 透 過<br />

HTTP POST 發 送 封 包 。<br />

設 定 成 false 讓 CURL 停 止<br />

驗 證 同 類 憑 證 。<br />

設 定 成 false 讓 CURL 停 止<br />

驗 證 主 機 。<br />

指 定 要 設 定 的 HTTP 標 頭<br />

欄 位 。<br />

返 回 URL 工 作 階 段 處 理 器 。<br />

function sendRequest()<br />

function parseResponse()<br />

function checkResponse()<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 />

獲 取 相 應 封 包 SimpleXMLEelement 並 檢 視 結 果 節 點 。 若<br />

節 點 ' 錯 誤 ', 則 函 數 出 現 異 常 , 字 串 傳 到 errtext 節 點 。<br />

main() 函 數 按 順 序 呼 叫 這 些 函 數 。 首 先 呼 叫 domainInfoRequest() 組 成 如 下 的 封 包 :<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />


54 透 過 遠 端 API 設 定<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<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 />


透 過 遠 端 API 設 定 55<br />

$xmldoc = new DomDocument('1.0', 'UTF-8');<br />

$xmldoc->formatOutput = true;<br />

// <br />

$packet = $xmldoc->createElement('packet');<br />

$packet->setAttribute('version', '1.6.2.0');<br />

$xmldoc->appendChild($packet);<br />

// <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);


56 透 過 遠 端 API 設 定<br />

}<br />

$errcode = curl_errno($curl);<br />

curl_close($curl);<br />

throw new ApiRequestException($errmsg, $errcode);<br />

}<br />

curl_close($curl);<br />

return $result;<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 ." ";


透 過 遠 端 API 設 定 57<br />

echo (string)$resultNode->data->gen_info->name ." (" .<br />

(string)$resultNode->data->gen_info->dns_ip_address .")\n";<br />

}<br />

?><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 />

公 共 字 串 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 物 件 )。


58 透 過 遠 端 API 設 定<br />

類 Program 執 行 ' 客 戶 ' 控 制 台 應 用 程 式 。<br />

static void Main (string[])<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 />

<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 />

驗 證 錯 誤 事 件 處 理 器 。<br />

函 數 輸 出 回 應 封 包 (XmlDocument 物 件 ) 到 控 制 台<br />


透 過 遠 端 API 設 定 59<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;


60 透 過 遠 端 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 />

//<br />

// Sending a request message


透 過 遠 端 API 設 定 61<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)<br />

{


62 透 過 遠 端 API 設 定<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 />

//<br />

private static void XmlSchemaValidation(object sender,<br />

ValidationEventArgs e)


透 過 遠 端 API 設 定 63<br />

{<br />

}<br />

Console.WriteLine("Validation error:{0}", e.Message);<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> 管 理 的 伺 服 器 主 機 名 (IP<br />

位 址 )。 預 設 是 "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) 子 函 數 。


64 透 過 遠 端 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 設 定 65<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<br />


66 透 過 遠 端 API 設 定<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<br />

' schema validation errors.


透 過 遠 端 API 設 定 67<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 />

'<br />

Private Function ParseAndValidate(ByVal xml As TextReader, ByVal<br />

schemaUri As String) As XmlDocument


68 透 過 遠 端 API 設 定<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<br />

request.XmlSchemaValidation = New<br />

ValidationEventHandler(AddressOf Program.XmlSchemaValidation)


透 過 遠 端 API 設 定 69<br />

"10.49.8.120";<br />

"1.6.2.0";<br />

request.Hostname = args(0)<br />

request.Login = args(1)<br />

request.Password = args(2)<br />

request.Protocol = args(3)<br />

'<br />

' "admin";<br />

' "setup";<br />

'<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


70 透 過 遠 端 API 設 定<br />

設 定 <strong>Panel</strong><br />

本 章 詳 細 闡 述 如 何 使 用 遠 端 API 執 行 <strong>Panel</strong> 設 定 操 作 。<br />

本 節 內 容<br />

初 始 化 <strong>Panel</strong> ..................................................................................................... 70<br />

安 裝 授 權 ............................................................................................................ 74<br />

設 定 DNS .......................................................................................................... 79<br />

安 裝 SSL 憑 證 ................................................................................................... 104<br />

建 立 網 站 ............................................................................................................ 110<br />

建 立 子 網 站 ........................................................................................................ 115<br />

定 義 可 用 的 APS 目 錄 ........................................................................................ 120<br />

安 裝 應 用 程 式 ..................................................................................................... 123<br />

初 始 化 <strong>Panel</strong><br />

若 要 透 過 API RPC 初 始 化 <strong>Panel</strong>, 使 用 smb/initial_setup 操 作 模 式 執 行 XML 請 求 封 包 :<br />

<br />

<br />

<br />

...<br />

<br />

<br />

<br />

本 節 內 容<br />

請 求 封 包 結 構 ..................................................................................................... 71<br />

請 求 樣 本 ............................................................................................................ 71<br />

回 應 封 包 結 構 ..................................................................................................... 72<br />

回 應 樣 本 ............................................................................................................ 73


透 過 遠 端 API 設 定 71<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 />

請 求 樣 本<br />

指 定 <strong>Panel</strong> 語 言 - <strong>Panel</strong> 介 面 上 要 使 用 的 語 言 資 料 類 型 : 字 串 。<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 />


72 透 過 遠 端 API 設 定<br />

回 應 封 包 結 構<br />

輸 出 XML 封 包 的 initial_setup 節 點 結 構 如 下 :<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 設 定 73<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 />


74 透 過 遠 端 API 設 定<br />

安 裝 授 權<br />

若 要 使 用 API RPC 安 裝 授 權 , 使 用 server/lic_install 操 作 模 式 執 行 XML 請 求 封 包 :<br />

<br />

<br />

<br />

...<br />

<br />

<br />

<br />

本 節 內 容<br />

請 求 封 包 結 構 ..................................................................................................... 74<br />

請 求 樣 本 ............................................................................................................ 75<br />

回 應 封 包 結 構 ..................................................................................................... 78<br />

回 應 樣 本 ............................................................................................................ 79<br />

請 求 封 包 結 構<br />

安 裝 授 權 的 請 求 XML 封 包 , 包 括 server/lic_install 操 作 模 式 , 結 構 如 下 :<br />

• license, required<br />

包 含 授 權 資 料 。 資 料 類 型 :base64。<br />

• additional_key, optional<br />

若 要 安 裝 附 加 授 權 , 請 指 定 。 資 料 類 型 : 無 。


透 過 遠 端 API 設 定 75<br />

請 求 樣 本<br />

此 封 包 安 裝 <strong>Parallels</strong> Small Business <strong>Panel</strong> for Linux/Unix 預 設 授 權 :<br />

<br />


76 透 過 遠 端 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 設 定 77<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 />


78 透 過 遠 端 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 設 定 79<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 />

本 節 內 容<br />

停 用 DNS 服 務 ................................................................................................... 80<br />

變 更 SOA 記 錄 模 板 ............................................................................................ 82<br />

設 定 資 源 記 錄 模 板 .............................................................................................. 85


80 透 過 遠 端 API 設 定<br />

停 用 DNS 服 務<br />

若 要 使 用 API RPC 停 用 <strong>Panel</strong> DNS 服 務 , 執 行 包 含 dns/disable 操 作 節 點 的 XML 請 求 :<br />

<br />

<br />

<br />

<br />

<br />

本 節 內 容<br />

請 求 封 包 ............................................................................................................ 80<br />

回 應 封 包 ............................................................................................................ 81<br />

請 求 封 包<br />

下 列 請 求 封 包 停 用 DNS 服 務 :<br />

<br />

<br />

<br />

<br />


透 過 遠 端 API 設 定 81<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 />


82 透 過 遠 端 API 設 定<br />

變 更 SOA 記 錄 模 板<br />

若 要 設 定 新 SOA 記 錄 模 板 , 執 行 包 含 dns/set 操 作 節 點 的 XML 請 求 封 包 :<br />

<br />

<br />

<br />

...<br />

<br />

<br />

<br />

本 節 內 容<br />

請 求 封 包 結 構 ..................................................................................................... 83<br />

請 求 樣 本 ............................................................................................................ 84<br />

回 應 封 包 結 構 ..................................................................................................... 84<br />

回 應 樣 本 ............................................................................................................ 85


透 過 遠 端 API 設 定 83<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.


84 透 過 遠 端 API 設 定<br />

請 求 樣 本<br />

此 封 包 更 新 SOA 記 錄 模 板 , 設 定 TTL 間 隔 為 32 小 時 , 重 新 整 理 間 隔 為 6 小 時 , 重 詴 間 隔 為<br />

15 分 鐘 , 保 留 <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 設 定 85<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 清 單 )<br />

本 節 內 容<br />

新 增 RR 模 板 ..................................................................................................... 86<br />

檢 索 DNS 區 域 模 板 相 關 資 訊 ............................................................................. 94<br />

移 除 RR 模 板 ..................................................................................................... 99


86 透 過 遠 端 API 設 定<br />

新 增 RR 模 板<br />

若 要 新 增 DNS 區 域 資 源 記 錄 模 板 , 執 行 包 含 dns/add-rec 操 作 模 式 的 XML 請 求 封 包 :<br />

<br />

<br />

<br />

...<br />

<br />

<br />

<br />

本 節 內 容<br />

請 求 封 包 結 構 ..................................................................................................... 87<br />

請 求 樣 本 ............................................................................................................ 88<br />

回 應 封 包 結 構 ..................................................................................................... 92<br />

回 應 樣 本 ............................................................................................................ 93


透 過 遠 端 API 設 定 87<br />

請 求 封 包 結 構<br />

新 增 DNS 記 錄 到 DNS 區 域 模 板 的 請 求 XML 封 包 包 括 dns/add_rec 操 作 節 點 , 由 dnsRecord 類<br />

型 (plesk_dns.xsd) 表 示 , 結 構 如 下 :<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 />


88 透 過 遠 端 API 設 定<br />

請 求 樣 本<br />

NS 請 求 樣 本<br />

<br />

<br />

<br />

NS<br />

<br />

ns.&lt;domain&gt;<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 />

&lt;ip&gt;<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 設 定 89<br />

<br />

<br />

CNAME<br />

www<br />

ns.&lt;domain&gt;<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.&lt;domain&gt;<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 />

&lt;ip&gt;<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 />

<br />

TXT


90 透 過 遠 端 API 設 定<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.&lt;domain&gt;<br />

<br />

<br />

NS<br />

<br />

provider-dns-server.example.com<br />

<br />

<br />

A<br />

mail<br />

&lt;ip&gt;<br />

<br />

<br />

CNAME


www<br />

ns.&lt;domain&gt;<br />

<br />

<br />

MX<br />

<br />

exchange.&lt;domain&gt;<br />

0<br />

<br />

<br />

PTR<br />

&lt;ip&gt;<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 />

透 過 遠 端 API 設 定 91


92 透 過 遠 端 API 設 定<br />

回 應 封 包 結 構<br />

輸 出 XML 封 包 的 add_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 設 定 93<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 />


94 透 過 遠 端 API 設 定<br />

檢 索 DNS 區 域 模 板 相 關 資 訊<br />

若 要 在 DNS 區 域 模 板 中 檢 索 資 源 記 錄 相 關 資 訊 , 執 行 包 含 dns/get_rec 操 作 節 點 的 XML 封 包 :<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

本 節 內 容<br />

回 應 封 包 結 構 ..................................................................................................... 95<br />

回 應 樣 本 ............................................................................................................ 97


透 過 遠 端 API 設 定 95<br />

回 應 封 包 結 構<br />

輸 出 XML 封 包 的 get_rec 節 點 結 構 如 下 :<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 />

名 取 代 。


96 透 過 遠 端 API 設 定<br />

• opt, optional<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 />

<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 />

&lt;domain&gt;.<br />

ns.&lt;domain&gt;.<br />

<br />

<br />

<br />

<br />

ok<br />

2<br />

<br />

A<br />

ns.&lt;domain&gt;.<br />

&lt;ip&gt;<br />

<br />


98 透 過 遠 端 API 設 定<br />

<br />

<br />

ok<br />

3<br />

<br />

A<br />

&lt;domain&gt;.<br />

&lt;ip&gt;<br />

<br />

<br />

<br />

<br />

ok<br />

4<br />

<br />

A<br />

webmail.&lt;domain&gt;.<br />

&lt;ip&gt;<br />

<br />

<br />

<br />

<br />

ok<br />

5<br />

<br />

MX<br />

&lt;domain&gt;.<br />

mail.&lt;domain&gt;.<br />

10<br />

<br />

<br />

<br />

ok<br />

6<br />

<br />

A<br />

mail.&lt;domain&gt;.<br />

&lt;ip&gt;<br />

<br />

<br />

<br />

<br />

ok<br />

7<br />

<br />

CNAME<br />

ftp.&lt;domain&gt;.<br />

&lt;domain&gt;.<br />

<br />

<br />

<br />

<br />

ok<br />

8<br />

<br />

PTR<br />

&lt;ip&gt; / 24<br />

&lt;domain&gt;.<br />

24<br />


透 過 遠 端 API 設 定 99<br />

<br />

<br />

<br />

<br />

移 除 RR 模 板<br />

若 要 從 DNS 區 域 模 板 移 除 RR, 執 行 包 含 dns/del_rec 操 作 節 點 的 XML 封 包 :<br />

<br />

<br />

<br />

...<br />

<br />

<br />

<br />

本 節 內 容<br />

請 求 封 包 結 構 ..................................................................................................... 99<br />

請 求 樣 本 ............................................................................................................ 100<br />

回 應 封 包 結 構 ..................................................................................................... 101<br />

回 應 樣 本 ............................................................................................................ 102<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 />

指 定 要 移 除 的 記 錄 模 板 。 資 料 類 型 : 無 。


100 透 過 遠 端 API 設 定<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 />


透 過 遠 端 API 設 定 101<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 記 錄 移 除 的 唯 一 識 別 碼 。 資 料 類 型 : 整 數 。


102 透 過 遠 端 API 設 定<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<br />

10


透 過 遠 端 API 設 定 103<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 記 錄 不 存 在 。<br />

4<br />


104 透 過 遠 端 API 設 定<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 />

請 求 封 包 結 構 ..................................................................................................... 105<br />

請 求 樣 本 ............................................................................................................ 106<br />

回 應 封 包 結 構 ..................................................................................................... 108<br />

回 應 樣 本 ............................................................................................................ 109


透 過 遠 端 API 設 定 105<br />

請 求 封 包 結 構<br />

請 求 XML 封 包 的 安 裝 節 點 結 構 如 下 :<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).


106 透 過 遠 端 API 設 定<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


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 />

<br />

透 過 遠 端 API 設 定 107


108 透 過 遠 端 API 設 定<br />

回 應 封 包 結 構<br />

輸 出 XML 封 包 的 install 節 點 結 構 如 下 :<br />

• result, required<br />

包 含 從 伺 服 器 檢 索 到 的 回 應 。<br />

• status, required<br />

指 定 操 作 執 行 狀 態 。 資 料 類 型 : 字 串 。 允 許 的 值 :ok | error.<br />

• errcode, required 若 操 作 失 敗<br />

返 回 錯 誤 碼 。 資 料 類 型 :unsignedInt.<br />

• errtext, required 資 料 類 型 :<br />

返 回 錯 誤 訊 息 。 資 料 類 型 : 字 串 。


透 過 遠 端 API 設 定 109<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 />


110 透 過 遠 端 API 設 定<br />

建 立 網 站<br />

若 要 建 立 網 站 帳 戶 , 執 行 包 含 domain/add 操 作 節 點 的 XML 請 求 封 包 :<br />

<br />

<br />

<br />

…<br />

<br />

<br />

<br />

本 節 內 容<br />

請 求 封 包 結 構 ..................................................................................................... 110<br />

請 求 樣 本 ............................................................................................................ 112<br />

回 應 封 包 結 構 ..................................................................................................... 112<br />

回 應 樣 本 ............................................................................................................ 114<br />

請 求 封 包 結 構<br />

建 立 網 站 帳 戶 的 請 求 XML 封 包 , 包 括 domain/add 操 作 模 式 , 結 構 如 下 :


透 過 遠 端 API 設 定 111<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).


112 透 過 遠 端 API 設 定<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 節 點 結 構 如 下 :


透 過 遠 端 API 設 定 113<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 />

返 回 剛 新 增 的 網 站 帳 戶 全 域 唯 一 識 別 碼 。 資 料 類 型 : 字 串 。


114 透 過 遠 端 API 設 定<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 />


透 過 遠 端 API 設 定 115<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 />

請 求 封 包 結 構 ..................................................................................................... 115<br />

請 求 樣 本 ............................................................................................................ 117<br />

回 應 封 包 結 構 ..................................................................................................... 118<br />

回 應 樣 本 ............................................................................................................ 119<br />

請 求 封 包 結 構<br />

新 增 新 子 網 站 的 請 求 XML 封 包 , 包 括 subdomain/add 操 作 模 式 , 結 構 如 下 :


116 透 過 遠 端 API 設 定<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 />

指 定 主 機 參 數 值 。 資 料 類 型 : 任 何 。


透 過 遠 端 API 設 定 117<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 />


118 透 過 遠 端 API 設 定<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 - 操 作 失 敗 。


透 過 遠 端 API 設 定 119<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 />


120 透 過 遠 端 API 設 定<br />

定 義 可 用 的 APS 目 錄<br />

若 要 匯 出 APS 目 錄 自 訂 清 單 ( 設 定 檔 ) 到 <strong>Panel</strong>, 執 行 包 含 aps/import-config 操 作 節 點 的 XML<br />

請 求 封 包 :<br />

<br />

<br />

<br />

...<br />

<br />

<br />

<br />

設 定 檔 ( 第 39 頁 ) 應 先 透 過 上 傳 運 算 子 ( 第 124 頁 ) 上 傳 到 伺 服 器 。<br />

本 節 內 容<br />

請 求 封 包 結 構 ..................................................................................................... 120<br />

請 求 樣 本 ............................................................................................................ 121<br />

回 應 封 包 結 構 ..................................................................................................... 122<br />

回 應 樣 本 ............................................................................................................ 123<br />

請 求 封 包 結 構<br />

請 求 封 包 的 import-config 節 點 結 構 如 下 :<br />

• filename, required<br />

指 定 上 傳 到 伺 服 器 的 設 定 檔 名 。 資 料 類 型 : 字 串 。<br />

值 上 傳 回 應 ( 第 131 頁 ) 是 中 的 暫 時 檔 名 ( 位 於 "upload/result/file" 元 素 )。


透 過 遠 端 API 設 定 121<br />

請 求 樣 本<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 />


122 透 過 遠 端 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 設 定 123<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 運 算 子 。<br />

本 節 內 容<br />

匯 入 套 用 套 裝 程 式 .............................................................................................. 124<br />

安 裝 應 用 程 式 ..................................................................................................... 150


124 透 過 遠 端 API 設 定<br />

匯 入 套 用 套 裝 程 式<br />

本 節 內 容<br />

將 檔 案 上 傳 到 伺 服 器 .......................................................................................... 124<br />

匯 入 上 傳 的 應 用 套 裝 程 式 ................................................................................... 134<br />

從 APS 目 錄 下 載 套 用 套 裝 程 式 .......................................................................... 138<br />

獲 取 下 載 工 作 狀 態 .............................................................................................. 143<br />

將 檔 案 上 傳 到 伺 服 器<br />

若 要 上 傳 檔 案 到 <strong>Panel</strong> 管 理 的 伺 服 器 , 使 用 上 傳 運 算 子 。 不 同 於 其 他 操 作 , 上 傳 運 算 子 不 使 用<br />

標 準 請 求 封 包 結 構 。 而 是 使 用 發 佈 方 式 http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html<br />

來 上 傳 檔 案 。<br />

當 <strong>Panel</strong> 處 理 請 求 時 , 回 應 包 含 在 一 般 回 應 XML 封 包 中 。 上 傳 檔 案 到 <strong>Panel</strong> 後 , 則 可 用 於 其 他<br />

操 作 。<br />

注 意 : 也 可 使 用 FTP 管 理 員 上 傳 檔 案 , 注 意 對 檔 案 進 行 API RPC 操 作 可 能 會 出 現 權 限 問 題 。<br />

建 議 使 用 上 傳 運 算 子 。<br />

本 節 內 容<br />

使 用 cURL 上 傳 檔 案 .......................................................................................... 124<br />

使 用 PHP 上 傳 檔 案 ............................................................................................ 126<br />

使 用 .NET 上 傳 檔 案 .......................................................................................... 128<br />

回 應 封 包 結 構 ..................................................................................................... 131<br />

回 應 樣 本 ............................................................................................................ 133<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 機 器 。


透 過 遠 端 API 設 定 125<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。


126 透 過 遠 端 API 設 定<br />

使 用 PHP 上 傳 檔 案<br />

此 為 使 用 PHP 指 令 碼 上 傳 檔 案 到 <strong>Panel</strong> 的 範 例 。 使 用 <strong>Panel</strong> 憑 證 變 更 HOST、LOGIN、<br />

PASSWD 和 FILENAME。<br />

主 機 <strong>Panel</strong> 管 理 的 伺 服 器 IP 位 址 和 名 稱 。<br />

LOGIN <strong>Panel</strong> 管 理 員 登 入 名 。<br />

PASSWD <strong>Panel</strong> 管 理 員 密 碼 。<br />

FILENAME 要 上 傳 的 檔 案 全 名 。<br />


透 過 遠 端 API 設 定 127<br />

echo "\n\ncURL error:". curl_error($ch);<br />

}<br />

curl_close($ch);<br />

//fclose($fp);<br />

return;<br />

}<br />

uploadFile(realpath(FILENAME));<br />

?>


128 透 過 遠 端 API 設 定<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 />

{


透 過 遠 端 API 設 定 129<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);


130 透 過 遠 端 API 設 定<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 />

}


透 過 遠 端 API 設 定 131<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 封 包 結 構 如 下 :


132 透 過 遠 端 API 設 定<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 />

指 定 建 立 的 暫 存 檔 全 名 。 資 料 類 型 : 字 串 。


透 過 遠 端 API 設 定 133<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 />


134 透 過 遠 端 API 設 定<br />

匯 入 上 傳 的 應 用 套 裝 程 式<br />

若 要 匯 入 上 傳 的 應 用 套 裝 程 式 ( 第 124 頁 ) 到 <strong>Panel</strong>, 執 行 包 含 aps/import-package 操 作 模 式 的<br />

XML 請 求 :<br />

<br />

<br />

<br />

...<br />

<br />

<br />

<br />

本 節 內 容<br />

請 求 封 包 結 構 ..................................................................................................... 134<br />

請 求 樣 本 ............................................................................................................ 135<br />

回 應 封 包 結 構 ..................................................................................................... 136<br />

回 應 樣 本 ............................................................................................................ 137<br />

請 求 封 包 結 構<br />

匯 入 APS 封 包 到 <strong>Panel</strong> 的 XML 封 包 包 含 import-package 操 作 節 點 , 結 構 如 下 :<br />

• filename, required<br />

指 定 上 傳 到 伺 服 器 的 應 用 套 裝 程 式 名 稱 。 資 料 類 型 : 字 串 。<br />

值 上 傳 回 應 ( 第 131 頁 ) 是 中 的 暫 時 檔 名 ( 位 於 "upload/result/file" 元 素 )。


透 過 遠 端 API 設 定 135<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 />


136 透 過 遠 端 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 設 定 137<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 />


138 透 過 遠 端 API 設 定<br />

從 APS 目 錄 下 載 套 用 套 裝 程 式<br />

若 要 從 APS 目 錄 下 載 套 用 套 裝 程 式 , 執 行 包 含 aps/download-package 操 作 節 點 的 XML 請 求 封 包<br />

:<br />

<br />

<br />

<br />

...<br />

<br />

<br />

<br />

若 操 作 成 功 , 則 建 立 下 載 工 作 。<br />

注 意 : 操 作 成 功 不 表 示 開 始 下 載 。 下 載 是 否 成 功 , 需 執 行 get-download-status ( 第 143 頁 ) 檢 視<br />

。<br />

本 節 內 容<br />

請 求 封 包 結 構 ..................................................................................................... 139<br />

請 求 樣 本 ............................................................................................................ 140<br />

回 應 封 包 結 構 ..................................................................................................... 141<br />

回 應 樣 本 ............................................................................................................ 142


透 過 遠 端 API 設 定 139<br />

請 求 封 包 結 構<br />

download-package 節 點 結 構 如 下 :<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 目 錄 設 定 檔 ( 第 39 頁 ) 中 相 同 , 否 則 會 出 現 錯 誤 1013。<br />

若 未 包 含 在 封 包 中 , 從 最 先 在 APS 目 錄 設 定 檔 ( 第 120 頁 ) 中 定 義 的 APS 目 錄 下 載 的 封 包


140 透 過 遠 端 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 設 定 141<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, 可 稍 後 用 於 檢 索 下 載 狀 態 。 資 料 類 型 : 字 串 。


142 透 過 遠 端 API 設 定<br />

回 應 樣 本<br />

從 伺 服 器 接 收 到 的 正 回 應 如 下 :<br />

<br />

<br />

<br />

<br />

ok<br />

4<br />

<br />

<br />

<br />

<br />

若 請 求 定 義 的 APS 目 錄 URL 不 在 APS 目 錄 設 定 檔 ( 第 120 頁 ) 清 單 中 , 則 返 回 下 列 回 應 。 若<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 目 錄 設 定 檔 ( 第 120 頁 ) 格 式 錯 誤 , 返 回 此 類 負 回 應 :<br />

<br />

<br />

<br />

<br />

error<br />

1023<br />

APS 目 錄 設 定 檔 損 壞 <br />

<br />

<br />

<br />


透 過 遠 端 API 設 定 143<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 />

請 求 封 包 結 構 ..................................................................................................... 143<br />

請 求 樣 本 ............................................................................................................ 144<br />

回 應 封 包 結 構 ..................................................................................................... 145<br />

請 求 和 回 應 樣 本 ................................................................................................. 147<br />

請 求 封 包 結 構<br />

get-download-status 節 點 結 構 如 下 :<br />

• filter, required<br />

檢 索 到 篩 選 器 下 載 工 作 。 資 料 類 型 : 無 。<br />

若 定 義 的 值 為 空 , 則 返 回 所 有 當 前 所 有 下 載 工 作 清 單 。 在 Windows 中 , 為 每 個 下 載 工 作 建<br />

立 獨 立 交 易 。 下 載 完 成 則 下 載 交 易 結 束 。<br />

• task-id, optional<br />

指 定 下 載 工 作 ID ( 返 回 操 作 結 果 )。 資 料 類 型 :id_type<br />

(common.xsd).


144 透 過 遠 端 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 設 定 145<br />

回 應 封 包 結 構<br />

輸 出 XML 封 包 get-download-status 結 構 如 下 :<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 />

結 構 如 下 :


146 透 過 遠 端 API 設 定<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 />

指 定 下 載 工 作 進 行 中 , 下 載 佇 列 中 無 等 待 工 作 。 資 料 類 型 : 字 串 。


透 過 遠 端 API 設 定 147<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 />


148 透 過 遠 端 API 設 定<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 />

<br />

3584225


透 過 遠 端 API 設 定 149<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 />


150 透 過 遠 端 API 設 定<br />

安 裝 應 用 程 式<br />

安 裝 應 用 程 式 要 求 您 識 別 要 安 裝 的 源 套 裝 程 式 。 按 ID 識 別 或<br />

name-version-release-vendor-packager 資 訊 識 別 套 裝 程 式 。<br />

若 要 提 供 套 裝 程 式 ID, 執 行 :<br />

• 使 用 匯 入 <strong>Panel</strong> 後 分 配 給 套 裝 程 式 的 ID ( 第 136 頁 )<br />

• 使 用 從 APS 目 錄 成 功 下 載 後 分 配 給 套 裝 程 式 的 ID ( 第 145 頁 )<br />

• 使 用 從 可 用 套 裝 程 式 資 訊 返 回 的 ID ( 第 163 頁 )<br />

若 要 提 供 name-version-release-vendor-packager 資 訊 , 從 可 安 裝 的 套 裝 程 式 檢 索 資 訊 ( 第<br />

161 頁 )。<br />

本 節 內 容<br />

在 網 站 或 子 網 站 上 安 裝 應 用 程 式 ........................................................................ 150<br />

檢 索 可 用 封 包 ..................................................................................................... 161<br />

在 網 站 或 子 網 站 上 安 裝 應 用 程 式<br />

若 要 安 裝 應 用 程 式 , 執 行 包 含 aps/install 操 作 節 點 的 XML 請 求 封 包 :<br />

<br />

<br />

<br />

...<br />

<br />

<br />

<br />

本 節 內 容<br />

請 求 封 包 結 構 ..................................................................................................... 151<br />

請 求 樣 本 ............................................................................................................ 155<br />

回 應 封 包 結 構 ..................................................................................................... 156<br />

回 應 樣 本 ............................................................................................................ 157


透 過 遠 端 API 設 定 151<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 操 作 獲 取 ( 第 161 頁 )。<br />

• package-id, optional<br />

指 定 要 在 伺 服 器 上 安 裝 的 應 用 套 裝 程 式 ID。 資 料 類 型 :id_type (common.xsd).


152 透 過 遠 端 API 設 定<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 />

指 定 套 裝 程 式 版 本 。 資 料 類 型 : 字 串 。


透 過 遠 端 API 設 定 153<br />

• vendor, optional<br />

指 定 應 用 程 式 廠 商 。 資 料 類 型 : 字 串 。<br />

• packager, optional<br />

指 定 應 用 程 式 打 包 程 式 。 資 料 類 型 : 字 串<br />

應 在 簡 要 或 延 伸 表 單 中 指 定 套 裝 程 式 :<br />

• 簡 要 型 提 供 應 用 程 式 名<br />

• 延 伸 型 提 供 所 有 套 裝 程 式 詳 細 資 訊 : 名 稱 、 版 本 、 發 行 號 、 廠 商 和 打 包 程 式<br />

database 節 點 由 類 型 APSDatabaseInputType 表 示 (aps.xsd), 圖 示 如 下 :


154 透 過 遠 端 API 設 定<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<br />

指 定 設 定 ID。 可 以 和 APP-META.xml ("//setting[@id]") 中 指 定 同 一 設 定 ID。 資<br />

料 類 型 : 字 串 。<br />

• value, required<br />

指 定 設 定 值 。 資 料 類 型 : 字 串 。


透 過 遠 端 API 設 定 155<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 />

且 無 設 定 時 , 會 用 到 此 類 請 求 。


156 透 過 遠 端 API 設 定<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 - 不 滿 足 應 用 程 式 需 求


透 過 遠 端 API 設 定 157<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 />


158 透 過 遠 端 API 設 定<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 />


透 過 遠 端 API 設 定 159<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 />

其 他 錯 誤


160 透 過 遠 端 API 設 定<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 />


透 過 遠 端 API 設 定 161<br />

檢 索 可 用 封 包<br />

使 用 aps/get-packages-list 操 作 檢 索 可 在 網 站 / 子 網 站 上 安 裝 的 應 用 套 裝 程 式 資 訊 :<br />

<br />

<br />

<br />

...<br />

<br />

<br />

<br />

本 節 內 容<br />

請 求 封 包 結 構 ..................................................................................................... 161<br />

請 求 樣 本 ............................................................................................................ 162<br />

回 應 封 包 結 構 ..................................................................................................... 163<br />

請 求 和 回 應 樣 本 ................................................................................................. 165<br />

請 求 封 包 結 構<br />

get-packages-list 節 點 結 構 如 下 :<br />

• filter, required<br />

篩 選 檢 索 到 其 資 訊 的 套 裝 程 式 。 資 料 類 型 : 無 。<br />

若 為 空 , 則 伺 服 器 上 所 有 APS 套 裝 程 式 相 關 資 訊 會 返 迴 回 應 套 裝 程 式 。<br />

• package-id, optional<br />

指 定 要 檢 索 其 資 訊 的 套 裝 程 式 ID。 資 料 類 型 :id_type (common.xsd).


162 透 過 遠 端 API 設 定<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 />


透 過 遠 端 API 設 定 163<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).<br />

結 構 如 下 :


164 透 過 遠 端 API 設 定<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).


透 過 遠 端 API 設 定 165<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 />


166 透 過 遠 端 API 設 定<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 章 節 ( 第 168 頁 ) 概 述 CLI 使 用 基 本 資 訊 。<br />

設 定 <strong>Panel</strong> 章 節 ( 第 169 頁 ) 詳 細 闡 述 要 執 行 的 <strong>Panel</strong> 設 定 操 作 。<br />

本 章 內 容 :<br />

關 於 <strong>Panel</strong> CLI .................................................................................................. 168<br />

設 定 <strong>Panel</strong> ......................................................................................................... 169


168 透 過 CLI 設 定<br />

關 於 <strong>Panel</strong> CLI<br />

<strong>Parallels</strong> Small Business <strong>Panel</strong> 指 令 行 介 面 (CLI) 提 供 <strong>Panel</strong> 管 理 員 可 以 在 指 令 行 介 面<br />

中 執 行 的 主 要 管 理 操 作 。<br />

root 使 用 者 可 從 控 制 台 或 指 令 碼 使 用 <strong>Panel</strong> 指 令 行 實 用 程 式 。 實 用 程 式 需 要<br />

"root"/"psaadm" (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%


透 過 CLI 設 定 169<br />

設 定 <strong>Panel</strong><br />

本 章 闡 述 要 在 <strong>Panel</strong> 設 定 操 作 中 執 行 的 指 令 詳 細 資 訊 。<br />

本 節 內 容<br />

初 始 化 <strong>Panel</strong> ..................................................................................................... 170<br />

安 裝 授 權 ............................................................................................................ 171<br />

定 義 <strong>Panel</strong> 標 誌 ................................................................................................. 171<br />

設 定 DNS .......................................................................................................... 173<br />

安 裝 SSL 憑 證 ................................................................................................... 179<br />

建 立 網 站 ............................................................................................................ 181<br />

建 立 子 網 站 ........................................................................................................ 181<br />

定 義 可 用 的 APS 目 錄 ........................................................................................ 183<br />

安 裝 應 用 程 式 ..................................................................................................... 184


170 透 過 CLI 設 定<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" 和 電 子 郵 件<br />

"fischer@example.com", 並 設 定 <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 設 定 171<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"<br />

定 義 <strong>Panel</strong> 標 誌<br />

若 要 設 定 <strong>Panel</strong> 商 標 , 使 用 branding 實 用 程 式 。<br />

本 節 內 容<br />

變 更 標 誌 ............................................................................................................ 172<br />

變 更 支 援 URL .................................................................................................... 172


172 透 過 CLI 設 定<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 設 定 173<br />

設 定 DNS<br />

若 要 透 過 CLI 設 定 <strong>Panel</strong> DNS 服 務 ( 包 括 停 用 ), 使 用 server_dns 實 用 程 式 。<br />

本 節 內 容<br />

停 用 DNS 服 務 ................................................................................................... 173<br />

變 更 SOA 記 錄 模 板 ............................................................................................ 173<br />

設 定 資 源 記 錄 模 板 .............................................................................................. 174<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 />

指 定 TTL 時 段 。<br />

<strong>Panel</strong> 設 定 的 預 設 值 為 一 天 。<br />

指 定 重 新 整 理 時 段 。<br />

<strong>Panel</strong> 設 定 的 預 設 值 為 三 小 時 。<br />

指 定 重 詴 時 段 。<br />

<strong>Panel</strong> 設 定 的 預 設 值 為 一 小 時 。<br />

指 定 過 期 日 。<br />

<strong>Panel</strong> 設 定 的 預 設 值 為 一 週 。


174 透 過 CLI 設 定<br />

選 項 參 數 描 述<br />

-soa-minimum [S|<br />

M|H|D|W]<br />

指 定 最 小 值 。<br />

<strong>Panel</strong> 設 定 的 預 設 值 為 三 小 時 。<br />

-soa-serial-for<br />

mat<br />

timestamp|yyyy<br />

mmddnn<br />

指 定 SOA 記 錄 序 號 格 式 :UNIX 時 間 戳 或 由 IETF 和 RIPE 建 議 。<br />

僅 在 Linux/Unix 上 支 援 。<br />

範 例<br />

1. 下 列 指 令 設 定 TTL 值 為 5 小 時 , 重 新 整 理 值 為 4 小 時 , 重 詴 值 為 10 秒 , 過 期 時 段 為 2 周 , 最 小 值 為<br />

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 />

新 增 記 錄 ............................................................................................................ 175<br />

覆 寫 DNS 區 域 模 板 中 的 記 錄 ............................................................................. 177


透 過 CLI 設 定 175<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 />

-nameserv<br />

er<br />

|""<br />

|"[.]"<br />

指 定 記 錄 設 定 要 套 用 到 的 主 機<br />

名 。<br />

指 定 網 域 名 稱 伺 服 器 名 稱 或 佔<br />

位 符 , 建 立 NS 資 源 記 錄 模 板 。<br />

若 要 新 增 新 NS 資 源 記 錄 , 指 定<br />

"ns.." 作 為<br />

主 機 網 域 名 稱 伺 服 器 :<br />

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


176 透 過 CLI 設 定<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<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


透 過 CLI 設 定 177<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> 中 的 每 條 資 源 記 錄 :


178 透 過 CLI 設 定<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;"


透 過 CLI 設 定 179<br />

安 裝 SSL 憑 證<br />

若 要 透 過 CLI 安 裝 SSL 憑 證 , 使 用 certificate 實 用 程 式 。 兩 步 完 成 安 裝 :<br />

1 匯 入 憑 證 到 <strong>Panel</strong>。<br />

2 分 配 憑 證 到 IP 位 址 。<br />

注 意 , 憑 證 之 前 已 使 用 <strong>Panel</strong> 上 傳 到 機 器 。<br />

本 節 內 容<br />

匯 入 憑 證 ............................................................................................................ 180<br />

分 配 憑 證 到 IP 位 址 ............................................................................................ 181


180 透 過 CLI 設 定<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


透 過 CLI 設 定 181<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 實 用 程 式 。


182 透 過 CLI 設 定<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


透 過 CLI 設 定 183<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 />

設 定 檔 位 於 下 列 目 錄 之 一 :


184 透 過 CLI 設 定<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 目 錄 設 定 檔 章 節 ( 第 39 頁 )。<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 />

匯 入 套 用 套 裝 程 式 .............................................................................................. 184<br />

安 裝 應 用 程 式 ..................................................................................................... 186<br />

匯 入 套 用 套 裝 程 式<br />

本 節 內 容<br />

匯 入 上 傳 的 應 用 套 裝 程 式 ................................................................................... 185<br />

從 APS 目 錄 下 載 套 用 套 裝 程 式 .......................................................................... 185<br />

獲 取 下 載 工 作 狀 態 .............................................................................................. 186


透 過 CLI 設 定 185<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"<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 與 設 定 檔 中 相 同 )。 若 未 指 定 , 則 按 設 定 檔 ( 第 39 頁 ) 中 所 列 的<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


186 透 過 CLI 設 定<br />

獲 取 下 載 工 作 狀 態<br />

若 要 獲 取 下 載 狀 態 , 使 用 下 列 指 令 :<br />

aps <br />

範 例<br />

下 列 指 令 獲 取 下 載 工 作 ID 16 的 狀 態 。<br />

在 Linux/Unix 中 :<br />

./aps -g 16<br />

在 Windows 中 :<br />

aps -g 16<br />

安 裝 應 用 程 式<br />

安 裝 應 用 程 式 要 求 您 識 別 要 安 裝 的 源 套 裝 程 式 。 按 ID 識 別 或<br />

name-version-release-vendor-packager 資 訊 識 別 套 裝 程 式 。<br />

若 要 提 供 套 裝 程 式 ID, 執 行 :<br />

• 使 用 匯 入 <strong>Panel</strong> 後 分 配 給 套 裝 程 式 的 ID ( 第 185 頁 )<br />

• 使 用 從 APS 目 錄 成 功 下 載 後 分 配 給 套 裝 程 式 的 ID ( 第 186 頁<br />

• 使 用 從 可 用 套 裝 程 式 資 訊 返 回 的 ID ( 第 190 頁 )<br />

若 要 提 供 name-version-release-vendor-packager 資 訊 , 從 可 安 裝 的 套 裝 程 式 檢 索 資 訊 ( 第<br />

190 頁 )。<br />

本 節 內 容<br />

在 網 站 或 子 網 站 上 安 裝 應 用 程 式 ........................................................................ 187<br />

檢 索 可 用 封 包 ..................................................................................................... 190


透 過 CLI 設 定 187<br />

在 網 站 或 子 網 站 上 安 裝 應 用 程 式<br />

若 要 在 網 站 / 子 網 站 上 安 裝 應 用 程 式 , 使 用 指 令 :<br />

aps <br />

<<br />

|<br />

><br />

<<br />

|<br />

><br />

[installation options]<br />

其 中<br />

• 其 中<br />

|-<br />

負 責 指 定 應 用 程 式 設 定 (XML 格 式 ( 第 189 頁 ))。 設 定 定 義 指 定 成 指 令 參 數 , 檔 名 或 直 接<br />

從 STDIN 中 讀 取 。 其 他 情 況 下 ,"-" 應 指 定 為 指 令 函 數 。<br />

有 關 設 定 格 式 和 樣 本 , 參 閱 應 用 程 式 設 定 定 義 子 章 節 ( 第 189 頁 )。<br />

• 其 中<br />

|<br />

指 定 應 用 程 式 安 裝 來 源 。 按 套 裝 程 式 ID、 名 稱 、 版 本 、 發 行 號 、 廠 商 和 打 包 工 具 指 定 套 裝<br />

程 式 。 使 用 --get-packages-list 指 令 ( 第 190 頁 ) 獲 取 套 裝 程 式 內 容 。<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 < 登 入 名 > 在 應 用 程 式 安 裝 中 指 定 資 料 庫 使 用 者 名 稱 。


188 透 過 CLI 設 定<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<br />

本 節 內 容<br />

應 用 程 式 設 定 定 義 .............................................................................................. 189


透 過 CLI 設 定 189<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 />


190 透 過 CLI 設 定<br />

檢 索 可 用 封 包<br />

若 要 檢 索 套 用 套 裝 程 式 資 訊 (ID、 名 稱 、 版 本 、 發 行 號 、 廠 商 、 打 包 程 式 ), 使 用 指 令 :<br />

aps <br />

格 式 如 下 。<br />

在 Linux/Unix 中 :<br />

./aps -gp<br />

在 Windows 中 :<br />

aps -gp

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!