網站流量爬升、後台一到尖峰就轉圈圈、外掛裝多一點就跳出記憶體不足,這些訊號通常代表共享主機已經到頂。共享主機升級 VPS 是多數 WordPress 與 WooCommerce 站台成長到一定規模後的下一步,但它跟「換一家共享主機」完全是兩回事:你拿到的是一台需要自己設定的伺服器,搬移流程與後續維護的責任都跟著改變。
很多人卡住的點不是搬不動檔案,而是搬過去之後白畫面、資料庫連不上、內頁一點就跳回舊站、信件突然收不到。這篇會把整段流程走一次,從判斷該不該升級、共享主機與 VPS 的設定差異、檔案與資料庫怎麼搬、wp-config 怎麼改,到 DNS 怎麼切才能把停機壓到最低,並補上多數教學跳過的郵件與 SSL 收尾。
什麼情況該把網站從共享主機升級到 VPS
當共享主機的資源限制開始拖累網站,就是評估升級的時間點。共享主機把一台實體伺服器切給很多人共用,CPU、記憶體、流量都是大家分,鄰居網站一爆量你也跟著慢,這在技術上叫做「吵鬧鄰居」效應。
具體的升級訊號通常是這幾種:尖峰時段頁面載入明顯變慢或出現 504、後台儲存文章卡很久、安裝外掛時跳出 PHP 記憶體不足、主機商寄信通知你 CPU 或 inode 用量超標、或是商城訂單量成長到需要更穩定的結帳體驗。
VPS(虛擬專屬主機)用虛擬化技術把實體伺服器切成多個獨立分割區,每個分割區有自己保留的 CPU 與記憶體,不跟別人搶。你還會拿到 root 最高權限,可以自己選作業系統、裝軟體、調參數。對成長中的網站來說,這是介於共享主機與整台實體主機之間、相對划算的選擇。
要先想清楚的一件事是 VPS 分成代管(managed)與自管(unmanaged)。代管型由主機商幫你處理伺服器設定與安全更新,價格較高但省心;自管型把伺服器完全交給你,便宜但你得具備基本的指令列與 Linux 操作能力。沒有把握自己維護,就優先選代管型或附控制台的方案。
共享主機與 VPS 的核心設定差異
最大的差異是責任歸屬:共享主機商幫你打理好的一切,到 VPS 大多變成你自己要設定與維護。這也是搬家後最容易出狀況的地方,不是搬移本身,而是搬過去之後沒人幫你顧。
下表整理出搬移前後最該留意的責任轉移:
| 項目 | 共享主機 | VPS |
|---|---|---|
| 管理權限 | 只能用控制台,沒有 root | 有 root 最高權限,可裝軟體、改系統 |
| Web 伺服器與 PHP | 主機商已裝好、版本固定 | 自己安裝 Nginx 或 Apache、自己選 PHP 版本 |
| 資料庫 | 控制台一鍵建立 | 自己安裝 MariaDB 或 MySQL、自己建帳號 |
| SSL 憑證 | 多半自動簽發與續期 | 自己用 Let’s Encrypt 簽、自己排程續期 |
| 安全更新 | 主機商負責 | 自己更新系統與套件、自己設防火牆 |
| 備份 | 多半內建排程 | 自己設定備份機制 |
| 郵件 | 通常內建郵件服務 | 預設沒有,要自建或改用外部郵件 |
看懂這張表,就會理解為什麼搬到 VPS 不能只想「把網站搬過去」,而要連帶把這些原本隱形的服務一併規劃。尤其是 SSL、備份與郵件這三項,是搬完之後最常被忘記、卻直接影響使用者的環節。
選擇 VPS 方案時,可以挑附控制台的版本,例如 Virtualmin、cPanel 或 CyberPanel。控制台會把建站、建資料庫、簽 SSL 這些原本要打指令的工作變回點選操作,對剛從共享主機過來、還不熟指令列的人是很實際的緩衝。
搬移前要先準備與盤點的項目
動手搬之前先盤點清楚,能省下大半的除錯時間。網站搬遷最大的麻煩往往來自對舊環境不夠了解,等搬過去才發現少了某個元件。
搬移前要確認的幾件事:
- 環境版本對齊:記下舊主機的 PHP 版本、資料庫版本(MySQL 還是 MariaDB、版號多少)、Web 伺服器類型。新 VPS 的環境要對齊或相容,版本差太多容易出現語法不支援或白畫面。
- 盤點要搬的內容:網站檔案(程式碼、佈景、外掛、媒體)、資料庫、郵件帳號與信件。從控制台的磁碟用量可以看出你實際用到哪些服務。
- 完整備份:搬移前先把網站檔案與資料庫各做一份完整備份。WordPress 站可以用 UpdraftPlus 這類外掛,或直接從控制台下載檔案壓縮檔與資料庫匯出檔。
- 記下資料庫連線資訊:舊站的資料庫名稱、使用者、密碼先抄下來,等等比對用。
- 預先調降 DNS 的 TTL:這一步多數人會漏。在正式搬家前 24 到 48 小時,先到網域代管商把 A 紀錄的 TTL 調到 300 秒。TTL 決定各地 DNS 快取多久才更新,事先調低,正式切換時生效就快得多,斷線空窗也小。
備份完成後,最好確認壓縮檔裡確實包含所有外掛、佈景與設定檔。少了任何一塊,搬到 VPS 後都可能變成缺檔或功能失靈。
把網站檔案與資料庫搬到 VPS 的實際步驟
核心就兩件事:把檔案搬過去、把資料庫匯進去。流程在 WordPress 與一般 PHP 網站幾乎一樣,差別只在連線方式與指令熟悉度。
第一步、在 VPS 上建好目標環境。選好作業系統範本(常見是 Ubuntu、Debian、AlmaLinux),如果用附控制台的方案,透過 Virtualmin 或 cPanel 建立一個對應你網域的虛擬主機,它會自動產生網站目錄與一組資料庫。同時把 Nginx 或 Apache、PHP、MariaDB 這套環境裝齊。
第二步、把網站檔案傳上去。熟悉指令的人可以用 SSH 連進 VPS,再用 wget 把舊主機備份檔的下載連結直接抓到伺服器上,比先下載到自己電腦再上傳快很多。抓下來後解壓縮:
tar -xvf backup-file-name.tar.gz
不熟指令的話,用 FileZilla 這類 FTP 軟體把檔案上傳到網站目錄也可以,只是 FTP 只能傳檔,不能執行伺服器指令。檔案就定位後,要把擁有者改成控制台建立的使用者,否則伺服器讀不到、網站會報錯:
chown 使用者:使用者 -R *
第三步、匯入資料庫。先把舊站匯出的 .sql 檔傳到 VPS(一樣可用 wget),壓縮的先解開,再匯入新建好的資料庫:
mysql -u 使用者 -p 資料庫名稱 < backup-file-name.sql
系統會要你輸入資料庫密碼。資料庫大小決定匯入時間,文章或商品上萬筆的大站可能要跑上幾分鐘到幾十分鐘。匯入過程要留意錯誤訊息,最常見的是字元編碼或資料表衝突;編碼問題多半是 UTF8 與 UTF8MB4 不一致造成,匯入前先確認兩邊編碼一致能省很多事。
VPS 上的環境設定與 wp-config.php 調整
檔案與資料庫到位後,網站還連不起來,因為它還在用舊主機的資料庫連線資訊。WordPress 站如果出現「Error establishing a database connection」,幾乎都是這個原因。
打開網站根目錄的 wp-config.php,把這幾個值改成你在 VPS 上新建的資料庫資訊:
- DB_NAME:新資料庫名稱
- DB_USER:新資料庫使用者
- DB_PASSWORD:新資料庫密碼
- DB_HOST:因為資料庫跟網站在同一台 VPS,填 localhost 即可
四個值只要有一個字打錯,網站就讀不到資料。改完存檔,前台重新整理通常就會起來。
如果這時想在 DNS 還沒切換前先確認新站正不正常,可以改自己電腦的 hosts 檔,把網域強制指到 VPS 的 IP,這樣只有你這台電腦連到新站,其他訪客還是看舊站。要注意一個常見的坑:WordPress 會把網站網址寫進資料庫的 wp_options,用 hosts 預覽時首頁多半正常,但點內頁可能跳回舊主機。所以 hosts 預覽只適合確認首頁能不能跑、版面有沒有壞,完整功能測試還是等 DNS 切過去再做。
除了連線設定,VPS 還有幾項在共享主機時代不用管、現在要自己顧的環境工作:設定防火牆只開必要的連接埠、調整 PHP-FPM 與 Nginx 的記憶體與上傳上限、安裝系統與套件的安全更新、以及排定自動備份。這些不是搬移當下的必要動作,但搬完一週內最好逐項補齊,否則等於把一台沒上鎖的伺服器放在網路上。
DNS 切換與降低停機時間的做法
DNS 切換是整段流程裡最關鍵、也最能決定會不會中斷的一步。做法是到網域代管商的 DNS 設定,把 A 紀錄從舊主機的 IP 改成 VPS 的 IP。
關鍵在於切換的「順序」與「保留舊站」。正確節奏是這樣:
- 第一、搬移前 24 到 48 小時就先把 TTL 調到 300 秒(前面準備階段已經做過)。
- 第二、在 VPS 上把網站完整測過一輪沒問題,再去改 A 紀錄。
- 第三、改完 A 紀錄後,舊主機先別關。DNS 更新依各地 ISP 快取而定,通常要 24 到 48 小時才全球生效,這段期間部分訪客還會連到舊站,這是正常現象。
- 第四、建議讓新舊主機並存至少兩週作為交疊期,確認新站功能與資料都正常,再關閉舊主機帳號。
要把停機壓到接近零,差異就在「最後一次資料同步」。從你第一次匯出資料庫到正式切換的這段時間,舊站可能又產生了新訂單或留言。對動態資料多的站(尤其是 WooCommerce 商城),切換前可以先把舊站設成維護模式或資料庫唯讀,再做一次最終匯出匯入,確保切換瞬間的資料不漏。流量低、更新不頻繁的部落格站,挑離峰時段切換、容許短暫不同步,通常也夠用。
萬一切過去發現新站有問題,因為舊站還活著,把 A 紀錄改回舊 IP 就能回退。這也是為什麼交疊期不能省,它就是你的回滾保險。
郵件、SSL 與搬移後的驗收清單
搬移後最常被忽略的兩件事是郵件和 SSL,偏偏這兩項一出問題使用者馬上有感。
SSL 憑證要重簽。 共享主機多半自動幫你簽發與續期憑證,VPS 預設沒有。搬過去後要自己用 Let’s Encrypt(搭配 certbot)幫網域重新簽一張免費憑證,並確認自動續期有設好,否則三個月後憑證過期,網站會跳出不安全警告。原本用付費憑證的,則要重新安裝或向發證單位申請重簽。
郵件與 MX 要對齊。 共享主機常內建郵件服務,A 紀錄一改、舊主機一關,原本掛在舊主機的信箱就收不到信了。先決定郵件要怎麼處理:在 VPS 自建郵件服務(較耗資源也較難維護),或改用 Google Workspace 這類外部郵件服務。不論哪種,都要把 DNS 的 MX 紀錄指到正確的郵件伺服器,並更新 SPF 與 DKIM 紀錄,否則寄出去的信容易被當成垃圾信。商用網站尤其要先確認這塊,不然可能漏接客戶詢價信。
切換完成後,照這份清單逐項驗收:
- 前台逐頁點過,確認沒有白畫面、圖片與 CSS 都正常載入
- 後台能正常登入、能新增與儲存文章
- 表單、登入、搜尋,商城再加上購物車與結帳,全部實測一次
- 網址列顯示鎖頭(SSL 生效),用 http 連線會自動轉到 https
- 寄一封測試信,確認收發都正常
- 用 DNS 查詢工具確認網域已指向 VPS 的 IP
從判斷該不該升級、把責任差異盤點清楚,到檔案搬移、改好 wp-config、再用降 TTL 加交疊期的方式切 DNS,整段共享主機升級 VPS 的流程其實是一條可以照表操課的路。真正的分水嶺不在搬檔案,而在搬完之後那些共享主機原本幫你顧、現在換你顧的設定——SSL、備份、郵件、安全更新。把搬移當成起點而不是終點,先在交疊期內把這些補齊,再放心關掉舊主機,網站才算真正在新家站穩。