阿里雲香港 VM 搭建 LNMP 環境與 PHP 網站遷移實作指南

2026-03-21 By 天上雲 0

以下是針對三項服務內容(雲主機建立、LNMP環境部署、PHP網站遷移)的詳細操作步驟與設定方法,並附上阿里雲官方支援的獲取方式。


一、雲端主機規劃與建立(阿里雲香港 VM)

1.1 註冊與實名認證

  • 前往阿里雲官網註冊帳號,完成實名認證(企業或個人皆可)。
  • 建議由客戶自行註冊並將你加入為 RAM 子帳號或提供操作權限,以便日後移交。

1.2 選擇香港區域並建立 ECS 執行個體

  1. 登入阿里雲控制台,在左上角「產品與服務」中選擇 雲伺服器 ECS
  2. 點擊「建立執行個體」,依序設定以下項目:
  • 計費方式:依客戶需求選擇「隨用隨付」或「包年包月」。
  • 地區與可用區:選擇 中國香港(cn-hongkong),可用區任選(如 cn-hongkong-b / c / d),一般選隨機或可用區B/C即可。
  • 執行個體規格:建議 4核8G(例如 ecs.g6.xlarge 或 ecs.c6.xlarge 系列)。
  • 鏡像(作業系統):選擇 Linux 發行版,建議 Alibaba Cloud Linux 3CentOS 7/8Ubuntu 22.04(後續 LNMP 環境搭建較順暢)。
  • 儲存:系統碟建議 40~100 GB 高效雲端碟或 SSD,依兩套程式資料量決定。
  • 網路:選擇 VPC 專有網路,並勾選「分配公網 IPv4 地址」,以便後續 SSH 登入與網站訪問。
  • 安全群組:新建或選擇現有安全群組,並先開放必要的入方向規則(見下一節)。
  1. 確認配置後下單支付(雲端主機費用由客戶另行支付)。

1.3 設定安全群組(防火牆)

安全群組是阿里雲的第一層虛擬防火牆,必須正確設定才能讓外網存取。

  1. 在 ECS 控制台左側找到「網路與安全」→「安全群組」,點選你 VM 所屬的安全群組。
  2. 進入「入方向」規則,點選「手動添加」,至少加入以下規則:
連接埠用途授權對象(來源)建議限制
22SSH 遠端管理你的辦公室IP 或 跳板機IP禁止 0.0.0.0/0,避免暴力破解
80HTTP 網頁訪問0.0.0.0/0必要,對全網開放
443HTTPS 網頁訪問(若有)0.0.0.0/0必要,對全網開放

安全提醒:22 連接埠切勿開放給 0.0.0.0/0,應僅開放給自己的固定公網IP。

1.4 連線至 VM 進行後續設定

  • 建立完成後,在 ECS 執行個體列表取得 公網 IP
  • 使用 SSH 工具(如終端機、Putty、Xshell)連線:
  ssh root@<你的公網IP>
  • 初始密碼若未設定,可透過阿里雲控制台「遠端連線」→「Workbench」登入後修改 root 密碼。

二、PHP 運行環境部署(LNMP)

此處以 Alibaba Cloud Linux 3 / CentOS 7/8 為例,Ubuntu 差異可參考官方文檔。

2.1 更新系統

# Alibaba Cloud Linux 3 / CentOS 8
sudo dnf update -y

# CentOS 7
sudo yum update -y

2.2 安裝 Nginx

# 添加 Nginx 官方源(以 CentOS 7 為例)
sudo tee /etc/yum.repos.d/nginx.repo <<-'EOF'

[nginx-stable]

name=nginx stable repo baseurl=https://nginx.org/packages/centos/7/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key EOF # 安裝 Nginx sudo yum install -y nginx # 啟動並設定開機自啟 sudo systemctl enable –now nginx

2.3 安裝 MySQL

# 添加 MySQL 8.4 官方源
sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpm

# 安裝 MySQL 服務
sudo yum install -y mysql-server

# 啟動並設為開機自啟
sudo systemctl enable --now mysqld

# 取得 MySQL 初始 root 密碼
sudo grep 'temporary password' /var/log/mysqld.log

# 執行安全設定(設定新密碼、移除匿名帳號、禁止 root 遠端登入等)
sudo mysql_secure_installation

若使用 Ubuntu,可直接 sudo apt install -y mysql-server,且預設無初始密碼。

2.4 安裝 PHP 及必要擴充

以 PHP 8.2 為例(若客戶舊程式需特定版本,請調整):

# 安裝 Remi 源並啟用 PHP 8.2
sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install -y yum-utils
sudo yum-config-manager --enable remi-php82

# 安裝 PHP、PHP-FPM 及 MySQL 擴充
sudo yum install -y php php-fpm php-mysqlnd

# 啟動 PHP-FPM 並設開機自啟
sudo systemctl enable --now php-fpm

若使用 Ubuntu,可用 add-apt-repository ppa:ondrej/php 安裝對應版本。

2.5 配置 Nginx 支援 PHP

  1. 備份預設配置檔:
   sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
  1. 編輯 /etc/nginx/conf.d/default.conf,修改 server 區塊如下:
   server {
       listen       80;
       server_name  _;   # 暫時用底線,後續再綁定域名
       root         /usr/share/nginx/html;  # 網站根目錄,可改為你的路徑

       index index.php index.html index.htm;

       location / {
           try_files $uri $uri/ /index.php?$args;
       }

       location ~ \.php$ {
           fastcgi_pass   127.0.0.1:9000;   # 若使用 socket 則為 unix:/run/php-fpm/www.sock
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           include        fastcgi_params;
       }
   }
  1. 測試並重新載入 Nginx:
   sudo nginx -t
   sudo systemctl reload nginx
  1. 建立測試 PHP 檔案確認環境:
   echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/info.php

在瀏覽器訪問 http://你的IP/info.php,出現 PHP 資訊頁即代表 LNMP 環境成功。

2.6 針對兩套 PHP 程式的環境優化

  • 根據程式需求安裝額外 PHP 擴充(如 php-gdphp-mbstringphp-zip 等):
  sudo yum install -y php-gd php-mbstring php-zip
  sudo systemctl restart php-fpm
  • 調整 PHP-FPM 的 pm.max_children 等參數(視記憶體大小而定),可優化並發效能。
  • 若兩套程式使用不同資料庫,需建立對應的 MySQL 資料庫與帳號。

三、PHP 網站完整遷移的方法

3.1 程式檔案遷移

  1. 從舊伺服器打包下載
   # 假設舊伺服器為 Linux,SSH 連入後執行
   tar -czvf website1.tar.gz /path/to/website1

使用 scprsync 傳送至新 VM:

   scp website1.tar.gz root@<新VM IP>:/tmp/
  1. 在新 VM 上解壓至正確目錄(例如 /var/www/html/website1):
   mkdir -p /var/www/html/website1
   tar -xzvf /tmp/website1.tar.gz -C /var/www/html/website1
  1. 設定目錄權限(以 Nginx 使用者為準,通常為 nginxwww-data):
   chown -R nginx:nginx /var/www/html/website1

3.2 資料庫搬遷

  1. 在舊伺服器匯出資料庫
   mysqldump -u root -p --all-databases > all_databases.sql

或只匯出特定兩個資料庫:mysqldump -u root -p db1 db2 > dbs.sql

  1. 將 SQL 檔案傳至新 VM
   scp all_databases.sql root@<新VM IP>:/tmp/
  1. 在新 VM 匯入資料庫
   mysql -u root -p < /tmp/all_databases.sql
  1. 建立資料庫專用帳號(若兩程式分開)並授權。

3.3 設定檔修改(重點)

  1. 資料庫連線資訊:找到兩個程式的設定檔(如 .envconfig.php),將資料庫主機、帳號、密碼改為新 VM 上的資訊。
  • 若使用 RDS 等外部資料庫,請參考內網 DNS 方式避免修改程式碼。
  1. 檔案路徑調整:若舊伺服器路徑與新 VM 不同,需一併修改設定檔中的絕對路徑。
  2. Nginx 虛擬主機配置:若兩套程式使用不同域名,需分別建立 .conf 檔並設定正確的 server_nameroot

3.4 域名綁定

  1. 將客戶的域名 DNS 解析指向新 VM 的公網 IP(A 記錄)。
  2. 若需 HTTPS,可申請阿里雲免費 SSL 憑證(或使用 Let’s Encrypt),並在 Nginx 設定 443 埠監聽。

3.5 最終功能測試

  • 分別訪問兩個網站的前後台,測試登入、表單提交、資料庫讀寫等核心功能。
  • 檢查 PHP 錯誤日誌與 Nginx 錯誤日誌,排除遺漏的擴充或路徑問題。
  • 測試完畢後刪除 info.php 測試檔,避免資訊洩漏。

四、獲得阿里雲技術支援的方式

若在操作過程中遇到雲平台層面的問題,可透過以下方式取得官方支援:

支援管道說明
阿里雲官方文檔ECS 產品文檔LNMP 部署文檔
工單系統登入控制台 → 右上角「工單」→「提交工單」,選擇「技術支援」類別,可針對 ECS、安全群組等問題提問
售後服務若客戶購買了阿里雲商業支援計劃(如企業級支援),可享有專屬技術經理與更快速的回應
線上客服控制台右下角「耳機」圖示,可連線至線上客服(一般問題適用)

注意:阿里雲官方技術支援 不包含 作業系統內部的 LNMP 環境配置與應用程式遷移細節,這些屬於你的專業服務範疇。如遇到 Linux 系統或 PHP 程式本身的問題,需自行排解或另尋專業人士。


以上為從零到完成遷移的完整操作流程。實作時建議先在測試環境演練一次,確保 PHP 程式與新環境完全相容後,再排定正式切換時間。也可以參考以下視頻了解畫面的實際操作。

書籤 (0)
請登入後才能加入書籤 關閉
計數器 (分享 | 讚好 | 推薦)
Spread the love (分享 傳播愛)