วิธีการตั้งค่า Apache Virtual Hosts บนเซิร์ฟเวอร์ Ubuntu
บทนำ
เซิร์ฟเวอร์ Apache HTTP เป็นเว็บเซิร์ฟเวอร์แบบโอเพ่นซอร์สที่ได้รับความนิยม ซึ่งมอบความยืดหยุ่น ความสามารถ และการสนับสนุนที่กว้างขวางสำหรับนักพัฒนา การกำหนดค่าเซิร์ฟเวอร์ Apache ไม่ได้เกิดขึ้นในไฟล์เดียวที่เป็นแบบโมโนลิธิก แต่เกิดขึ้นผ่านการออกแบบแบบโมดูลาร์ที่สามารถเพิ่มและแก้ไขไฟล์ใหม่ตามความจำเป็น ภายในการออกแบบแบบโมดูลาร์นี้ คุณสามารถสร้างเว็บไซต์หรือโดเมนแต่ละแห่งที่เรียกว่า virtual host.
การใช้โฮสต์เสมือน หนึ่งอินสแตนซ์ของ Apache สามารถให้บริการหลายเว็บไซต์ได้ แต่ละโดเมนหรือเว็บไซต์แต่ละเว็บไซต์ที่ถูกกำหนดค่าด้วย Apache จะนำผู้เยี่ยมชมไปยังไดเรกทอรีเฉพาะที่เก็บข้อมูลของเว็บไซต์นั้น ซึ่งสามารถทำได้โดยที่ผู้เยี่ยมชมไม่รู้ว่าเซิร์ฟเวอร์เดียวกันยังรับผิดชอบเว็บไซต์อื่นๆ ด้วย ระบบนี้สามารถขยายได้โดยไม่มีข้อจำกัดทางซอฟต์แวร์ตราบเท่าที่เซิร์ฟเวอร์ของคุณสามารถรองรับภาระงานได้
ในคู่มือนี้ คุณจะได้ตั้งค่าโฮสต์เสมือนของ Apache บนเซิร์ฟเวอร์ Ubuntu ในระหว่างกระบวนการนี้ คุณจะได้เรียนรู้วิธีให้บริการเนื้อหาที่แตกต่างกันแก่ผู้เข้าชมแต่ละคน ขึ้นอยู่กับโดเมนที่พวกเขาร้องขอ โดยการสร้างเว็บไซต์โฮสต์เสมือนสองเว็บไซต์
ตรวจสอบแล้วกับเวอร์ชัน Ubuntu ล่าสุด: ขั้นตอนและคำสั่งในบทแนะนำนี้ได้รับการยืนยันแล้วบน Ubuntu 20.04 LTS, 22.04 LTS และ 24.04 LTS การจัดวางการตั้งค่า Apache (sites-available, sites-enabled, a2ensite, a2dissite) และโครงสร้างไดเรกทอรีที่ใช้ที่นี่เหมือนกันในทุกเวอร์ชันเหล่านี้
ประเด็นสำคัญ
- โฮสต์เสมือน ช่วยให้ Apache หนึ่งตัวสามารถให้บริการหลายเว็บไซต์ได้ โดยแต่ละโดเมนจะชี้ไปยังรูทเอกสารของตัวเอง
- คุณสร้างโฟลเดอร์ภายใต้
/var/wwwสำหรับแต่ละเว็บไซต์ (ตัวอย่างเช่น/var/www/your_domain/public_html) และตั้งความเป็นเจ้าของและสิทธิ์การเข้าถึงเพื่อให้เว็บเซิร์ฟเวอร์สามารถอ่านไฟล์ได้ และผู้ใช้ของคุณสามารถแก้ไขไฟล์ได้ - แต่ละไซต์จะมีไฟล์การตั้งค่าของตัวเองใน
/etc/apache2/sites-available/ที่มีServerName,ServerAliasและDocumentRoot - ใช้
a2ensiteและa2dissiteเพื่อเปิดใช้งานหรือปิดใช้งานไซต์ จากนั้นรีโหลดหรือรีสตาร์ท Apache เพื่อให้การเปลี่ยนแปลงมีผล - คุณสามารถทดสอบโดยไม่ต้องใช้ DNS จริงได้โดยการแก้ไขไฟล์
hostsบนเครื่องของคุณให้ชี้โดเมนตัวอย่างไปยัง IP ของเซิร์ฟเวอร์
คุณสมบัติพื้นฐาน
ก่อนที่คุณจะเริ่มบทเรียนนี้ คุณจะต้องมี:
- เซิร์ฟเวอร์ Ubuntu ที่มีผู้ใช้แบบไม่ใช่ root ที่มีสิทธิ์ sudo คุณสามารถใช้คู่มือการตั้งค่าเซิร์ฟเวอร์เริ่มต้นกับ Ubuntu ของเราเพื่อตั้งค่านี้ได้
- ติดตั้ง Apache บนเซิร์ฟเวอร์แล้ว คุณสามารถเรียนรู้วิธีการได้โดยทำตามขั้นตอนที่ 1-3 ในบทแนะนำการติดตั้ง Apache Web Server บน Ubuntu ของเรา
หากคุณกำลังใช้ Linux-Console.net คุณสามารถเรียนรู้วิธีการตั้งค่าโดเมนโดยทำตามเอกสารผลิตภัณฑ์ของเรา วิธีการเพิ่มและตั้งค่าโดเมน
ในการทำบทเรียนนี้ให้สำเร็จ คุณจะต้องมีโดเมนสองโดเมนที่มี:
- ระเบียน A สำหรับ your_domain ชี้ไปที่ที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ของคุณ
- ระเบียน A ที่มี www.your_domain ชี้ไปที่ที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ของคุณ
สำหรับผู้ให้บริการรายอื่น โปรดดูเอกสารผลิตภัณฑ์ที่เกี่ยวข้องของพวกเขา
หมายเหตุ: หากคุณ ไม่มี โดเมนในขณะนี้ คุณสามารถใช้ค่าสำหรับทดสอบบนคอมพิวเตอร์ของคุณได้ ขั้นตอนที่ 6 ของบทแนะนำนี้จะแสดงวิธีการทดสอบและกำหนดค่าค่าสำหรับทดสอบของคุณ ซึ่งจะช่วยให้คุณตรวจสอบการตั้งค่าของคุณได้แม้ว่าคอนเทนต์ของคุณจะไม่สามารถเข้าถึงผู้เยี่ยมชมอื่น ๆ ผ่านชื่อโดเมนได้
ขั้นตอนที่ 1 — การสร้างโครงสร้างไดเรกทอรี
ขั้นตอนแรกคือการสร้างโครงสร้างไดเรกทอรีที่จะเก็บข้อมูลเว็บไซต์ที่คุณจะให้บริการแก่ผู้เข้าชม
ราก เอกสาร ของคุณ ซึ่งเป็นไดเรกทอรีระดับบนสุดที่ Apache ใช้ค้นหาเนื้อหาเพื่อให้บริการ จะถูกตั้งไปยังไดเรกทอรีย่อยภายใต้ไดเรกทอรี /var/www คุณจะสร้างไดเรกทอรีที่นี่สำหรับแต่ละโฮสต์เสมือน
ภายในแต่ละไดเรกทอรีเหล่านี้ คุณจะสร้างไดเรกทอรี public_html ไดเรกทอรี public_html จะประกอบด้วยเนื้อหาที่จะให้บริการแก่ผู้เข้าชม ไดเรกทอรีหลัก ซึ่งในที่นี้ถูกเรียกว่า your_domain_1 และ your_domain_2 จะเก็บสคริปต์และโค้ดแอปพลิเคชันเพื่อสนับสนุนเนื้อหาเว็บ
ใช้คำสั่งเหล่านี้ พร้อมกับชื่อโดเมนของคุณเอง เพื่อสร้างไดเรกทอรีของคุณ:
sudo mkdir -p /var/www/your_domain_1/public_html
sudo mkdir -p /var/www/your_domain_2/public_htmlอย่าลืมเปลี่ยน your_domain_1 และ your_domain_2 เป็นโดเมนของคุณเอง ตัวอย่างเช่น หากหนึ่งในโดเมนของคุณคือ example.com คุณจะสร้างโครงสร้างไดเรกทอรีดังนี้: /var/www/example.com/public_html
ขั้นตอนที่ 2 — การให้สิทธิ์
คุณได้สร้างโครงสร้างไดเร็กทอรีสำหรับไฟล์ของคุณแล้ว แต่ไฟล์เหล่านั้นเป็นของผู้ใช้ root หากคุณต้องการให้ผู้ใช้ปกติของคุณสามารถแก้ไขไฟล์ในไดเร็กทอรีเว็บเหล่านี้ได้ คุณสามารถเปลี่ยนเจ้าของด้วยคำสั่งเหล่านี้:
sudo chown -R $USER:$USER /var/www/your_domain_1/public_html
sudo chown -R $USER:$USER /var/www/your_domain_2/public_htmlตัวแปร $USER จะรับค่าของผู้ใช้ที่คุณกำลังล็อกอินอยู่เมื่อคุณกด ENTER ด้วยวิธีนี้ ผู้ใช้ปกติจะเป็นเจ้าของไดเรกทอรีย่อย public_html ที่คุณจะใช้เก็บเนื้อหาของคุณ
คุณควรปรับสิทธิ์ของคุณด้วยเพื่อให้แน่ใจว่าการเข้าถึงแบบอ่านอนุญาตสำหรับไดเรกทอรีเว็บทั่วไปและไฟล์และโฟลเดอร์ทั้งหมดที่อยู่ภายใน เพื่อให้หน้าเว็บสามารถให้บริการได้อย่างถูกต้อง:
sudo chmod -R 755 /var/wwwตอนนี้เว็บเซิร์ฟเวอร์ของคุณมีสิทธิ์ในการให้บริการเนื้อหาแล้ว และผู้ใช้ของคุณควรสามารถสร้างเนื้อหาภายในโฟลเดอร์ที่จำเป็น ขั้นตอนต่อไปคือการสร้างเนื้อหาสำหรับเว็บไซต์โฮสต์เสมือนของคุณ
ขั้นตอนที่ 3 — การสร้างหน้าเริ่มต้นสำหรับโฮสต์เสมือนแต่ละตัว
เมื่อโครงสร้างไดเรกทอรีของคุณพร้อมแล้ว คุณสามารถเริ่มมุ่งเน้นไปที่แต่ละเว็บไซต์ของโฮสต์เสมือนแต่ละรายการและเนื้อหาภายในเว็บไซต์นั้น เริ่มโดยการสร้างหน้า index.html สำหรับเว็บไซต์แรกของคุณ your_domain_1
เปิดและสร้างไฟล์ index.html ด้วยโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ ตัวอย่างนี้ใช้ nano:
nano /var/www/your_domain_1/public_html/index.htmlภายในไฟล์นี้ ให้สร้างไฟล์ HTML ที่บอกผู้เข้าชมว่าพวกเขากำลังเชื่อมต่อกับเว็บไซต์ใด:
<html>
<head>
<title>Welcome to your_domain_1!</title>
</head>
<body>
<h1>Success! The your_domain_1 virtual host is working!</h1>
</body>
</html>เพื่อบันทึกและปิดไฟล์ใน nano เริ่มต้นโดยการกด CTRL+X กด Y เมื่อมีข้อความถามให้บันทึกไฟล์ จากนั้นกด ENTER เมื่อเสร็จสิ้นเพื่อออก
ต่อไป คัดลอกไฟล์นี้เพื่อใช้เป็นฐานสำหรับเว็บไซต์ที่สองของคุณโดยพิมพ์:
cp /var/www/your_domain_1/public_html/index.html /var/www/your_domain_2/public_html/index.htmlจากนั้นเปิดไฟล์ใหม่นี้และแก้ไขข้อมูลที่เกี่ยวข้องโดยใช้โปรแกรมแก้ไขข้อความของคุณเหมือนก่อน:
nano /var/www/your_domain_2/public_html/index.html<html>
<head>
<title>Welcome to your_domain_2!</title>
</head>
<body> <h1>Success! The your_domain_2 virtual host is working!</h1>
</body>
</html>
บันทึกและปิดไฟล์นี้ ตอนนี้คุณมีหนึ่งหน้าสำหรับแต่ละไซต์ที่คุณสามารถใช้เพื่อทดสอบการตั้งค่าโฮสต์เสมือน
ขั้นตอนที่ 4 — การสร้างไฟล์โฮสต์เสมือนใหม่
ไฟล์โฮสต์เสมือนระบุการตั้งค่าจริงของโฮสต์เสมือนของคุณและควบคุมวิธีที่เว็บเซิร์ฟเวอร์ Apache ตอบสนองต่อคำขอจากโดเมนต่าง ๆ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจัดวางและตัวเลือกทั่วไปของ Apache โปรดดูวิธีการกำหนดค่าเว็บเซิร์ฟเวอร์ Apache บน VPS ของ Ubuntu หรือ Debian
Apache มาพร้อมกับไฟล์โฮสต์เสมือนเริ่มต้นที่เรียกว่า 000-default.conf. คุณสามารถคัดลอกไฟล์นี้เพื่อสร้างไฟล์โฮสต์เสมือนสำหรับแต่ละโดเมนของคุณได้
คัดลอกไฟล์การตั้งค่าเริ่มต้นไปยังโดเมนแรก:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/your_domain_1.confโปรดทราบว่าการตั้งค่าเริ่มต้นของ Ubuntu ต้องการให้ไฟล์โฮสต์เสมือนแต่ละไฟล์ลงท้ายด้วย .conf
เปิดไฟล์ใหม่ในตัวแก้ไขข้อความที่คุณต้องการด้วยสิทธิ์ root:
sudo nano /etc/apache2/sites-available/your_domain_1.confเมื่อเอาความคิดเห็นออกแล้ว ไฟล์จะมีลักษณะคล้ายกับนี้:
<VirtualHost *:80>
...
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
...
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>ภายในไฟล์นี้ ปรับแต่งรายการสำหรับโดเมนแรกของคุณและเพิ่มคำสั่งเพิ่มเติมบางอย่าง ส่วนของโฮสต์เสมือนนี้ตรงกับคำร้องใดๆ ที่ทำบนพอร์ต 80 ซึ่งเป็นพอร์ต HTTP เริ่มต้น
ก่อนอื่น เปลี่ยนคำสั่ง ServerAdmin เป็นอีเมลที่ผู้ดูแลเว็บไซต์สามารถรับอีเมลได้:
ServerAdmin admin@your_domain_1หลังจากนี้ ให้เพิ่มคำสั่งสองข้อเพิ่มเติม ข้อแรกเรียกว่า ServerName ซึ่งกำหนดโดเมนหลักสำหรับการกำหนดโฮสต์เสมือน ข้อที่สองเรียกว่า ServerAlias กำหนดชื่อเพิ่มเติมที่ควรจับคู่เหมือนกับชื่อหลัก ซึ่งมีประโยชน์ในการจับคู่โฮสต์เพิ่มเติมที่คุณกำหนด ตัวอย่างเช่น หากคุณตั้งค่าคำสั่ง ServerName เป็น example.com คุณสามารถกำหนด ServerAlias เป็น www.example.com และทั้งสองจะชี้ไปที่ที่อยู่ IP ของเซิร์ฟเวอร์นี้
เพิ่มคำสั่งสองข้อเหล่านี้ลงในไฟล์การกำหนดค่าของคุณหลังบรรทัด ServerAdmin:
<VirtualHost *:80>
...
ServerAdmin admin@your_domain_1
ServerName your_domain_1
ServerAlias www.your_domain_1
DocumentRoot /var/www/html
...
</VirtualHost>ต่อไป ให้เปลี่ยนตำแหน่งไฟล์โฮสต์เสมือนของคุณสำหรับรูทเอกสารของโดเมนนี้ แก้ไขคำสั่ง DocumentRoot ให้ชี้ไปยังไดเรกทอรีที่คุณสร้างขึ้นสำหรับโฮสต์นี้:
DocumentRoot /var/www/your_domain_1/public_htmlนี่คือตัวอย่างไฟล์โฮสต์เสมือนพร้อมการปรับเปลี่ยนทั้งหมดที่ทำข้างต้น:
<VirtualHost *:80>
...
ServerAdmin admin@your_domain_1
ServerName your_domain_1
ServerAlias www.your_domain_1
DocumentRoot /var/www/your_domain_1/public_html
...
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
...
</VirtualHost>บันทึกและปิดไฟล์
สร้างไฟล์การกำหนดค่าลำดับที่สองของคุณโดยคัดลอกไฟล์จากไซต์โฮสต์เสมือนแรกของคุณ:
sudo cp /etc/apache2/sites-available/your_domain_1.conf /etc/apache2/sites-available/your_domain_2.confเปิดไฟล์ใหม่ในโปรแกรมแก้ไขที่คุณชื่นชอบ:
sudo nano /etc/apache2/sites-available/your_domain_2.confตอนนี้คุณจำเป็นต้องปรับข้อมูลทุกชิ้นให้เกี่ยวข้องกับโดเมนที่สองของคุณ เมื่อเสร็จแล้ว มันควรจะดูเหมือนดังนี้:
<VirtualHost *:80>
...
ServerAdmin admin@your_domain_2
ServerName your_domain_2
ServerAlias www.your_domain_2
DocumentRoot /var/www/your_domain_2/public_html
...
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
...
</VirtualHost>บันทึกและปิดไฟล์เมื่อคุณทำเสร็จแล้ว
ขั้นตอนที่ 5 — การเปิดใช้งานไฟล์โฮสต์เสมือนใหม่
ตอนนี้ที่คุณได้สร้างไฟล์โฮสต์เสมือนของคุณแล้ว คุณต้องเปิดใช้งานไฟล์เหล่านั้น Apache มีเครื่องมือต่าง ๆ ที่ช่วยให้คุณสามารถทำสิ่งนี้ได้
คุณจะใช้เครื่องมือ a2ensite เพื่อเปิดใช้งานเว็บไซต์แต่ละเว็บของคุณ หากคุณต้องการอ่านข้อมูลเพิ่มเติมเกี่ยวกับสคริปต์นี้ คุณสามารถดูที่หน้าแมนเพจของ a2ensite
ใช้คำสั่งต่อไปนี้เพื่อเปิดใช้งานเว็บไซต์โฮสต์เสมือนของคุณ:
sudo a2ensite your_domain_1.conf
sudo a2ensite your_domain_2.confจะมีผลลัพธ์สำหรับทั้งสองไซต์ คล้ายกับตัวอย่างด้านล่าง ซึ่งเตือนให้คุณรีโหลดเซิร์ฟเวอร์ Apache ของคุณ:
Enabling site example.com.
To activate the new configuration, you need to run:
systemctl reload apache2ก่อนที่จะโหลดเซิร์ฟเวอร์ของคุณใหม่ ให้ปิดไซต์เริ่มต้นที่กำหนดไว้ใน 000-default.conf โดยใช้คำสั่ง a2dissite:
sudo a2dissite 000-default.confSite 000-default disabled.
To activate the new configuration, you need to run:
systemctl reload apache2ต่อไป ทดสอบข้อผิดพลาดของการตั้งค่า:
sudo apache2ctl configtestคุณควรได้รับผลลัพธ์ดังต่อไปนี้:
. . .
Syntax OKเมื่อคุณทำเสร็จแล้ว ให้รีสตาร์ท Apache เพื่อให้การเปลี่ยนแปลงเหล่านี้มีผล
sudo systemctl restart apache2คุณสามารถตรวจสอบสถานะของเซิร์ฟเวอร์หลังจากทำการเปลี่ยนแปลงทั้งหมดแล้วด้วยคำสั่งนี้ได้เช่นกัน:
sudo systemctl status apache2ตอนนี้เซิร์ฟเวอร์ของคุณควรได้รับการตั้งค่าให้ให้บริการเว็บไซต์สองเว็บไซต์แล้ว หากคุณกำลังใช้ชื่อโดเมนจริง คุณสามารถข้ามขั้นตอนที่ 6 แล้วไปยังขั้นตอนที่ 7 ได้ หากคุณกำลังทดสอบการตั้งค่าของคุณในเครื่อง ให้ทำตามขั้นตอนที่ 6 เพื่อเรียนรู้วิธีทดสอบการตั้งค่าของคุณโดยใช้คอมพิวเตอร์ท้องถิ่น
ขั้นตอนที่ 6 — (ไม่บังคับ) การตั้งค่าไฟล์โฮสต์ในเครื่อง
ถ้าคุณยังไม่ได้ใช้ชื่อโดเมนจริงที่คุณเป็นเจ้าของในการทดสอบขั้นตอนนี้ และใช้โดเมนตัวอย่างแทน คุณยังสามารถทดสอบการทำงานของเว็บไซต์โฮสต์เสมือนของคุณได้โดยการแก้ไขไฟล์ hosts บนคอมพิวเตอร์ของคุณชั่วคราว วิธีนี้จะดักจับคำขอสำหรับโดเมนที่คุณกำหนดค่าไว้และชี้ไปยังเซิร์ฟเวอร์ส่วนตัวเสมือน (VPS) ของคุณ เหมือนกับที่ระบบ DNS จะทำหากคุณใช้โดเมนที่ลงทะเบียนแล้ว วิธีนี้จะใช้ได้เฉพาะจากคอมพิวเตอร์ของคุณและมีไว้เพื่อทดสอบเท่านั้น
ตรวจสอบให้แน่ใจว่าคุณกำลังดำเนินการบนคอมพิวเตอร์ท้องถิ่นของคุณสำหรับขั้นตอนเหล่านี้ ไม่ใช่เซิร์ฟเวอร์ VPS ของคุณ คุณจำเป็นต้องทราบรหัสผ่านผู้ดูแลระบบของคอมพิวเตอร์หรือเป็นสมาชิกของกลุ่มผู้ดูแลระบบ
หากคุณกำลังใช้คอมพิวเตอร์ Mac หรือ Linux ให้แก้ไขไฟล์ท้องถิ่นของคุณด้วยสิทธิ์ผู้ดูแลระบบโดยพิมพ์:
sudo nano /etc/hostsถ้าคุณใช้เครื่อง Windows ให้เปิด Command Prompt แล้วพิมพ์:
notepad %windir%\system32\drivers\etc\hostsรายละเอียดที่คุณต้องเพิ่มคือที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ของคุณ ตามด้วยโดเมนที่คุณต้องการใช้เพื่อเข้าถึงเซิร์ฟเวอร์นั้น โดยใช้โดเมนที่ใช้ในคู่มือนี้ และแทนที่ IP เซิร์ฟเวอร์ของคุณในข้อความ your_server_IP ไฟล์ของคุณควรมีลักษณะดังนี้:
127.0.0.1 localhost
127.0.1.1 guest-desktop
your_server_IP your_domain_1
your_server_IP your_domain_2นี่จะกำหนดเส้นทางคำขอใด ๆ สำหรับโดเมนของคุณสองโดเมนบนคอมพิวเตอร์ของคุณและส่งไปยังเซิร์ฟเวอร์ของคุณที่ที่อยู่ IP ที่กำหนด
บันทึกและปิดไฟล์
ขั้นตอนที่ 7 — การทดสอบผลลัพธ์ของคุณ
ตอนนี้ที่คุณได้ตั้งค่าโฮสต์เสมือนของคุณแล้ว คุณสามารถทดสอบการตั้งค่าของคุณโดยไปที่โดเมนที่คุณตั้งค่าไว้ในเว็บเบราว์เซอร์ของคุณ:
http://your_domain_1คุณยังสามารถไปที่หน้าผู้ให้บริการโฮสต์ที่สองของคุณและดูไฟล์ที่คุณสร้างไว้สำหรับเว็บไซต์ที่สองของคุณได้:
http://your_domain_2หากทั้งสองเว็บไซต์นี้ทำงานตามที่คาดไว้ แสดงว่าคุณได้ตั้งค่าโฮสต์เสมือนสองแห่งบนเซิร์ฟเวอร์เดียวสำเร็จแล้ว
หมายเหตุ: หากคุณได้ปรับไฟล์ hosts ของคอมพิวเตอร์ท้องถิ่นของคุณ เช่น ในขั้นตอนที่ 6 ของบทแนะนำนี้ คุณอาจต้องการลบบรรทัดที่เพิ่มเข้าไปหลังจากที่คุณยืนยันแล้วว่าการตั้งค่าของคุณทำงานได้ สิ่งนี้จะป้องกันไม่ให้ไฟล์ hosts ของคุณเต็มไปด้วยรายการที่ไม่จำเป็นอีกต่อไป
คำถามที่พบบ่อย
1. Apache Virtual Hosts คืออะไร?
Apache Virtual Hosts เป็นวิธีการรันเว็บไซต์มากกว่าหนึ่งเว็บไซต์บนเซิร์ฟเวอร์ Apache เดียว แต่ละโฮสต์เสมือนจะมีโดเมนของตัวเอง (หรือซับโดเมน) โฟลเดอร์เอกสารหลัก และการตั้งค่าของตัวเอง ผู้เยี่ยมชมจะเห็นเฉพาะเว็บไซต์สำหรับโดเมนที่พวกเขาขอเท่านั้น พวกเขาจะไม่เห็นว่าเว็บไซต์อื่น ๆ อยู่บนเซิร์ฟเวอร์เดียวกัน
2. Apache สามารถจัดการโฮสต์เสมือนกี่รายการได้?
Apache ไม่มีข้อจำกัดเกี่ยวกับจำนวนโฮสต์เสมือน คุณสามารถเพิ่มได้มากเท่าที่ทรัพยากรของเซิร์ฟเวอร์ของคุณรองรับ เว็บไซต์ใหม่แต่ละเว็บไซต์ต้องมีไฟล์คอนฟิกของตัวเองใน /etc/apache2/sites-available/ ไดเรกทอรีของตัวเองภายใต้ /var/www และจากนั้นคุณจึงเปิดใช้งานด้วย a2ensite และรีโหลด Apache
3. ความแตกต่างระหว่าง ServerName และ ServerAlias คืออะไร?
คำสั่ง ServerName และ ServerAlias ระบุชื่อโฮสต์ที่ Apache ควรตอบสนองสำหรับแต่ละโฮสต์เสมือน แต่มีวัตถุประสงค์ที่แตกต่างกันเล็กน้อย:
| คำสั่ง | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| ชื่อโฮสต์หลักและเป็นทางการสำหรับโฮสต์เสมือน Apache จะจับคูชื่อนี้อย่างตรงตามตัวอักษร | |
| ชื่อโฮสต์ทางเลือกที่ชี้ไปยังโฮสต์เสมือนนี้ด้วย รวมถึงไวด์การ์ดด้วย | |
มันทำงานอย่างไร?
- ใช้
ServerNameสำหรับโดเมนหลัก - ใช้
ServerAliasสำหรับชื่อโฮสต์อื่นๆ (เช่น เวอร์ชันwww.หรือซับโดเมน) ที่ควรแสดงเนื้อหาเว็บไซต์เดียวกัน
คำขอใด ๆ ที่ตรงกับ ServerName หรือรายการ ServerAlias ใด ๆ จะถูกให้บริการโดยโฮสต์เสมือนนั้น สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารทางการของ Apache เกี่ยวกับโฮสต์เสมือน
4. ฉันจำเป็นต้องมีชื่อโดเมนสำหรับโฮสต์เสมือนหรือไม่?
คุณไม่จำเป็นต้องมีโดเมนที่ลงทะเบียนเพื่อทำตามคำแนะนำนี้ คุณสามารถใช้ชื่อโฮสต์ตัวอย่างและชี้ไปยังเซิร์ฟเวอร์ของคุณโดยแก้ไขไฟล์ hosts บนคอมพิวเตอร์ของคุณ (ดูขั้นตอนที่ 6) สำหรับเว็บไซต์ที่ผู้อื่นจะเข้าถึงผ่านอินเทอร์เน็ต คุณจะต้องมีโดเมนจริงและระเบียน DNS ที่ชี้ไปยังเซิร์ฟเวอร์ของคุณ หากคุณใช้ Linux-Console.net คุณสามารถเพิ่มและจัดการโดเมนในแผงควบคุมได้; ดูคำแนะนำ DNS แบบรวดเร็วของเราสำหรับวิธีการเพิ่มโดเมน
5. ไฟล์โฮสต์เสมือนของ Apache เก็บอยู่ที่ไหน?
บน Ubuntu และ Debian การตั้งค่าโฮสต์เสมือนจะอยู่ที่ /etc/apache2/sites-available/ เว็บไซต์แต่ละเว็บจะมีไฟล์ .conf อยู่ที่นั่น (เช่น example.com.conf) การเปิดใช้งานเว็บไซต์ด้วย a2ensite จะเพิ่มลิงก์เชื่อมโยงใน /etc/apache2/sites-enabled/ ที่ชี้ไปยังไฟล์นั้น เว็บไซต์เริ่มต้นที่ตอบสนองเมื่อไม่มีโฮสต์อื่นตรงกับคือ 000-default.conf
บทสรุป
ตอนนี้คุณมีเซิฟเวอร์เดียวที่ดูแลโดเมนสองชื่อแยกกัน คุณสามารถขยายกระบวนการนี้ได้โดยทำตามขั้นตอนที่เราได้อธิบายไว้ข้างต้นเพื่อเพิ่มโฮสต์เสมือนเพิ่มเติม ไม่มีข้อจำกัดด้านซอฟต์แวร์สำหรับจำนวนโดเมนที่ Apache สามารถจัดการได้ ดังนั้นคุณสามารถสร้างโฮสต์เสมือนจำนวนเท่าใดก็ได้ตามที่เซิฟเวอร์ของคุณสามารถรองรับได้
ขั้นตอนถัดไปและทรัพยากรที่เกี่ยวข้อง
- ปรับความปลอดภัย Apache และเพิ่ม HTTPS: หลังจากที่โฮสต์เสมือนทำงานได้แล้ว คุณสามารถเพิ่ม TLS ด้วยวิธีการรักษาความปลอดภัย Apache ด้วย Let’s Encrypt บน Ubuntu และปรับแต่งเซิร์ฟเวอร์โดยใช้วิธีการกำหนดค่า Apache Web Server บน Ubuntu หรือ Debian VPS
- สแตก LAMP แบบสมบูรณ์: หากต้องการเพิ่ม MySQL และ PHP บนเซิร์ฟเวอร์ Ubuntu เดียวกัน ให้ทำตามวิธีติดตั้ง LAMP Stack บน Ubuntu
- ผลิตภัณฑ์ของ Linux-Console.net: ใช้ Droplets เพื่อรัน Ubuntu และ Apache และใช้ DNS เพื่อจัดการระเบียนโดเมนและชี้โดเมนของคุณไปที่เซิร์ฟเวอร์ เอกสารผลิตภัณฑ์: เพิ่มโดเมน (เริ่มต้นใช้งาน DNS)
ขอบคุณที่เรียนรู้ร่วมกับชุมชน Linux-Console.net


