文章詳情

Azure帳號安全認證 香港伺服器搭建環境配置教學:一鍵安裝LNMP(Linux+Nginx+MySQL+PHP)

微軟雲Azure2026-09-01 17:30:31谷歌雲優惠充值

第一章:為什麼要在香港伺服器上搭建 LNMP

很多人把伺服器部署想得太複雜:要先想防火牆、再考慮路由、還要研究 Nginx 參數、最後才碰到資料庫與 PHP。其實,搭建 LNMP 的核心目標很單純——讓一台 Linux 機器能穩定地提供網站服務,並支援 PHP 動態頁。

選擇香港伺服器,主要考量是訪問延遲與合規成本。對面向港澳與華語用戶的站點來說,本地或區域網路通常能帶來更好的體驗。當然,延遲不是唯一因素,但它會在你剛上線、還沒做快取優化時特別明顯。

LNMP 是一套經典組合:Linux 作為作業系統底座,Nginx 作為高效的 Web 服務器,MySQL 作為關聯式資料庫,PHP 作為動態語言。用「一鍵安裝」的方式,你可以跳過大量繁瑣的安裝步驟,把時間留給更重要的配置:安全、效能與可維護性。

LNMP 的工作流程,你要先想清楚

當瀏覽器請求某個 URL 時:

1)Nginx 接收連線,負責靜態內容(圖片、CSS、JS)直接回應,或把 PHP 請求轉交給 PHP-FPM。

2)PHP-FPM 以快而穩的方式處理 PHP 程式,必要時再連 MySQL 查資料。

3)MySQL 專注資料讀寫,提供給 PHP 使用。

理解這個鏈條,你就能定位問題:是 Nginx 轉發出錯?PHP-FPM 沒啟動?還是資料庫連線權限不對?這比背一堆指令更重要。

第二章:部署前的準備清單(別跳過)

一鍵安裝能讓事情快,但「前置條件」仍然要確保正確。否則你會遇到:安裝完成卻無法訪問、PHP 解析失敗、資料庫不安全或無法遠程連線。

1. 伺服器與系統

通常你會使用 VPS 或雲主機。建議選擇常見的 Linux 發行版,如 Ubuntu、Debian 或 CentOS 系列。不同系統在軟件包管理與路徑上可能略有差異,但 LNMP 的概念一致。

安裝前確認:

  • 系統版本穩定、更新到相對新的內核(不必最新到追求風險)。
  • 具備 sudo 權限或可用 root 登入。
  • 防火牆策略清晰(至少 80/443、以及 SSH 端口需要通)。

2. 網路與 DNS

你至少要確定:

  • 伺服器的公網 IP。
  • 域名解析是否指向該 IP。
  • 若你準備 HTTPS,需要有效的證書策略(可用自動簽發或手動)。

如果你的網站只是測試,也可以先用 IP 訪問,後續再配置域名與 HTTPS。

3. 安全的基本姿勢

一鍵安裝通常不會為你的業務安全「定製」。因此你要做幾件基本事:

  • 修改預設的 SSH 端口(可選,但建議)。
  • 禁用 root 的直接遠端登錄(如果你有管理習慣)。
  • 限制 MySQL 的外網訪問(大多數情境下不需要對外開放)。
  • Azure帳號安全認證 為 Nginx 與 MySQL 設定合理的帳號與權限。

Azure帳號安全認證 第三章:一鍵安裝 LNMP 的核心思路(你要會看,不只是跑)

所謂「一鍵安裝」,通常是某個腳本或面板提供的自動化流程:它會下載安裝所需的軟件包,配置 Nginx 虛擬主機、啟動 PHP-FPM,並初始化 MySQL(或建立資料庫與用戶)。

你要做的不是盲跑,而是至少掌握安裝腳本在做什麼:

  • 安裝路徑:Nginx、PHP、PHP-FPM、PHP 擴展安裝到哪。
  • 服務啟動方式:systemd 服務還是手動啟動。
  • 配置檔位置:nginx.conf、站點配置檔、php.ini。
  • 資料庫初始策略:root 密碼、是否允許遠端連線、是否建立示例資料庫。

你該準備的操作步驟(概念版)

以下用「概念版」描述,讓你把流程對上:你實際執行時,請依你使用的一鍵安裝工具或腳本的提示填入參數。

1)登入伺服器。

2)更新系統套件(可選但建議)。

3)下載或上傳一鍵安裝腳本。

4)確認執行權限,執行安裝。

5)在安裝過程中設定:域名或站點名稱、MySQL root 密碼、PHP 版本或擴展。

6)安裝完成後,檢查服務是否啟動:Nginx、PHP-FPM、MySQL。

7)用瀏覽器或命令行測試:靜態頁、PHP 測試頁、資料庫連線。

第四章:開始部署——從安裝到可訪問網站

步驟 1:安裝完成後先檢查服務狀態

一鍵安裝完成後,你不要急著上傳網站,而是先驗證「三件事」:Nginx 在不在、PHP-FPM 在不在、MySQL 在不在。

常見狀況是:腳本顯示安裝成功,但某些服務因為端口衝突或配置錯誤沒有真正啟動。這時候你會看到連線被拒絕或 502/504。

檢查方向:

  • Nginx 是否監聽 80/443。
  • PHP-FPM 監聽的是 socket 還是 TCP 端口,Nginx 是否正確指向。
  • Azure帳號安全認證 MySQL 是否在本機可連線,且 root 密碼可用。

Azure帳號安全認證 步驟 2:Nginx 站點目錄與基本頁面

Nginx 的站點目錄通常在 /var/www 或 /usr/share/nginx/html 之類位置。你可以把一個簡單的 index.html 放進去測試。

當你訪問 http://你的IP 或 http://你的網域:

  • 如果能顯示 index.html,代表 Nginx 的站點配置與權限大致正常。
  • 如果連靜態都不顯示,先不要處理 PHP,回頭看 Nginx 設定與防火牆。

步驟 3:PHP 測試頁,確認 Nginx 解析 PHP

建立一個簡單的測試檔,例如放在站點目錄下的 phpinfo.php,內容是 。你訪問該頁面,如果能看到 PHP 版本與配置資訊,代表 PHP-FPM 與 Nginx 轉發是正常的。

若出現以下情況:

  • 404:多半是檔案放錯目錄或站點根目錄配置不對。
  • 502 Bad Gateway:常見是 PHP-FPM 服務未啟動或 Nginx 的 upstream 指向錯誤。
  • 解析成下載或顯示 PHP 原始碼:Nginx 未正確設置 location ~ \.php$ 的處理規則。

你可以依照錯誤快速定位:502 優先查 PHP-FPM;解析錯誤優先查 Nginx 的 location。

第五章:配置 MySQL——安全、權限與常見坑

MySQL 是很多線上故障的根源之一:不是資料庫本身壞,而是權限、連線方式、字符集與配置沒有規範好。

1. 設定 root 密碼與避免不必要的遠端連線

若你不需要讓外部(非伺服器內部)直接連 MySQL,應該避免把 MySQL 端口對外開放。即使你開了,也要限制來源 IP,並考慮防火牆策略。

更好的做法是:Web 服務只在本機或內網連 MySQL;外部管理透過安全通道(例如堡壘機、VPN、或 SSH 隧道)。

2. 建立業務帳號,不要所有應用都用 root

如果你的網站是某個 CMS 或自研系統,應該為它建立獨立的資料庫與資料庫帳號。

Azure帳號安全認證 理由很實際:

  • 權限可控:即使某個程式有 SQL 注入漏洞,破壞範圍也被縮小。
  • 可追溯:你能知道是哪個應用產生了哪些查詢。
  • 方便維護:重置某個應用的密碼不影響其他系統。

3. 字符集與排序規則別亂來

中文站很常遇到亂碼或排序不一致。根本原因通常是資料庫或連線的字符集設定不一致。

你需要確保至少符合:

  • Azure帳號安全認證 資料庫使用 utf8mb4(如果你的 MySQL 版本支援)。
  • 連線字元集與校對(collation)一致。
  • PHP 的資料庫連線也使用同樣的字符集。

這一塊通常不是「裝好就好」,而是「一開始就設正確」。後期修正會更痛。

第六章:PHP-FPM 與常用性能調校

只要能跑起來就行?不,當訪問量上來、或你開始接入較重的業務(例如檔案上傳、複雜查詢),你會發現性能調校的重要。

1. 設定 PHP 版本與擴展

一鍵安裝通常允許你選擇 PHP 版本,或安裝常見擴展(如 mysqli、pdo、curl、gd)。你應該根據應用需求確認擴展是否齊全。

常見缺失帶來的現象:

  • 應用提示缺 curl 或 gd:圖像處理或外部 API 呼叫失敗。
  • 使用 PDO 相關功能卻沒有 pdo_mysql:資料庫存取失效。
  • 上傳圖片失敗但不明原因:gd 或相關權限不對。

2. PHP-FPM 的核心參數:pm、max_children、memory

PHP-FPM 的配置直接影響並發能力與資源占用。你不一定要理解每個參數,但你要知道調的方向:

  • max_children 太小:高峰會排隊,回應變慢。
  • max_children 太大:佔用記憶體,導致系統不穩或 OOM。
  • pm.max_requests:能避免長時間運行導致的記憶體碎片或偶發問題。

建議你先用系統資源做估算:例如伺服器內存是 2GB、4GB 或 8GB。然後從保守值開始,觀察後再調。

3. Nginx 與 PHP 的協作:避免 502/504

如果你看到:

  • 502:多半是 PHP-FPM 沒起來或過載導致 upstream 錯誤。
  • 504:通常是請求超時,PHP 處理時間超出設置。

你可以優先檢查 PHP-FPM 的狀態與日誌,確認是否有「進程耗盡」或「連線超時」。同時也要看 Nginx 的 fastcgi_* 超時設定。

第七章:導入域名、HTTPS 與基本安全加固

當網站可以用 IP 訪問後,你就該把域名與 HTTPS 接上,這對信任與 SEO 都很重要。

1. Nginx 配置域名與虛擬主機

準備一個 server block,填入你的 server_name 與根目錄。確保:

  • 80 端口用於重定向到 443(若你啟用 HTTPS)。
  • 443 端口使用你的憑證文件。
  • location 設置正確處理 .php。

Azure帳號安全認證 2. HTTPS:憑證自動簽發或手動部署

一鍵安裝工具可能包含證書腳本或整合能力。你需要確保:

  • DNS 記錄正確指向伺服器。
  • 開放 80 或使用正確的驗證方式。
  • 憑證更新策略可用(到期可自動更新)。

如果你只想先測試,可先不開 HTTPS。等流程穩定後再補上。

3. 基本安全:限制不該被公開的路徑

Azure帳號安全認證 常見被掃描的目標包括:

  • 後台登入頁(若你有管理系統)。
  • 上傳目錄(可能包含殘留的測試文件)。
  • .env、.git 等敏感檔。

你可以用 Nginx 或應用層規則拒絕不必要的訪問,並確保目錄權限符合最低原則。

第八章:上線前的驗證清單(把問題在上線前消掉)

很多人上線後才修,因為先前沒有做「硬性驗證」。建議你用以下清單逐項勾選。

1. Web 層

  • 訪問根目錄(靜態頁)正常顯示。
  • 訪問 php 測試頁顯示正確。
  • 應用首頁、登入、上傳等關鍵功能可用。

2. 程式與資料庫層

  • 應用可連線 MySQL,且使用正確資料庫名與帳號。
  • 字符集不導致中文亂碼。
  • 能正常執行寫入(至少一次插入/更新)。

3. 性能與穩定性

  • 並發訪問不會大量出現 502/504。
  • 日誌沒有持續報錯(Nginx error log、PHP-FPM log、MySQL log)。
  • 系統資源在正常範圍內(CPU/內存不會常駐飆高)。

第九章:常見錯誤排查(你真正會用到)

遇到問題時,你要有一套排查順序。否則每次都從頭猜,效率會很差。

情況一:網站連不上(timeout / connection refused)

優先查:

  • 防火牆是否允許 80/443(以及 SSH 端口)。
  • Nginx 是否啟動、是否監聽正確端口。
  • 雲端安全組策略是否放行。

情況二:502 Bad Gateway

優先查:

  • PHP-FPM 是否啟動。
  • Nginx upstream 與 PHP-FPM 監聽地址是否一致(socket 或 IP:port)。
  • PHP-FPM 是否因配置錯誤或資源耗盡而重啟失敗。

你可以快速用日誌縮小範圍:Nginx error log 通常會告訴你 upstream 失敗原因。

情況三:404(PHP 路徑存在但顯示找不到)

優先查:

  • php 檔是否放在正確站點目錄。
  • root/alias 是否設定正確。
  • Azure帳號安全認證 location 規則是否被覆蓋或寫錯。

情況四:PHP 下載下來或顯示原始碼

優先查:

  • Nginx 的 location ~ \.php$ 是否存在且指向 fastcgi_pass。
  • fastcgi_param SCRIPT_FILENAME 是否正確拼接。

情況五:資料庫連線失敗或報錯

優先查:

  • 應用配置的資料庫主機名(通常應該是 127.0.0.1 或 localhost)。
  • 資料庫帳號與密碼是否正確。
  • MySQL 權限是否允許該帳號對指定資料庫的操作。
  • Azure帳號安全認證 字符集與連線選項是否符合預期。

第十章:日常運維與升級建議(讓它長久穩)

LNMP 不是「裝一次就永遠不碰」。你需要保持基本運維節奏,才能讓站點在一年後仍然穩定。

1. 定期更新與重啟策略

定期更新系統安全補丁、Nginx、PHP、MySQL。更新後最好重啟或重新載入服務,避免使用老版本的漏洞。

2. 監控:不要等到爆炸才看

你至少要關注:

  • CPU、內存、磁碟使用率。
  • 網路流量與連線數。
  • Nginx error log 與 PHP-FPM 異常重啟。
  • MySQL 慢查詢與錯誤。

3. 備份:可恢復才算備份

備份不只要「有檔」,還要能「恢復」。建議做:

  • 資料庫定期匯出或物理備份。
  • 站點程式與上傳檔案版本化或同步備份。
  • 定期測試還原流程。

Azure帳號安全認證 結語:把一鍵安裝當作起點,而不是終點

一鍵安裝 LNMP 的價值,是讓你在較短時間內完成可用環境:Nginx 能回應、PHP 能跑、MySQL 能存取。真正拉開差距的,是你在安裝後做的配置與驗證:安全策略、字符集一致性、日誌監控、以及對常見錯誤的排查順序。

當你下一次要部署新站,你會發現流程變得很快:你不再從零猜,而是按檢查清單逐步確認。這才是「工程化」的體感:穩、快、可維護。

如果你願意,我也可以根據你的伺服器系統版本(Ubuntu/Debian/CentOS)、預計網站類型(WordPress、Laravel、自研 PHP 程式)與是否需要 HTTPS,幫你把配置項目列成更貼近實際的部署清單。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系