ติดตั้ง IIS Web Server บน Windows Server
IIS (Internet Information Services) คือ Web Server ที่มากับ Windows Server เหมาะสำหรับเว็บไซต์และเว็บแอปที่พัฒนาด้วย ASP.NET หรือ ASP.NET Core และใช้เป็นหน้าบ้านให้โปรแกรมที่ต้องให้บริการผ่าน HTTP หรือ HTTPS IIS เป็น Role ที่ไม่ได้ติดตั้งมาตั้งแต่แรก ต้องเพิ่มเองผ่าน Server Manager หรือ PowerShell
บทความนี้พาติดตั้ง IIS ตรวจว่าเว็บเริ่มต้นทำงาน แล้วสร้างเว็บไซต์ใหม่ที่ผูกกับชื่อโดเมนของคุณ
สิ่งที่ต้องเตรียม
- Windows Server 2019 หรือ 2022 แบบมี Desktop Experience (ถ้าเป็น Server Core ใช้วิธี PowerShell ได้ แต่ไม่มีหน้าจอ IIS Manager ในเครื่อง)
- บัญชีในกลุ่ม Administrators
- ชื่อโดเมนที่ชี้ A Record มายัง IP ของเซิร์ฟเวอร์แล้ว (ถ้าต้องการเข้าผ่านชื่อโดเมน) ดูวิธีได้ที่ ชี้โดเมนไปยังเซิร์ฟเวอร์ด้วย A Record หรือเปลี่ยน Name Server
- ถ้าเครื่องมีโปรแกรมอื่นใช้พอร์ต 80 หรือ 443 อยู่ ต้องย้ายหรือหยุดโปรแกรมนั้นก่อน
ขั้นตอนที่ 1: ติดตั้ง IIS
แบบที่ 1: ผ่าน Server Manager
- เปิด Server Manager คลิก Manage > Add Roles and Features
- หน้า Before You Begin กด Next หน้า Installation Type เลือก Role-based or feature-based installation
- หน้า Server Selection เลือกเซิร์ฟเวอร์ปัจจุบัน แล้วกด Next
- หน้า Server Roles ติ๊ก Web Server (IIS) จะมีหน้าต่างถามให้เพิ่ม Management Tools กด Add Features
- กด Next ผ่านหน้า Features ไปจนถึงหน้า Role Services ของ Web Server ถ้าเว็บเป็น ASP.NET (.NET Framework) ให้ติ๊ก Application Development > ASP.NET 4.8 (Windows Server 2019 อาจแสดงเป็น ASP.NET 4.7 ขึ้นกับอัปเดตที่ติดตั้ง)
- กด Install รอจนขึ้นว่า Installation succeeded แล้วกด Close
แบบที่ 2: ผ่าน PowerShell
เปิด Windows PowerShell แบบ Run as Administrator แล้วรัน
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
เมื่อเสร็จจะแสดงตารางที่มี Success True และ Restart Needed No ถ้าต้องการ ASP.NET สำหรับ .NET Framework ให้ติดตั้งเพิ่ม
Install-WindowsFeature -Name Web-Asp-Net45
สำหรับแอป ASP.NET Core ไม่ต้องใช้ฟีเจอร์นี้ แต่ต้องติดตั้ง ASP.NET Core Hosting Bundle เวอร์ชันที่ตรงกับแอป ดาวน์โหลดได้จากหน้า .NET ของ Microsoft ที่ https://dotnet.microsoft.com/download/dotnet
ขั้นตอนที่ 2: ทดสอบหน้าเว็บเริ่มต้น
หลังติดตั้ง IIS จะสร้างเว็บไซต์ชื่อ Default Web Site ที่โฟลเดอร์ C:\inetpub\wwwroot และรับการเชื่อมต่อที่พอร์ต 80 ทดสอบในเครื่องด้วย
Invoke-WebRequest -Uri http://localhost -UseBasicParsing | Select-Object StatusCode
ควรได้ StatusCode 200 จากนั้นลองเปิด http://IP-ของเซิร์ฟเวอร์ จากเบราว์เซอร์ในเครื่องของคุณ จะเห็นหน้าต้อนรับของ IIS
การติดตั้ง IIS จะเปิดกฎ Firewall ชื่อ World Wide Web Services (HTTP Traffic-In) ให้ด้วย ตรวจได้ด้วยคำสั่ง
Get-NetFirewallRule -DisplayName "World Wide Web Services*" | Select-Object DisplayName, Enabled
ถ้ากฎยังไม่เปิด หรือจะเปิด HTTPS ด้วย ดูวิธีเปิดพอร์ตที่ เปิด Port บน Windows Defender Firewall หากเซิร์ฟเวอร์มี Security Group หรือ Firewall ภายนอกจากฝั่งผู้ให้บริการ ให้เปิดพอร์ต 80 และ 443 เพิ่มด้วย
ขั้นตอนที่ 3: สร้างเว็บไซต์ใหม่สำหรับโดเมนของคุณ
แนะนำให้แยกเว็บไซต์แต่ละโดเมนไว้คนละโฟลเดอร์และคนละ Application Pool เพื่อไม่ให้ปัญหาของเว็บหนึ่งกระทบอีกเว็บ
สร้างโฟลเดอร์และกำหนดสิทธิ์
New-Item -ItemType Directory -Path C:\inetpub\example.com
icacls "C:\inetpub\example.com" /grant "IIS_IUSRS:(OI)(CI)RX"
icacls จะแสดง Successfully processed 1 files คำสั่งนี้ให้สิทธิ์อ่านและรันไฟล์แก่กลุ่มที่ IIS ใช้ ถ้าแอปต้องเขียนไฟล์ในโฟลเดอร์ย่อย เช่น uploads ให้สิทธิ์ Modify เฉพาะโฟลเดอร์นั้น ไม่ใช่ทั้งเว็บ
สร้างเว็บไซต์ผ่าน IIS Manager
- เปิด IIS Manager (Server Manager > Tools > Internet Information Services (IIS) Manager หรือพิมพ์
inetmgr) - ที่แผงซ้าย ขยายชื่อเครื่อง คลิกขวาที่ Sites เลือก Add Website...
- Site name ใส่
example.comระบบจะสร้าง Application Pool ชื่อเดียวกันให้ - Physical path เลือก
C:\inetpub\example.com - Binding: Type
http, IP addressAll Unassigned, Port80, Host name ใส่www.example.com - กด OK
Binding หนึ่งรายการรับได้หนึ่ง Host name ถ้าต้องการให้ example.com (ไม่มี www) ใช้ได้ด้วย ให้คลิกเว็บไซต์แล้วเลือก Bindings... ที่แผงขวา กด Add แล้วใส่ Host name เพิ่ม
หรือสร้างด้วย PowerShell
Import-Module IISAdministration
New-IISSite -Name "example.com" -PhysicalPath "C:\inetpub\example.com" -BindingInformation "*:80:www.example.com"
New-IISSiteBinding -Name "example.com" -BindingInformation "*:80:example.com" -Protocol http
วิธีนี้จะใช้ Application Pool ชื่อ DefaultAppPool ถ้าต้องการแยก Pool ให้สร้างผ่าน IIS Manager ที่หัวข้อ Application Pools แล้วเปลี่ยนในเมนู Basic Settings ของเว็บไซต์
ขั้นตอนที่ 4: ใส่ไฟล์เว็บและเปิด HTTPS
คัดลอกไฟล์เว็บไปไว้ใน C:\inetpub\example.com IIS จะหาไฟล์หน้าแรกตามรายการใน Default Document (เช่น default.htm, index.html) ถ้าไฟล์หน้าแรกชื่ออื่น ให้เพิ่มชื่อนั้นในเมนู Default Document ของเว็บไซต์
สำหรับ HTTPS ต้องมี SSL Certificate ที่นำเข้าไว้ใน Certificate Store ของเครื่องก่อน จากนั้นเพิ่ม Binding ชนิด https พอร์ต 443 ใส่ Host name ติ๊ก Require Server Name Indication (จำเป็นเมื่อมีหลายเว็บไซต์ใช้ IP เดียวกัน) แล้วเลือก Certificate ที่ต้องการ
ตรวจสอบผลลัพธ์
- ดูว่าบริการ IIS ทำงานอยู่
ทั้งสองบริการควรมีสถานะGet-Service W3SVC, WAS | Select-Object Name, StatusRunning - ดูรายการเว็บไซต์และสถานะ
เว็บไซต์ของคุณควรมีสถานะGet-IISSiteStartedและ Binding ตรงกับที่ตั้งไว้ - เปิด
http://www.example.comจากเบราว์เซอร์ ควรเห็นหน้าเว็บของคุณ ไม่ใช่หน้าต้อนรับของ IIS
ปัญหาที่พบบ่อย
เปิดโดเมนแล้วยังเห็นหน้าต้อนรับของ IIS
Default Web Site ใช้ Binding *:80: แบบไม่มี Host name จึงรับทุกคำขอที่ไม่ตรงกับเว็บไซต์อื่น ถ้าเห็นหน้านี้ แปลว่า Host name ใน Binding ไม่ตรงกับชื่อที่พิมพ์ในเบราว์เซอร์ ตรวจว่าใส่ทั้งแบบมีและไม่มี www แล้วหรือยัง หรือถ้าไม่ใช้ Default Web Site ให้ Stop ไว้
HTTP Error 403.14 Forbidden
หมายถึงไม่พบไฟล์หน้าแรกในรายการ Default Document และไม่ได้เปิด Directory Browsing ให้ตรวจว่ามีไฟล์หน้าแรกในโฟลเดอร์ และชื่อไฟล์อยู่ในรายการ Default Document
HTTP Error 503 Service Unavailable
Application Pool ของเว็บไซต์หยุดทำงาน มักเกิดจากแอปล้มซ้ำหลายครั้งหรือตั้งค่า Identity ผิด เปิด IIS Manager > Application Pools ดูสถานะ แล้วตรวจ Event Viewer > Windows Logs > Application และ System เพื่อหาสาเหตุ
HTTP Error 500.19 หรือ 401.3
500.19 มักเกิดจากไฟล์ web.config มีรูปแบบผิด หรือใช้โมดูลที่ยังไม่ได้ติดตั้ง (เช่น URL Rewrite) ส่วน 401.3 เกิดจาก IIS ไม่มีสิทธิ์อ่านไฟล์ ให้รันคำสั่ง icacls ในขั้นตอนที่ 3 อีกครั้ง
คู่มือทางการของ IIS อ่านเพิ่มเติมได้ที่ https://learn.microsoft.com/iis/
หากติดตั้งแล้วเว็บไซต์ยังไม่ทำงาน ติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


