วิธีการตั้งค่า Virtual Host กับการใช้งานหลายโดเมนบน Ubuntu 20.04

Setting Virtual Host domains Ubuntu20.04

เมื่อใช้เว็บเซิร์ฟเวอร์ Apache คุณสามารถใช้ Virtual Host (คล้ายกับบล็อกเซิร์ฟเวอร์ใน Nginx) เพื่อสรุปรายละเอียดการกำหนดค่าและสร้างโฮสต์มากกว่าหนึ่งโดเมนจากเซิร์ฟเวอร์เดียว ในที่นี่เราจะตั้งค่าโดเมนชื่อ demosite2.com คุณสามารถแทนที่ด้วยชื่อโดเมนของคุณเอง

Apache บน Ubuntu 20.04 มีบล็อกเซิร์ฟเวอร์หนึ่งบล็อกที่เปิดใช้งานตามค่าเริ่มต้นซึ่งกำหนดค่าให้ให้บริการจากไดเร็กทอรี /var/www/html แม้ว่าวิธีนี้จะใช้งานได้ดีกับเว็บไซต์เดียว แต่หากต้องการใช้งานหลายเว็บไซต์ เราต้องสร้างไดเร็กทอรีภายใน /var/www สำหรับเว็บไซต์ your_domain โดยปล่อย /var/www/html ไว้เป็นไดเร็กทอรีเริ่มต้นที่จะให้บริการ  

สร้างไดเร็กทอรีสำหรับ your_domain ในที่นี่ทางเราจะใช้เป็นชื่อว่า demosite2

sudo mkdir /var/www/demosite2

ต่อไป กำหนดความเป็นเจ้าของไดเร็กทอรีด้วยตัวแปรสภาพแวดล้อม $USER

sudo chown -R $USER:$USER /var/www/demosite2

สิทธิ์ของเว็บ root ควรจะถูกหากไม่ได้แก้ไขค่า umask ซึ่งจะตั้งค่าสิทธิ์เริ่มต้นของไฟล์ เพื่อให้แน่ใจว่าสิทธิ์นั้นถูกต้องและอนุญาตให้เจ้าของอ่าน เขียน และเรียกใช้ไฟล์ในขณะที่ให้สิทธิ์เฉพาะการอ่านและดำเนินการแก่กลุ่มและอื่นๆ คุณสามารถป้อนคำสั่งต่อไปนี้

sudo chmod -R 755 /var/www/demosite2

ต่อไป สร้างหน้า index.html ตัวอย่างโดยใช้ nano หรือโปรแกรมอื่นที่คุณถนัด

sudo nano /var/www/demosite2/index.html

ภายในไฟล์ index.html ทางเราจะใส่ตัวอย่างดังต่อไปนี้

<html>
    <head>
        <title>Welcome to Demosite2!</title>
    </head>
    <body>
        <h1>Success!  The Demosite2 virtual host is working!</h1>
    </body>
</html>

จากนั้นบันทึกและปิดไฟล์เมื่อคุณเพิ่มข้อมูลเสร็จเรียบร้อยแล้ว

เพื่อที่จะให้ Apache ทำงานได้เหมาะสมกับเว็บที่จะสร้าง เราจำเป็นต้องมาสร้างไฟล์ใหม่ที่ /etc/apache2/sites-available/demosite2.conf

sudo nano /etc/apache2/sites-available/demosite2.conf

สามารถคัดลอกข้อความด้านล่างไปได้เลย เพียงแต่ต้องแก้ไขชื่อโดเมนเป็นชื่อที่เราต้องการ และอย่าลืมสังเกตว่าเราได้อัปเดต DocumentRoot เป็นไดเร็กทอรีใหม่และ ServerAdmin เป็นอีเมลที่ผู้ดูแลระบบไซต์สามารถเข้าถึงได้ รวมถึงเรายังได้เพิ่มคำสั่งสองคำสั่ง ServerName ซึ่งสร้างโดเมนพื้นฐานที่ควรตรงกับข้อกำหนดของโฮสต์เสมือนนี้ และ ServerAlias ซึ่งกำหนดชื่อเพิ่มเติมที่ควรตรงกันราวกับว่าเป็นชื่อพื้นฐาน 

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

หากต้องการเปิดหรือปิดใช้งานเว็บไซต์เริ่มต้นที่กำหนดไว้ใน 000-default.conf สามารถดำเนินการด้วยคำสั่งดังนี้

เราสามารถเปิดใช้งานเว็บไซต์ด้วยคำสั่ง a2ensite

sudo a2ensite demosite2.conf

ปิดใช้งานไซต์เริ่มต้นที่กำหนดไว้ใน 000-default.conf

sudo a2dissite 000-default.conf

จากนั้นทดสอบว่าเราได้มีการตั้งค่าผิดพลาดในส่วนไหนไหม

sudo apache2ctl configtest

รีสตาร์ท Apache เพื่อใช้การเปลี่ยนแปลงตามที่ตั้งค่าไว้

sudo systemctl reload apache2

เมื่อเรียบร้อยแล้ว สามารถทดสอบได้ด้วยการพิมพ์ชื่อโดเมนของคุณ ในที่นี่ทางเราใช้ชื่อว่า demosite2.com หากปรากฎข้อความดังรูป ถือว่าตั้งค่าเรียบร้อยแล้ว

Was this article helpful?

Related Articles