ปัญหาที่เจอบ่อย
เคยไหมครับ…มี Server 1 เครื่อง แต่ต้องการรันหลายเว็บไซต์ เช่น
site1.comsite2.com
ถ้าไม่ใช้ Virtual Host → ทุกเว็บจะชนกันหมด
Apache Virtual Host คือคำตอบ ที่ช่วยให้ 1 Server แยกหลายเว็บไซต์ได้อย่างมืออาชีพ
บทความนี้จะพาคุณสร้าง Virtual Host บน Apache (httpd) บน Rocky Linux 9 แบบ Step-by-Step
สามารถ Copy → Paste → ใช้งานได้จริง เหมาะทั้ง Lab และ Production
สิ่งที่ต้องมี
ก่อนเริ่ม ให้เตรียมระบบดังนี้
- OS: Rocky Linux 9
- ติดตั้ง Apache (
httpd) แล้ว - มีสิทธิ์ sudo
- Domain (หรือใช้
/etc/hostsจำลอง)
Step 1 ติดตั้ง Apache (ถ้ายังไม่มี)
# เปิด service และให้ start อัตโนมัติ
sudo systemctl enable –now httpd
# ตรวจสอบสถานะ
sudo systemctl status httpd
Step 2 สร้าง Directory สำหรับแต่ละเว็บไซต์
sudo mkdir -p /var/www/site1.com/public_html
sudo mkdir -p /var/www/site2.com/public_html
# ตั้ง permission
sudo chown -R $USER:$USER /var/www/site1.com
sudo chown -R $USER:$USER /var/www/site2.com
Step 3 สร้าง Virtual Host Config
Apache บน Rocky ใช้ path นี้:
สร้างไฟล์ config
ตัวอย่าง config
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/site1.com/public_html
ErrorLog /var/log/httpd/site1_error.log
CustomLog /var/log/httpd/site1_access.log combined
</VirtualHost>
สร้าง site2
<VirtualHost *:80>
ServerName site2.com
ServerAlias www.site2.com
DocumentRoot /var/www/site2.com/public_html
ErrorLog /var/log/httpd/site2_error.log
CustomLog /var/log/httpd/site2_access.log combined
</VirtualHost>
Step 4 ตั้งค่า SELinux (สำคัญมากใน Rocky Linux)
⚠️ หากไม่ตั้งค่า → เว็บอาจเข้าไม่ได้
หรือแบบถาวร
sudo restorecon -Rv /var/www
Step 5 เปิด Firewall
Step 6 Restart Apache
Step 7 ทดสอบระบบ
วิธีที่ 1 ใช้ Domain จริง
ชี้ DNS → IP Server
วิธีที่ 2: ใช้ /etc/hosts (Lab)
เพิ่ม
192.168.1.100 site2.com
ภาพรวม Virtual Host
ตรวจสอบ (Verify)
ทดสอบด้วย browser
- http://site1.com → ต้องเห็น “Welcome to Site1”
- http://site2.com → ต้องเห็น “Welcome to Site2”
หรือใช้ curl
สรุป
Virtual Host คือพื้นฐานสำคัญของ SysAdmin ที่ต้องรู้
ช่วยให้ Server เครื่องเดียว รองรับหลายเว็บไซต์ได้อย่างเป็นระบบ
บน Rocky Linux 9
- ใช้ Apache (
httpd) - config แยกใน
/etc/httpd/conf.d/ - ต้องระวัง SELinux + Firewall
ที่มา:
– https://medium.com/%40leandro.almeida/apache-virtual-hosts-473339154bbe
– https://blog.e-zest.com/how-to-set-up-apache-virtual-host-configuration-on-lamp-environment/



