เมื่อใช้เว็บเซิร์ฟเวอร์ Apache เราสามารถใช้ Virtual Host (คล้ายกับบล็อกเซิร์ฟเวอร์ใน Nginx) เพื่อสรุปรายละเอียดการกำหนดค่าและสร้างโฮสต์มากกว่าหนึ่งโดเมนจากเซิร์ฟเวอร์เดียว ในที่นี่เราจะตั้งค่าโดเมนชื่อ demosite2.com คุณสามารถแทนที่ด้วยชื่อโดเมนของคุณเอง
Apache บน Debian 10 มีบล็อกเซิร์ฟเวอร์หนึ่งบล็อกที่เปิดใช้งานตามค่าเริ่มต้นซึ่งกำหนดค่าให้ให้บริการจากไดเร็กทอรี /var/www/html แม้ว่าวิธีนี้จะใช้งานได้ดีกับเว็บไซต์เดียว แต่หากต้องการใช้งานหลายเว็บไซต์ เราต้องสร้างไดเร็กทอรีภายใน /var/www สำหรับเว็บไซต์ your_domain โดยปล่อย /var/www/html ไว้เป็นไดเร็กทอรีเริ่มต้นที่จะให้บริการ ต้องสร้างไดเร็กทอรีสำหรับ your_domain โดยใช้แฟล็ก -p เพื่อสร้างไดเร็กทอรีหลักที่จำเป็น ทางเราจะแทนที่ your_domain เป็น demosite2
sudo mkdir -p /var/www/demosite2
ต่อไป กำหนดความเป็นเจ้าของไดเร็กทอรีด้วยตัวแปรสภาพแวดล้อม $USER
sudo chown -R $USER:$USER /var/www/demosite2
สิทธิ์ของเว็บ root ควรจะถูกหากไม่ได้แก้ไขค่า unmask ซึ่งจะตั้งค่าสิทธิ์เริ่มต้นของไฟล์ เพื่อให้แน่ใจว่าสิทธิ์นั้นถูกต้องและอนุญาตให้เจ้าของอ่าน เขียน และเรียกใช้ไฟล์ในขณะที่ให้สิทธิ์เฉพาะการอ่านและดำเนินการแก่กลุ่มและอื่นๆ คุณสามารถป้อนคำสั่งต่อไปนี้
sudo chmod -R 755 /var/www/demosite2
ต่อไป สร้างหน้า index.html ตัวอย่างโดยใช้ nano หรือโปรแกรมอื่นที่คุณถนัด
nano /var/www/demosite2/index.html
ภายในไฟล์ index.html ทางเราจะใส่ตัวอย่างดังต่อไปนี้ (สามารถแก้ชื่อโดเมนจาก demosite2 เป็นชื่อโดเมนของคุณได้เลย)
<html>
<head>
<title>Welcome to demosite2!</title>
</head>
<body>
<h1>Success! The demosite2 virtual host is working!</h1>
</body>
</html>
จากนั้นบันทึกและปิดไฟล์เมื่อคุณเพิ่มข้อมูลเสร็จเรียบร้อยแล้ว
เพื่อที่จะให้ Apache ทำงานได้เหมาะสมกับเว็บที่จะสร้าง เราจำเป็นต้องมาสร้างไฟล์ใหม่ที่
sudo nano /etc/apache2/sites-available/demosite2.conf
สามารถคัดลอกข้อความด้านล่างไปได้เลย เพียงแต่ต้องแก้ไขชื่อโดเมนเป็นชื่อที่เราต้องการและอย่าลืมสังเกตว่าเราได้อัปเดต DocumentRoot เป็นไดเร็กทอรีใหม่และ ServerAdmin เป็นอีเมลที่ผู้ดูแลระบบไซต์สามารถเข้าถึงได้ รวมถึงเรายังได้เพิ่มคำสั่งสองคำสั่ง ServerName ซึ่งสร้างโดเมนพื้นฐานที่ควรตรงกับข้อกำหนดของโฮสต์เสมือนนี้ และ ServerAlias ซึ่งกำหนดชื่อเพิ่มเติมที่ควรตรงกัน
<VirtualHost *:80>
ServerAdmin admin@localhost
ServerName demosite2
ServerAlias www.demosite2
DocumentRoot /var/www/demosite2
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
เราสามารถเปิดใช้งานเว็บไซต์ด้วยคำสั่ง a2ensite (อย่าลืมแก้ your_domain เป็นชื่อโดเมนของคุณ)
sudo a2ensite your_domain.conf
หากต้องการปิดใช้งานเว็บไซต์เริ่มต้นที่กำหนดไว้ใน 000-default.conf สามารถดำเนินการด้วยคำสั่งดังนี้
sudo a2dissite 000-default.conf
ต่อไปเรามาทดสอบข้อผิดพลาดในการกำหนดค่า
sudo apache2ctl configtest
จะเห็นผลลัพธ์ดังนี้
รีสตาร์ท Apache เพื่อใช้การเปลี่ยนแปลงตามที่ตั้งค่าไว้
sudo systemctl restart apache2
เมื่อเรียบร้อยแล้ว สามารถทดสอบได้ด้วยการพิมพ์ชื่อโดเมนของคุณ ในที่นี่ทางเราใช้ชื่อว่า demosite2.com หากปรากฎข้อความดังรูป ถือว่าตั้งค่าเรียบร้อยแล้ว