Apache เป็น Web Server ที่ได้รับความนิยมมากที่สุดตัวหนึ่ง สามารถติดตั้งได้ทั้งบน Windows และ Linux และมันยังสามารถทำ Virtual Host ได้อีกด้วย พูดง่าย ๆ ก็คือ ภายใน 1 Host สามารถมีได้หลาย Website หรือหลาย Domain นั่นเอง หากใครใช้ ISPConfig จะเข้าใจได้ไม่ยาก
Get Started
- ทำการ Update และ Upgrade
# apt-get update && apt-get upgrade -y
- ทำการติดตั้ง Package
# apt-get install apache2 -y
- ทำการ Start Service Apache
# service apache2 start
- เข้าไปที่หน้าเว็บ http://localhost/ จะเห็นว่า Root Directory จะอยู่ที่ /var/www/html
- ทำการสร้าง Root Directory สำหรับ Site ที่เราจะสร้าง
# mkdir -p /var/www/virtualhost1.lab.local/public_html
# mkdir -p /var/www/virtualhost2.lab.local/public_html
- ทำการแก้ไข Permission
# chown -R lablocal:lablocal /var/www/virtualhost1.lab.local/public_html
# chown -R lablocal:lablocal /var/www/virtualhost2.lab.local/public_html
# chmod -R 755 /var/www
- ทำการสร้างหน้า Web Page ของ virtualhost1.lab.local
# vi /var/www/virtualhost1.lab.local/public_html/index.html
<html>
<head>
<title>Welcome to virtualhost1.lab.local</title>
</head>
<body>
<h1>Success! The virtualhost1.lab.local virtual host is working!</h1>
</body>
</html>
- ทำการสร้างหน้า Web Page ของ virtualhost2.lab.local
# vi /var/www/virtualhost2.lab.local/public_html/index.html
<html>
<head>
<title>Welcome to virtualhost2.lab.local</title>
</head>
<body>
<h1>Success! The virtualhost2.lab.local virtual host is working!</h1>
</body>
</html>
- ทำการสร้างไฟล์ Virtual Host Config ของ virtualhost1.lab.local
# vi /etc/apache2/sites-available/virtualhost1.lab.local.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName virtualhost1.lab.local
ServerAlias virtualhost1.lab.local
DocumentRoot /var/www/virtualhost1.lab.local/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerAdmin admin@example.com
ServerName virtualhost1.lab.local
ServerAlias virtualhost1.lab.local
DocumentRoot /var/www/virtualhost1.lab.local/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
- ทำการสร้างไฟล์ Virtual Host Config ของ virtualhost2.lab.local
# vi /etc/apache2/sites-available/virtualhost2.lab.local.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName virtualhost2.lab.local
ServerAlias virtualhost2.lab.local
DocumentRoot /var/www/virtualhost2.lab.local/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerAdmin admin@example.com
ServerName virtualhost2.lab.local
ServerAlias virtualhost2.lab.local
DocumentRoot /var/www/virtualhost2.lab.local/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
- หากต้องการทำ Redirect ก็สามารถเขียนลงในไฟล์ Virtual Host Config
<VirtualHost *:80>
...
RedirectPermanent / https://xxx.lab.local/
...
</VirtualHost>
- ทำการ Enable ไฟล์ Virtual Host ของทั้งสอง Site
# a2ensite virtualhost1.lab.local.conf
# a2ensite virtualhost2.lab.local.conf
- ทำการ Restart Service
# service apache2 reload
อ่านเพิ่มเติม : https://do.co/1kaxEAK
Leave a Reply