主機要選 Linux 還是 Windows,答案幾乎由網站的程式決定。用 PHP 寫成的網站,包括 WordPress、OpenCart 這類開源系統,放 Linux 最順手;用 ASP.NET Web Forms 或舊版 .NET Framework 開發、資料存在 Access 檔案裡的系統,只能留在 Windows。真正有得選的是用新版 .NET 開發的網站,這時才需要把資料庫、授權費用的計算方式與維運人力放在一起比較。
01常見情境:貿易公司舊系統、診所預約、WordPress 官網怎麼選平台
以下是幾種常見情況的示意,不是真實客戶案例。先找最接近你的一種,再從建議的段落讀起。
- 二十人規模的五金貿易公司,總務兼管電腦:十多年前外包寫的訂單查詢網站,網址結尾是 .aspx,資料存在 SQL Server。舊主機要汰換,有人建議改放 Linux 比較省。總務最擔心搬過去後網站打不開、訂單資料對不起來,卻又找不到原來的工程師。建議先看「先看網站用什麼程式寫」,確認這套系統是不是 Web Forms;再看「.NET 跨平台的現況」,判斷能不能直接搬,還是得先改寫。
- 一間牙醫診所,委外開發線上預約系統:開發商用新版 ASP.NET Core 撰寫,反問診所要放 Windows 還是 Linux。院長在意的是每年固定支出,以及將來換開發商時好不好接手。建議先看「授權成本的結構」,把作業系統與資料庫的授權拆開詢問;再看「資料庫怎麼比」,估算預約與病歷摘要的資料量,會不會超過入門版資料庫的容量上限。
- 三人的行銷工作室,官網用 WordPress:當初的主機剛好是 Windows 方案,老闆照網路教學設定固定網址與快取,步驟常對不上,想知道改放 Linux 麻不麻煩。建議先看「轉換平台的難度與步驟」,列出網站檔案、資料庫與信箱的搬移順序;再看「管理介面與日常維運」,了解換平台後哪些操作會不一樣。
02先看網站用什麼程式寫:PHP、ASP.NET 與 Access 決定平台
作業系統是網站程式的地基,先確認程式,再談方案與價格。不懂程式也能判斷,照下面三個方向找線索:
- 看網址與檔名:網址結尾是 .php,或網站根目錄有 index.php、wp-config.php,就是 PHP 網站;結尾是 .aspx,幾乎可以確定是 ASP.NET Web Forms;結尾是 .asp(少了 x)是更早期的傳統 ASP。網址沒有副檔名時看不出來,要改看檔案:根目錄有 web.config 與大量 .dll 檔,多半是 ASP.NET 系列。
- 看資料庫:檔案中出現 .mdb 或 .accdb,代表資料存在 Access 檔案;連線設定寫著 MSSQL 或 SQL Server,是微軟的資料庫;寫 MySQL 或 MariaDB 的,幾乎都是 PHP 系統。
- 直接問原開發商:用什麼語言與框架、目標版本是哪一版(例如 .NET Framework 4.8 或 .NET 8)、資料庫的種類與版本。請對方用書面回覆,之後找任何主機商評估都用得到。
| 網站程式 | 適合的平台 | 判斷重點 |
|---|---|---|
| PHP(WordPress、OpenCart、Joomla 等) | Linux | PHP 官方雖有 Windows 版本,但 WordPress 官方建議以 Apache 或 Nginx 執行,外掛與教學也多以 Linux 環境為準 |
| ASP.NET Web Forms、.NET Framework 程式 | Windows | 只能在 .NET Framework 上執行,換到 Linux 等於改寫 |
| ASP.NET Core(.NET 5 以後的版本) | Linux 或 Windows | 程式本身跨平台,改看資料庫、授權與團隊熟悉哪一邊 |
| 傳統 ASP、Access 資料庫 | Windows | 依賴 Windows 元件,換主機時適合一併規劃改用 SQL Server |
同一家公司也可能兩種都有:對外官網是 WordPress,內部的報價或訂單系統是 ASP.NET。這時不必硬湊在同一台主機,官網放 Linux、內部系統放 Windows,分開管理反而清楚。真的找不到原始碼與開發商時,至少先把整個網站目錄與資料庫完整備份下來,再請人判斷。
03.NET 跨平台的現況:哪些 ASP.NET 網站能放 Linux
微軟目前有兩條 .NET 產品線。.NET Framework 是原始版本,只能在 Windows 上執行,Microsoft Learn 將它描述為仍受支援、但處於維護狀態;.NET(早期稱為 .NET Core,.NET 5 以後去掉 Core)是開源、跨平台的版本,可以在 Windows、Linux 與 macOS 上執行。微軟的選擇指引寫得很直接:新的伺服器程式以最新版 .NET 為優先,目前是 .NET 10;繼續使用 .NET Framework 的理由有限,主要是既有程式已經用它寫成,或用到新版沒有的技術。
最常見的「新版沒有」就是 ASP.NET Web Forms:它只存在於 .NET Framework,ASP.NET Core 無法執行 Web Forms 頁面;ASP.NET Web Pages、Windows Workflow Foundation 也一樣。所以網址滿是 .aspx 的舊系統,想放 Linux 就不是搬家,而是重寫。
版本支援期也要一起看。依微軟公布的時程,.NET 10 是長期支援版,支援到 2028 年 11 月;.NET 8 與 .NET 9 都在 2026 年 11 月結束支援。網站還在 .NET 8 或 9 的,與其現在換平台,不如先排定升級到 .NET 10,升級完成再決定放哪裡。.NET Framework 4.8 與 4.8.1 則跟著 Windows 作業系統的支援期走;4.6.2 與 Windows Server 2016 都在 2027 年 1 月結束延伸支援,主機若還是這個版本,汰換時程已經很緊。
ASP.NET Core 放上 Linux 的標準做法,依微軟的部署文件,是讓程式在內建的 Kestrel 伺服器上執行,前面再架 Nginx 這類反向代理,處理 HTTPS、靜態檔案與快取,並把程式設定成開機自動啟動的系統服務。這些設定需要完整的系統權限,一般共用主機做不到,通常要用 VPS 雲端主機這類可以自行安裝軟體的環境。
04資料庫怎麼比:MySQL/MariaDB 與 SQL Server 的版本限制
PHP 網站的標準搭配是 MySQL 或 MariaDB。MariaDB 由 MySQL 的原始開發者打造,一開始就以 MySQL 的直接替代品為設計目標,並以 GPLv2 開源授權釋出;WordPress 官方建議的資料庫是 MySQL 8.0 以上或 MariaDB 10.11 以上,兩者在多數網站上可以互換。
SQL Server 是微軟的資料庫。很多人以為它只能裝在 Windows,其實 SQL Server 2017 起就有 Linux 版,使用和 Windows 版相同的資料庫引擎,官方支援 Red Hat Enterprise Linux 與 Ubuntu。也就是說,真正把網站綁在 Windows 上的通常是程式,而不是資料庫;用 ASP.NET Core 寫成、搭配 SQL Server 的系統,資料庫放在哪一個平台可以獨立評估。
選 SQL Server 時,版本比平台更影響預算:
- Express 版:不需另購授權,但單一執行個體最多只用 1 個處理器插槽或 4 個核心中較少者,緩衝集區記憶體上限 1,410 MB;單一資料庫上限在 SQL Server 2022 是 10 GB,2025 版放寬到 50 GB。Express 也沒有 SQL Server Agent,排程備份要另想辦法。
- Developer 版:功能完整,但授權只限開發與測試,不能拿來跑正式網站。
- Web 版:只透過主機服務商提供,SQL Server 2025 起不再推出。
- Standard、Enterprise 版:正式環境資料量或功能超過 Express 時的選項,授權方式見下一段。
還在用 Access 檔案當網站資料庫的,要特別留意:微軟在 Access 資料庫引擎可轉散發套件的說明中,明確表示不建議用在 ASP.NET 等伺服器端程式,該版本也已在 2025 年 10 月結束支援。換主機正好是把資料轉進 SQL Server 的時機。
05授權成本的結構:Windows Server 與 SQL Server 怎麼計算
Linux 這一邊的結構比較單純:常見的 Linux 發行版、PHP、MySQL 與 MariaDB 都是開源軟體,主機費主要反映硬體、頻寬與維運;部分企業級發行版另有付費的訂閱支援。Windows 這一邊則多了兩層授權:作業系統與資料庫。以下只說明計算方式,金額會隨版本與通路變動,請以報價為準。
- Windows Server 依核心數計算:依微軟授權指引,以實體伺服器授權時,所有實體核心都要授權,每顆處理器至少 8 個核心授權、每台伺服器至少 16 個。Standard 版每套授權可執行 2 台虛擬機器,Datacenter 版不限數量。以單一虛擬機器授權時,依虛擬核心數計算,每台至少 8 個。
- 用戶端存取授權(CAL):Windows Server 要求每個存取伺服器的使用者或裝置都有 CAL;員工若要登入伺服器桌面操作系統,還需要遠端桌面服務的 RDS CAL。
- SQL Server 有兩種模式:依核心授權時,每顆實體處理器至少 4 個核心授權,或每台虛擬機器至少 4 個,不必再買 CAL,微軟指引建議對外開放的網站採用這種模式;Standard 版另有「伺服器加 CAL」模式,適合使用人數固定的內部系統。
租用主機時,這些授權通常由主機商處理。微軟的服務供應商授權協議(SPLA)讓服務商按月為客戶取得授權,費用多半已包在租金裡。所以拿到 Windows 方案報價時,要請對方寫清楚:作業系統與 SQL Server 授權是否內含、是哪一個版本、依幾個核心計算。VPS 或專屬主機加大處理器核心數時,授權費可能跟著增加,升級前也要先問。
06管理介面與日常維運:SSH、遠端桌面與兩平台比較表
兩個平台的日常操作方式差很多。Linux 主機主要透過 SSH 以指令操作,安裝套件、套用更新、查看記錄檔都是打指令完成;團隊用 Git 管理程式碼、想用推送方式部署與保留開發測試環境的,可以直接選 開發者主機。Windows 主機則以遠端桌面連進圖形介面,用 IIS 管理員設定網站,習慣 Windows 的人上手快。Windows Server 2019 與 2022 可透過選用功能安裝 OpenSSH,2025 版已預先安裝但預設未啟用,兩邊的界線正在變淡。
如果用的是共用的虛擬主機,兩種平台都透過網頁控制台管理,通常碰不到 SSH 或遠端桌面。真正要面對這些差異的,是自己管理整台主機的人。不論哪一邊,遠端管理的連接埠都不要對全世界開放:限定來源 IP、改用金鑰登入,並為更新排定維護時段,部分 Windows 更新需要重新開機。
| 項目 | Linux 主機 | Windows 主機 |
|---|---|---|
| 適合的程式 | PHP、WordPress 等開源系統,ASP.NET Core | ASP.NET Web Forms、.NET Framework、傳統 ASP,ASP.NET Core |
| 常見資料庫 | MySQL、MariaDB;SQL Server 也可安裝 | SQL Server;也可安裝 MySQL |
| 授權結構 | 作業系統與常見軟體多為開源 | 作業系統與資料庫依核心或使用者計算授權 |
| 遠端管理 | SSH 指令操作 | 遠端桌面圖形介面,新版可啟用 OpenSSH |
| 檔名與資料表名稱 | 區分大小寫 | 不區分大小寫 |
| 網址改寫設定 | Apache 的 .htaccess 或 Nginx 設定檔 | IIS 的 web.config |
07轉換平台的難度與步驟:從大小寫到網址改寫規則
轉換平台的難度,取決於程式要不要改。PHP 網站從 Windows 搬到 Linux,多半只要搬檔案與資料庫,再修正少數設定;.NET Framework 網站要搬到 Linux,則必須先移植到新版 .NET。微軟的升級指南說明,這種移植會改變應用程式模型、專案格式與部分 API,新版沒有的技術還要找替代方案,工作量要請開發商評估,不是主機商能代勞的事。
最常被忽略的是大小寫。MySQL 官方文件說明,資料庫與資料表名稱是否區分大小寫取決於作業系統:Windows 不區分,多數 Unix 系統會區分,相關參數 lower_case_table_names 在 Unix 預設為 0、在 Windows 預設為 1。在 Windows 上寫成 Orders、查詢時寫 orders 一直相安無事的網站,搬到 Linux 後就可能出現「找不到資料表」;圖片檔名大小寫不一致,也會變成破圖。
建議照這個順序進行:
- 盤點:列出網站程式與版本、資料庫種類與大小、排程工作、寄信方式,以及所有寫死在程式裡的路徑。
- 建立測試環境:在新主機用測試網址架一份,先不動正式網站與 DNS。
- 轉換資料庫:匯出匯入後,比對資料筆數,並統一資料表名稱的大小寫。
- 改寫設定:把 web.config 的網址改寫規則換成 .htaccess 或 Nginx 設定,反向亦同;檢查檔案寫入權限。
- 逐頁測試:表單送出、會員登入、後台上傳、通知信與排程工作都要實際跑一次。
- 切換與觀察:選在流量低的時段修改 DNS,舊主機保留到確認無誤後再停用。
網站和信箱放在同一台主機的,搬移順序與 DNS 切換要一起規劃,可參考網站與郵件移轉的流程,避免切換期間漏信。
08找凱斯騰協助前,先準備這些:選擇主機作業系統的評估資料
想請我們一起判斷該選 Linux 還是 Windows,先把下面的資料整理好,評估時就不必從頭猜測網站的組成:
- 網站網址,以及幾個代表性頁面的完整網址(看得出 .php、.aspx 或 .asp)。
- 原開發商提供的程式語言、框架與目標版本,例如 PHP 8.3、.NET Framework 4.8 或 .NET 8。
- 資料庫的種類、版本與目前大小,以及過去一年大約成長多少。
- 目前主機的作業系統版本,例如 Windows Server 2016,以及合約到期日。
- 現有授權的狀況:Windows 與 SQL Server 授權是主機商內含,還是公司自行購買。
- 會登入主機操作的人數與身分,例如工程師、外包廠商或需要用遠端桌面的員工。
- 網站有沒有排程工作、寄信元件或與 ERP、POS 等其他系統的串接。
- 原始碼與資料庫備份目前存放在哪裡、由誰保管,能不能交給新的主機或開發商。
凱斯騰的虛擬主機以 Linux 為主,另有 Windows 與 MSSQL 主機方案;需要整台主機的 ASP.NET 或 MSSQL 系統,可評估專屬伺服器的 Windows 類型,沒有系統管理人力的,可選全代管。VPS 的作業系統選項請洽詢。資料備齊後,請透過聯絡表單洽詢,或來信 [email protected],並註明網站程式與目前主機的到期日。程式是否需要移植到新版 .NET,屬於開發商的工作範圍,我們會在評估時把主機與程式兩邊的分工說清楚。
FAQ常見問題
Q.01WordPress 可以放在 Windows 主機上嗎?
可以執行,PHP 官方也提供 Windows 版本。不過 WordPress 官方建議的網頁伺服器是 Apache 或 Nginx,主題、外掛的安裝說明也大多以 Linux 主機為例。新架設的 WordPress 網站,選 Linux 會少很多設定上的麻煩。
Q.02Windows 主機一定比 Linux 主機貴嗎?
多數情況下會多出作業系統與資料庫的授權成本,但實際差距要看授權是否已含在租金、SQL Server 用哪個版本、主機有幾個核心。比較時請把授權項目和主機本身分開列出,才看得出差在哪裡。
Q.03網站用 SQL Server,就一定要選 Windows 主機嗎?
不一定。SQL Server 2017 之後的版本可以安裝在 Linux 上。決定平台的通常是網站程式:若是 .NET Framework 或 Web Forms,程式本身就得留在 Windows;若是 ASP.NET Core,網站與資料庫可以各自選擇最合適的環境。
Q.04開發商說網站是 .NET 8,需要馬上處理嗎?
要開始安排。.NET 8 的官方支援在 2026 年 11 月結束,之後不再有安全修補。請開發商評估升級到長期支援版 .NET 10 的工作量與時程;升級完成後,網站可以放 Linux 也可以放 Windows,再一併決定主機方案。
參考資料
- Introduction to .NET|Microsoft Learn(查閱日期:2026-10-24)
- Choose between .NET and .NET Framework for server apps|Microsoft Learn(查閱日期:2026-10-24)
- .NET releases, patches, and support|Microsoft Learn(查閱日期:2026-10-24)
- Upgrade .NET apps overview|Microsoft Learn(查閱日期:2026-10-24)
- Host ASP.NET Core on Linux with Nginx|Microsoft Learn(查閱日期:2026-10-24)
- Microsoft .NET Framework - Microsoft Lifecycle|Microsoft Learn(查閱日期:2026-10-24)
- Windows Server 2016 - Microsoft Lifecycle|Microsoft Learn(查閱日期:2026-10-24)
- What is SQL Server on Linux?|Microsoft Learn(查閱日期:2026-10-24)
- Editions and Supported Features of SQL Server 2022|Microsoft Learn(查閱日期:2026-10-24)
- Editions and Supported Features of SQL Server 2025|Microsoft Learn(查閱日期:2026-10-24)
- Core based licensing models|Microsoft Licensing(查閱日期:2026-10-24)
- Windows Server 2025 licensing(授權模式與虛擬化權利)|Microsoft(查閱日期:2026-10-24)
- SQL Server 2022 licensing models and editions|Microsoft(查閱日期:2026-10-24)
- Services Provider License Agreement (SPLA)|Microsoft Licensing(查閱日期:2026-10-24)
- License Remote Desktop Services with Client Access Licenses (CALs)|Microsoft Learn(查閱日期:2026-10-24)
- OpenSSH for Windows overview|Microsoft Learn(查閱日期:2026-10-24)
- Microsoft Access Database Engine 2016 Redistributable|Microsoft Download Center(查閱日期:2026-10-24)
- Identifier Case Sensitivity|MySQL 8.4 Reference Manual(查閱日期:2026-10-24)
- About MariaDB Server|MariaDB Foundation(查閱日期:2026-10-24)
- Requirements|WordPress.org(查閱日期:2026-10-24)
- Installation on Windows systems|PHP Manual(查閱日期:2026-10-24)
