HOW TO SETUP AN APACHE VIRTUAL HOST ON UBUNTU 14.04 Server
Prerequire
- ก่อนสร้าง vhost ตอนเราติดตั้ง Server มันได้ลง LAMP เรียบร้อยแล้วนะครับ
- ถ้าเรายังไม่ได้ลง LAMP ก็ลงให้เรียบร้อยซะ ตามกระทู้เยอะแยะใน internet นะหาเอง
Step
- สร้าง directory สำหรับ vhost ตัวที่เราจะสร้างใหม่
sudo mkdir /var/www/mysite.com
- สร้างไฟล์สำหรับทดสอบ vhost ไว้รอเลย
sudo echo "<?php phpinfo(); ?>" > /var/www/mysite.com/index.php
- จัดการสิทธิ์การเข้าถึงเว็บไซต์อันนี้ก่อน
sudo chmod -R 705 /var/www/mysite.com
sudo chown -R $USER:$USER /var/www/mysite.com
- หลังจากเตรียมพาธสำหรับ vhost เราแล้วมา คอนฟิกกัน
- สร้างคอนฟิก vhost อันใหม่ของเราโดยสำเนาจาก คอนฟิกเริ่มต้น
- ซึ่งคอนฟิกเริ่มต้นของ Ubuntu 14.04 จะเป็น /etc/apache2/site-available/000-default.conf นะ
- สำเนาด้วยคำสั่ง (แนะนำว่า ให้ตามด้วย .conf จะได้เข้าใจว่าไฟล์นี้คือคอนฟิกไฟล์)
sudo cp /etc/apache2/site-available/000-default.conf /etc/apache2/site-available/mysite.com.conf
- จากนั้นเปิดคอนฟิก vhost ตัวใหม่ของเราขึ้นมา
sudo vi /etc/apache2/site-available/mysite.com.conf
- แก้ไขให้เป็นประมาณนี้นะ และเมื่อเรียบร้อยแล้ว ก็บันทึกไฟล์คอนฟิกซะ
<VirtualHost *:80>
ServerAdmin admin@mysite.com
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/mysite.com
</VirtualHost>
- เปิดใช้ vhost ใหม่ด้วยคำสั่ง
sudo a2ensite mysite.com.conf
sudo service apache2 restart
- ทดสอบ vhost บน linux client โดยแก้ไขไฟล์ /etc/hosts ส่วนบน windows client แก้ไขไฟล์ C:\System32\drivers\etc\hosts เพิ่มประมาณนี้
- <ไอพีเครื่องที่เราคอนฟิก apache vhost นั่นแหละ> mysite.com เช่น
10.100.90.90 mysiste.com
- ที่ client เราเปิด browser ขึ้นมาแล้วพิมพ์
http://mysite.com/
เพิ่มเติม
- ข้อสังเกตุในการสร้างคอนฟิกสำหรับแต่ละ site
- /etc/apache2/site-available/mysite.com.conf
- คอนฟิกไฟล์ site ของเราต้องลงท้ายด้วย .conf หว่า ไม่งั้น a2ensite ไม่ได้นะ not exist file หว่า
- สมมุติเราสร้าง mysite.com เราต้องสร้างเป็น mysite.com.conf
- sudo a2ensite mysite.com หรือ sudo a2ensite mysite.com.conf
- สรุปใช้คำสั่งได้ทั้งสองแบบนะ แต่คอนฟิกต้องลงท้ายด้วย .conf ว่างั้น
- แต่ไม่อยากใส่ .conf ของไฟล์ vhost เราล่ะทำไง อ่านต่อได้เลย คับ
- sudo cp /usr/sbin/a2ensite /usr/sbin/a2ensite.old
- sudo nano /usr/sbin/a2ensite
I just had the same problem. I'd say it has nothing to do with the apache.conf.
a2ensite must have changed - line 532 is the line that enforces the .conf suffix:
else {
$dir = 'sites';
$sffx = '.conf';
$reload = 'reload';
}
If you change it to:
else {
$dir = 'sites';
#$sffx = '.conf';
$sffx = '';
$reload = 'reload';
}
...it will work without any suffix.
Of course you wouldn't want to change the a2ensite script, but changing the conf file's suffix is the correct way.
It's probably just a way of enforcing the ".conf"-suffix.
Ref
- https://www.vultr.com/docs/apache-virtual-hosts-on-ubuntu-14-04-lts
- https://www.godaddy.com/help/how-to-setup-an-apache-virtual-host-on-ubuntu-1404-12381
- http://stackoverflow.com/questions/20591889/site-does-not-exist-error-for-a2ensite
- http://askubuntu.com/questions/450722/why-apache-virtual-hosts-on-ubuntu-14-04-is-not-working
No comments:
Post a Comment