如何在全新 Linux 伺服器上安裝完整 API 指令碼

在全新伺服器上安裝一個 API 時,需要遵循嚴謹的流程。在安裝該 API 的完整指令碼之前,你必須先準備好執行環境,特別是在部署到香港伺服器租用環境時更要格外謹慎。你應當檢查 API 所需的全部相依性並確認它們可以正常運作。在完成 API 的部署後,還需要驗證 API 是否按預期執行。務必重視安全防護,對系統進行強化,以保護 API 免受威脅,並遵循適用於 香港伺服器租用 環境的安全最佳實務。
關鍵要點
選擇 Ubuntu 或 Debian 等相容性好、社群支援強、管理方便的 Linux 發行版。
在安裝 API 之前務必先更新伺服器軟體套件,以修補已知弱點,降低安全風險。
確認所有必需工具已正確安裝,確保 API 安裝過程順暢無誤。
從可信來源下載 API 指令碼,並校驗檔案完整性,以避免安全風險。
定期查看日誌並測試 API 端點,確保安裝執行穩定且安全。
準備 Linux 伺服器
選擇相容的發行版
首先應根據自身需求選擇合適的 Linux 發行版。許多使用者更偏好 Ubuntu 或 Debian,因為它們擁有強大的社群支援與便利的套件管理系統。CentOS 與 RHEL 也非常適合企業級環境。務必確認你選擇的發行版已獲得目標 API 指令碼的支援,這將有助於避免後續的相容性問題。
初始設定與系統更新
在完成伺服器基礎安裝後,你需要立即更新所有系統軟體套件。保持系統最新狀態可以協助防禦已知安全弱點。對於 Ubuntu 或 Debian,可以執行:
sudo apt update && sudo apt upgrade -y
如果你使用的是 CentOS 或 RHEL,則可以使用:
sudo yum update -y
接下來,建立一個新的管理使用者以提升安全性。參考以下步驟:
使用
adduser admin建立名為admin的新使用者。為該新使用者設定登入密碼。
使用
adduser admin sudo將該使用者加入 sudo 群組。透過
ssh admin@<your-server-ip>以 admin 使用者身分登入伺服器。
日常操作應盡量避免使用 root 帳號,這樣可以減少誤操作導致的系統層級破壞風險。
安裝必備工具
在安裝 API 指令碼之前,需要檢查伺服器是否已經具備一系列基礎工具。這些工具可協助你進行系統管理、監控與故障排除:
curl:用於在命令列中檢測 API 是否可用。
make、cron:用於處理簡單的自動化工作。
ssh、rsync:用於連線其他機器與同步資料。
bat:以更易讀的格式顯示檔案內容。
tail:查看大型檔案的結尾內容。
which:在 PATH 中定位可執行程式的位置。
grep:在輸出結果和環境變數中進行搜尋。
ps aux、htop:監控正在執行的行程。
rg、fzf:在檔案中快速搜尋與定位內容。
提示:在繼續之前,一定要逐一確認這些工具已正確安裝。這一步能有效減少後續 API 指令碼安裝過程中的各種問題。
你也可以使用套件管理器自動化安裝與更新上述工具。這種方式可以讓你的 Linux 伺服器保持一致、可控且更加安全。
安裝完整 API 指令碼
下載安裝檔案
在安裝完整的 API 指令碼之前,你需要先下載相應的安裝檔案。首先找到該 API 指令碼的官方發佈來源,多數開發者都會提供指向最新版本的下載連結。你可以使用 curl 或 wget 從源站點下載檔案。在下載前務必確認來源的真實性。如果從非官方或不可信來源下載,你可能會安裝到惡意指令碼或過期版本。
你可以按以下步驟下載 API 指令碼:
造訪該 API 的官方發佈頁面。
在下載區域找到用於安裝的完整指令碼。
使用命令列下載該指令碼:
curl -O https://source.com/api/install.sh透過比對官方提供的雜湊值與本機檔案雜湊,檢查檔案完整性。
提示:始終從可信來源下載安裝檔案,可以有效保護伺服器免受安全威脅。下載前務必確認來源可靠。
你可能還需要額外下載一些支援檔案或相依元件。有些 API 指令碼會要求你同時下載設定檔或額外模組。閱讀官方文件以了解需要下載哪些附加內容。
使指令碼具有可執行權限
下載完整安裝指令碼後,下一步是為該指令碼賦予可執行權限。在 Linux 伺服器上,執行指令碼前必須先設定適當的檔案權限。可以使用 chmod 命令進行設定:
chmod +x install.sh
為指令碼新增可執行權限本身也存在一定安全風險,因此在設定權限前需要充分了解這些風險:
基於指令碼的惡意軟體往往能夠繞過傳統的安全防護工具(例如防毒軟體)。
這類攻擊日益增多,因為在文件、電子郵件或網站中嵌入指令碼非常容易。
說明:直譯式可執行檔模糊了傳統意義上「資料」和「程式碼」之間的界線,從而給希望嚴格控制可執行內容的組織帶來更多安全挑戰。
因此必須謹慎設定指令碼權限。只允許受信任的使用者執行該完整安裝指令碼,絕不要為來源不明的指令碼授權執行權限。
執行 install.sh 指令碼
現在你可以執行 install.sh 來安裝該 API 的完整指令碼。使用以下命令:
./install.sh
指令碼會自動設定 API,並從相應來源安裝所需相依性。在這個過程中你可能會遇到一些錯誤,常見問題包括:
缺少 Ansible 角色:community.mongodb.mongodb_repository。
執行 ansible-galaxy collection list 時出現 invalid choice 錯誤。
在 Ubuntu Focal 上與 Ansible 版本相關的問題。
安裝指令碼執行結束後未顯示存取 URL。
Docker 容器缺失或未執行。
權限不足導致「Permission denied」錯誤。
指令碼顯示安裝成功,但 Web 介面無法存取。
Docker 映像檔擷取失敗。
如果遇到錯誤,應檢查設定檔與權限設定,並參考官方文件中的疑難排解說明。你可能需要先補齊相依性或更新伺服器,再重新執行安裝完整指令碼的操作。
注意:透過官方來源執行 install.sh 可能需要你預先設定環境變數或安裝額外模組。務必閱讀官方提供的詳細設定說明。
設定環境變數
要確保 API 指令碼按預期運作,必須正確設定環境變數。環境變數用於控制指令碼與後端源系統的互動方式以及相關設定行為。你可以在目前 Shell 中暫時設定這些變數,或寫入到專用設定檔中。
下面的表格展示了 API 指令碼中常見的環境變數範例:
環境變數 | 說明 |
|---|---|
OUTPUT_DIR | 指令碼寫入 API 回應結果檔案的目標目錄。 |
API_KEY | 組織的 API Key ID。 |
API_SECRET | 組織的 API Key Secret。 |
你應根據實際來源與 API 要求來設定這些變數。例如,將 OUTPUT_DIR 設定到一個相對安全的目錄。將 API_KEY 和 API_SECRET 設定為你所在組織核發的金鑰資訊,切勿將這些敏感資訊洩露給不受信任的第三方。
可以透過 export 命令設定環境變數:
export OUTPUT_DIR=/var/api/output
export API_KEY=your_api_key
export API_SECRET=your_api_secret
根據不同來源和 API 的設計,你可能還需要設定額外的環境變數。務必查閱相應文件以獲得完整變數清單。
提示:合理設定環境變數能夠提升整體安全性與效能。在安裝完整 API 指令碼之前,請先認真核對所有設定。
同時,還需要為這些變數本身制定合適的存取權限。只有受信任的使用者才可以存取敏感設定資料。請將金鑰保存在安全位置,避免將其直接寫入公開設定檔。
你也可以將環境變數集中保存在一個 .env 檔案中,以便統一維護。許多 API 指令碼都支援從設定檔中載入環境變數,這種方式可以簡化設定流程,讓完整安裝指令碼的管理更有條理。
在安裝完整指令碼後,應重新檢視一次所有設定,並對 API 進行測試以確認其正常運作。如果出現錯誤,檢查來源設定與相關檔案內容,並根據 API 的實際要求進行修正。
注意:務必在執行 API 前就完成環境變數設定。錯誤或缺失的設定不僅會導致 API 故障,還有可能將敏感資料暴露給不可信的對象。
安裝 Domino REST API
檢查相依性
在安裝 Domino REST API 之前,你需要檢查系統是否已經具備所有必需相依性。缺失的檔案或函式庫會導致 API 啟動失敗,甚至完全無法執行。你應逐一檢查每一個函式庫檔及其目標路徑是否正確。下表列出了 Domino REST API 中最常見的相依性及其目標路徑:
相依名稱 | 目標路徑 |
|---|---|
concurrentlinkedhashmap-lru-1.4.2.jar | /opt/hcl/restapi/libs/concurrentlinkedhashmap-lru-1.4.2.jar |
jna-5.11.0.jar | /opt/hcl/restapi/libs/jna-5.11.0.jar |
domino-jnx-jna-1.15.1.jar | /opt/hcl/restapi/libs/domino-jnx-jna-1.15.1.jar |
domino-jnx-commons-1.15.1.jar | /opt/hcl/restapi/libs/domino-jnx-commons-1.15.1.jar |
jackson-datatype-jdk8-2.14.0-rc3.jar | /opt/hcl/restapi/libs/jackson-datatype-jdk8-2.14.0-rc3.jar |
jackson-databind-2.14.0-rc3.jar | /opt/hcl/restapi/libs/jackson-databind-2.14.0-rc3.jar |
jackson-annotations-2.14.0-rc3.jar | /opt/hcl/restapi/libs/jackson-annotations-2.14.0-rc3.jar |
jackson-core-2.14.0-rc3.jar | /opt/hcl/restapi/libs/jackson-core-2.14.0-rc3.jar |
commons-io-2.11.0.jar | /opt/hcl/restapi/libs/commons-io-2.11.0.jar |
domino-jnx-vertx-json-1.15.1.jar | /opt/hcl/restapi/libs/domino-jnx-vertx-json-1.15.1.jar |
domino-jnx-api-1.15.1.jar | /opt/hcl/restapi/libs/domino-jnx-api-1.15.1.jar |
libidvaultapi.so | /opt/hcl/domino/notes/latest/linux/libidvaultapi.so |
restapi | /opt/hcl/domino/notes/latest/linux/restapi |
libkeepevents.so | /opt/hcl/domino/notes/latest/linux/libkeepevents.so |
licence.txt | /opt/hcl/restapi/licence.txt |
notices.txt | /opt/hcl/restapi/notices.txt |
提示:在繼續下一步之前,請再次核對每一個檔案及路徑是否正確。這有助於避免安裝過程中的各種錯誤。
設定權限
合理的權限設定對於保障 API 及 HCL Domino 伺服器的安全至關重要。應依照下表所示為相關目錄和檔案設定擁有者與存取權限,以保護敏感資料,防止未經授權的變更。
目錄/檔案路徑 | 擁有者 | 存取權限 | 說明 |
|---|---|---|---|
/opt/hcl/domino | root | 755 | 適用於 /opt 下的目錄與檔案。 |
/opt/hcl/restapi | root | 755 | 適用於 /opt 下的目錄與檔案。 |
/local/notesdata(目錄) | notes | 770 | 目錄需要設定執行位(x)。 |
/local/notesdata(檔案) | notes | 660 | 一般檔案存取權限設定。 |
注意:不要將權限設定為 777,這會大幅增加 API 被攻擊的風險。
完成安裝
此時你已經準備好完成 Domino REST API 的安裝流程。按照以下步驟核實 Domino REST API 是否按預期運作:
分別執行
node -v、java -version與curl --version,確認系統中安裝了正確版本的相關工具。確保 Postman 已安裝並可以正常啟動且無錯誤。
在啟用 API 的前提下啟動 HCL Domino 伺服器。
如果是在本機環境安裝 API,可在瀏覽器中存取
http://localhost:8880進行測試。若為遠端伺服器,則使用 Domino REST API 對外提供的 Web 位址進行存取驗證。
如果你能夠看到歡迎頁面或成功送出測試請求並收到回應,說明安裝已經順利完成!🎉
在 Linux 上驗證並強化安裝
檢查 API 服務狀態
完成 API 安裝後,需要確認它已經在 Linux 伺服器上正常執行。可以先檢查對應服務的狀態,例如使用 systemctl status <api-service> 或 ps aux | grep api 查看行程是否處於活動狀態。如果是基於 Docker 部署,則可以透過 docker ps 列出正在執行的容器。此外,還應當查看關鍵日誌檔案,以儘早發現錯誤或警告訊息。常用的日誌路徑包括:/var/log/syslog 或 /var/log/messages(系統活動日誌)、/var/log/auth.log 或 /var/log/secure(驗證相關事件)、/var/log/dmesg(硬體與核心訊息)、/var/log/cron(排程工作日誌)等。這些日誌將協助你在問題早期及時介入。
提示:定期查看日誌檔案,可以在問題影響 API 或伺服器穩定運作之前就進行排查與修復。
測試 API 端點
你必須測試 API 端點,以確保在 Linux 環境中安裝的 API 能夠按預期運作。有多種工具可以協助你進行測試:
cURL:透過命令列送出 HTTP 請求。
Postman:提供圖形介面,便於建構和除錯請求。
HTTPie:命令列 HTTP 用戶端,對 JSON 互動支援友善。
Fiddler 與 Mitmproxy:可攔截並分析 HTTP 流量。
Swagger:用於文件化並互動式測試 API 端點。
Insomnia:支援複雜請求情境並可整合在工作流程中。
Hoppscotch、RapidAPI 與 ReadyAPI:提供更多線上或企業級測試選項。
嘗試向你的 API 送出請求並檢查回應結果。如果發現錯誤,請結合日誌與設定檔進行問題排查。對端點進行系統化測試,可以確保 Linux 伺服器回傳的資料正確無誤。
強化伺服器安全
強化 Linux 伺服器的安全防護能夠有效保護 API 免受各類攻擊。可以參考以下步驟對系統進行強化:
更新系統並及時安裝安全修補程式。使用
sudo apt update && sudo apt upgrade -y,保持系統處於受支援與修補狀態。移除不必要的軟體與服務。透過
sudo apt remove telnet ftp rsh -y移除不再使用的元件,減少攻擊面。部署基礎安全工具。啟用 UFW 等防火牆,並使用 Fail2ban 阻止暴力破解登入行為。
強化 SSH 存取。停用 root 直接登入、改用金鑰驗證、更改預設連接埠,並為 SSH 啟用 Fail2ban 規則。
注意:保持系統更新與設定合理的安全政策,是降低 API 與伺服器遭受攻擊風險的關鍵。
透過上述措施,可以讓你的安裝更加安全可靠。請持續監控 Linux 伺服器運作狀態,並適時更新 API,以維持長期穩定且安全的執行環境。
疑難排解
權限問題
在 Linux 伺服器上使用指令碼時,權限問題經常會阻礙操作的順利進行。你可能會遇到「Permission denied」或「bad interpreter」等錯誤訊息。這類問題往往與缺少執行權限、擁有者不相符或安全政策相關。下表彙總了常見權限問題、可能原因及解決方案:
錯誤訊息 | 可能原因 | 解決方法 |
|---|---|---|
Permission denied | 缺少執行權限位 | chmod +x script.sh |
Permission denied (noexec) | 檔案系統掛載帶有 noexec 限制 | 複製到 /tmp 或以可執行方式重新掛載 |
Permission denied (owner) | 擁有者設定不正確 | 使用 chown 或以檔案擁有者身分執行 |
Permission denied (SELinux) | SELinux 安全內容限制 | 使用 restorecon 或 chcon 修復內容 |
bad interpreter | Shebang 中直譯器路徑錯誤 | 修正直譯器路徑或使用 env 方式 |
bad interpreter: No such file | 指令碼使用了 CRLF(Windows)列結尾字元 | 使用 dos2unix script.sh 轉換列結尾字元 |
提示:在執行指令碼前,先檢查檔案權限與擁有者設定,可以避免安裝過程中大量常見錯誤。
相依問題
缺失或衝突的相依性會導致 API 在 Linux 伺服器上執行失敗。你需要檢查是否存在版本衝突或缺少的套件。可參考以下步驟進行排查:
使用
npm ls <package-name>尋找重複安裝或版本衝突的 NPM 套件。如果使用 Python,可執行
pip check檢查相依衝突。對於 Go 專案,可使用
go mod why -m <package>查看某模組被引入的原因。根據排查結果更新相依檔案以解決版本衝突。
定期進行安全弱點掃描,並紀錄相依更新與管理情況。
注意:保持相依函式庫的及時更新,有助於提升 Linux 伺服器的安全性與穩定性。
安裝失敗
有時安裝過程會在 Linux 伺服器上直接失敗,錯誤訊息可能涉及下載 URL 缺失、網路問題或不支援的作業系統版本。下表列出了部分常見安裝錯誤及涵義:
錯誤類型 | 描述 |
|---|---|
Error 1 | 安裝失敗!無法找到下載 URL。 |
Error 2 | 安裝失敗!由於網路問題或權限不足導致下載錯誤。 |
Error 4 | 安裝失敗!由於無寫入權限,無法建立安裝目錄。 |
Error 10 | 安裝失敗!無法識別 Linux 發行版,請檢查是否為受支援系統。 |
Error 11 | 安裝失敗!目前作業系統不受支援。 |
Error 12 | 安裝失敗!偵測到另一個安裝行程正在執行。 |
Error 19 | 安裝失敗!由於存取限制,無法找到設定檔。 |
Error 75 | 安裝失敗!套件管理器出現問題。 |
Error 77 | 安裝失敗!目前的掃描型別設定不被允許。 |
如果遇到上述任一錯誤,請先檢查網路連通性,確認 Linux 發行版是否受到支援,並確保自己具備所需權限。僅在問題修復之後,再重新嘗試安裝。謹慎的疑難排解可以確保伺服器長時間穩定運作。
現在,你已經了解如何在全新伺服器上安裝完整 API 指令碼。請務必在安裝完成後,持續檢查伺服器上 API 的執行狀態,並確保整體環境的安全性。定期更新系統與相依性,並經常查看日誌。遵循最佳實務來維護你的 API 與伺服器。如果遇到問題,可以參考本文中的疑難排解章節或常見問題(FAQ)取得協助。
FAQ
如何判斷 API 是否安裝成功?
你可以使用 systemctl status 檢查服務狀態,或者向 API 送出測試請求。如果收到預期的成功回應,則說明 API 已經正常運作。建議同時查看日誌檔案,以排除隱藏的錯誤或警告。
出現「Permission denied」錯誤時該怎麼辦?
首先使用 ls -l 檢查指令碼權限。若缺少執行權限,可透過 chmod +x 新增。確保你以正確的使用者身分執行指令碼,除非確有必要,否則不要直接使用 root 帳號執行。
是否可以在任意 Linux 發行版上安裝該 API?
多數 API 都支援主流發行版,如 Ubuntu、Debian 或 CentOS。但在安裝前必須先閱讀官方文件,因為某些 API 可能不支援較舊或較少見的系統版本。
安裝完成後如何保障 API 與伺服器的安全?
保持系統與相依性定期更新,移除無用軟體,設定防火牆並使用強密碼,限制 SSH 存取範圍,持續監控日誌是否有異常。這些措施都有助於保護伺服器與 API 的安全。

