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

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

ตามค่าเริ่มต้นของ Apache เนื้อหาต่าง ๆ ของเว็บไซต์จะอยู่ที่ตำแหน่ง /var/www/html เป็นหลักแต่จะใช้การกำหนดค่าที่มีอยู่ใน /etc/apache2/sites-available/000-default.conf แทนที่จะแก้ไขไฟล์ที่ตำแหน่ง /var/www/html เราจะต้องสร้าง virtual host ใหม่สำหรับทดสอบ PHP virtual host ช่วยให้สามารถเก็บเว็บไซต์หลายแห่งไว้บนเซิร์ฟเวอร์ Apache เดียวได้ นอกจากนี้ ยังจะสร้างโครงสร้างไดเร็กทอรีภายใน /var/www สำหรับไซต์ demosite2.com โดยปล่อยให้ /var/www/html เป็นไดเร็กทอรีเริ่มต้นที่จะให้บริการ

เริ่มต้นโดยสร้าง root เว็บไดเรกทอรีสำหรับ demosite2.com (อย่าลืมเปลี่ยนเป็นชื่อโดเมนของคุณ)ดังต่อไปนี้

sudo mkdir /var/www/demosite2.com

ถัดมา กำหนดความเป็นเจ้าของไดเร็กทอรีด้วยตัวแปรสภาพแวดล้อม $USER ซึ่งจะอ้างอิงผู้ใช้ระบบปัจจุบันของคุณ

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

จากนั้นเปิดไฟล์กำหนดค่าใหม่ในไดเรกทอรี sites-available ของ Apache โดยใช้โปรแกรมแก้ไขข้อความที่คุณต้องการ โดยที่ทางเราจะใช้ nano

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

เราจะเริ่มสร้างไฟล์เปล่าใหม่ เพิ่มการกำหนดค่าพื้นฐานต่อไปนี้ด้วยชื่อโดเมนของคุณเอง

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

ด้วยการกำหนดค่า Virtual Host นี้ เป็นารแจ้งให้ Apache ให้บริการ your_domain โดยใช้ /var/www/your_domain เป็นไดเรกทอรีหลักของเว็บ หากคุณต้องการทดสอบ Apache โดยไม่ต้องใช้ชื่อโดเมน สามารถลบหรือใส่เครื่องหมายคอมเมนต์ตัวเลือก ServerName และ ServerAlias ​​ได้โดยเพิ่มเครื่องหมายปอนด์ (#) ไว้ที่จุดเริ่มต้นของบรรทัดตัวเลือกแต่ละตัว

บันทึกและปิดไฟล์เมื่อดำเนินการเสร็จ

และให้ใช้ a2ensite เพื่อเปิดใช้งาน virtual host นี้

sudo a2ensite your_domain

อาจต้องการปิดใช้งานเว็บไซต์เริ่มต้นที่ติดตั้งมาพร้อมกับ Apache ซึ่งจำเป็นหากคุณไม่ได้ใช้ชื่อโดเมนที่กำหนดเอง เนื่องจากในกรณีนี้ การกำหนดค่าเริ่มต้นของ Apache จะเขียนทับ virtual host ของคุณ หากต้องการปิดใช้งานเว็บไซต์เริ่มต้นของ Apache ให้เรียกใช้

sudo a2dissite 000-default

เพื่อให้แน่ใจว่าไฟล์การกำหนดค่าของคุณไม่มีข้อผิดพลาด คุณสามารถเรียกใช้

sudo apache2ctl configtest

สุดท้ายให้โหลด Apache ใหม่เพื่อให้การเปลี่ยนแปลงเหล่านี้มีผล

sudo systemctl reload apache2


ต่อมาเราจะทำการ ทดสอบการประมวลผล PHP บนเว็บเซิร์ฟเวอร์
ตอนนี้คุณมีตำแหน่งที่กำหนดเองเพื่อ hostfile และโฟลเดอร์ของเว็บไซต์แล้ว ให้สร้างสคริปต์ทดสอบ PHP เพื่อยืนยันว่า Apache สามารถจัดการและประมวลผลคำขอสำหรับไฟล์ PHP ได้

เริ่มต้นด้วยการสร้างไฟล์ใหม่ชื่อ info.php ภายในโฟลเดอร์หลักของเว็บที่เราต้องการทดสอบ ทางเราใช้ชื่อเว็บว่า demosite2.com 

nano /var/www/demosite2.com/info.php

จากนั้นเปิดไฟล์เปล่า แล้วเพิ่มข้อความต่อไปนี้ซึ่งเป็นโค้ด PHP ลงในไฟล์

<?php
phpinfo();

เมื่อเสร็จสิ้น ให้บันทึกและปิดไฟล์

เพื่อทดสอบสคริปต์ ให้ไปที่เว็บเบราว์เซอร์และเข้าถึงชื่อโดเมนหรือที่อยู่ IP ของเซิร์ฟเวอร์ ตามด้วยชื่อสคริปต์

http://your_domain/info.php

จะได้ผลลัพธ์ดังต่อไปนี้

Was this article helpful?

Related Articles