VirtualHost ง่ายๆ สไตล์ Windows ด้วย Apache
การติดตั้ง VirtualHost นี้อยู่บนพื้นฐานการติดตั้งบน WindowsXP ส่วนตัว Windows อื่นๆ ผู้อ่านต้องศึกษาเพิ่มเติมเอง และสำหรับตระกูล Linux ขอติดไว้ก่อนเพราะตอนนี้เครื่องผมยังไม่ได้ลง Linux และไม่ได้เล่นมาหลายเดือนแล้ว และอยู่บนพื้นฐานการติดตั้งเพื่อใช้งานในเครื่องเดียว (เพื่อเป็นแนวทางในการทำ VirtualHost) และจะมีหัวข้อ Advanch,FreeHost ซึ่งจะเป็นการทำในการใช้งานจริงซึ่งท่านจะต้องมีความรู้หลายอย่างเพิ่มเติม เช่น DNS,Apache,NameBaseVirtualHost) อีกอย่างอยู่บนพื่นฐานของ AppServ ครับ ท่านต้องติดตั้ง AppServ เรียบร้อยเสียก่อนครับ
สิ่งที่ต้องมี :
สิ่งที่ต้องมี :
- คอมพิวเตอร์
- WindowsXP *
- AppServ
- Card Lan *
- ความรู้เรื่อง TCP/IP *
* Windows ที่ไม่มีปัญหาคือ WindowsXP ส่วนเวอร์ชั่นอื่นๆ ต้องศึกษาข้อมูลเพิ่มเติมว่าต้อง Set อะไรเพิ่ม หรือจะเจอปัญหาอะไร เช่น XP,2000 อาจจะต้อง Config apache เพิ่ม หรือแก้ไขบางอย่าง
* Card Lan ไม่รู้เกี่ยวหรือป่าว เพราะเครื่องผมมี Cardlan ทุกเครื่อง และ สำหรับ Win XP,2000 อาจจะเจอปัญหาว่า มี Card Lan แต่ไม่ได้ Plug สายแลน ระบบ หรือ service TCP/IP จะไม่ทำงาน (อันนี้เป็น ปัญหาหรือ Bugs ของ windows ให้ศึกษาหรือหาทางแก้เอง) และเคยเห็นกระทู้ที่ว่า ไม่มี CardLan ไม่สามารถติดตั้ง Apache ได้ เพราะ Apache ทำงานบน TCP/IP Port 80
* ความรู้เรื่อง TCP/IP ขี้นอยู่กับว่าท่านจะนำไปทำในระดับไหน ยิ่งเพิ่มระดับยิ่งต้องมีความรู้เพิ่มเติมดังต่อไปนี้
ระดับผู้สนใจ
* Card Lan ไม่รู้เกี่ยวหรือป่าว เพราะเครื่องผมมี Cardlan ทุกเครื่อง และ สำหรับ Win XP,2000 อาจจะเจอปัญหาว่า มี Card Lan แต่ไม่ได้ Plug สายแลน ระบบ หรือ service TCP/IP จะไม่ทำงาน (อันนี้เป็น ปัญหาหรือ Bugs ของ windows ให้ศึกษาหรือหาทางแก้เอง) และเคยเห็นกระทู้ที่ว่า ไม่มี CardLan ไม่สามารถติดตั้ง Apache ได้ เพราะ Apache ทำงานบน TCP/IP Port 80
* ความรู้เรื่อง TCP/IP ขี้นอยู่กับว่าท่านจะนำไปทำในระดับไหน ยิ่งเพิ่มระดับยิ่งต้องมีความรู้เพิ่มเติมดังต่อไปนี้
ระดับผู้สนใจ
- พื้นฐาน (ผู้ที่ติดตั้ง CMS ได้แล้วแต่ต้องการทำ หลายไซต์)
- Advance (ใช้งานในระบบ LAN)
- FreeHost (ใช้งานเป็น FreeHost เล่นๆ ได้เลย)
เริ่มกันเลย
1. เปิด Notepad แล้วพิมพ์ ดังนี้
1. เปิด Notepad แล้วพิมพ์ ดังนี้
โค้ด: |
#ชื่อไซต์อะไรก็ได้ในที่นี้สมมุติว่าชื่อไซต์ soda1.com กะ soda2.com #ชื่อไซต์ต้องไม่มีอยู่จริงเพราะถ้ามีอยู่จริง ท่านจะไม่สามารถเข้าไปในไซต์จริงได้ #เพราะว่ามันจะวนกลับมาหาเครื่องท่าน เช่นถ้าท่านตั้งชื่อว่า http://www.yahoo.com/ เวลาที่ท่าน #ต้องการเข้า net http://www.yahoo.com/ มันจะวิ่งกลับมาที่เครื่องของท่านนะเอง แทนที่จะไปไซต์ #Yahoo จริง # สามารถเพิ่มได้ไม่จำกัดขึ้นอยู่กับว่าท่านจะทำ VirtualHost กี่ไซต์ 127.0.0.1 localhost127.0.0.1 soda1.com 127.0.0.1 soda2.com |
เสร็จแล้ว Save เป็นชื่อไฟล์ HOSTS ไว้ใน C:\WINDOWS\system32\drivers\etc ครับ ระวัง Notepad จะเติม HOSTS.TXT ให้โดยอัตโนมัติ ให้ rename เป็น HOSTS เฉยๆ
2.ทดสอบโดย ping http://www.soda1.com/ และ http://www.soda2.com/ จะต้องได้ผลดังนี้ครับ
2.ทดสอบโดย ping http://www.soda1.com/ และ http://www.soda2.com/ จะต้องได้ผลดังนี้ครับ
โค้ด: |
C:\>ping www.soda1.com Pinging www.soda1.com [127.0.0.1] with 32 bytes Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Ping statistics for 127.0.0.1: Packets: Sent = 4, Received = 4, Lost = 0 (0 Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms C:\>ping www.soda2.com Pinging www.soda2.com [127.0.0.1] with 32 bytes Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Ping statistics for 127.0.0.1: Packets: Sent = 4, Received = 4, Lost = 0 (0 Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms |
ถ้าไม่ได้ ให้ตรวจสอบให้ดีว่า มี ไฟล์ HOST อยู่หรือป่าว
3.แก้ไข ไฟล์ httpd.conf (โดยไปที่ Start -> Programs -> AppServ -> Apache Configure Server -> Edit the Apache httpd.conf Configuration File)
ให้เพิ่ม Code นี้เข้าไป ที่ท้ายสุดของไฟล์
โค้ด: |
NameVirtualHost * <VirtualHost *> ServerName localhost DocumentRoot "C:\AppServ\www" </VirtualHost> <VirtualHost *> ServerName soda1.com DocumentRoot "C:\AppServ\www\soda1" </VirtualHost> <VirtualHost *> ServerName soda2com DocumentRoot "C:\AppServ\www\soda2" </VirtualHost> |
Save ไฟล์
*ตรง ServerName นั้นให้สัมพันธ์กับการตั้งชื่อในไฟล์ HOSTS ส่วน DocumentRoot นั้นก็แล้วแต่ท่านว่า Site ไหน เก็บใน Folder ไหน ให้จำไว้ให้ดี เพราะจะใช้ในข้อต่อไป
4.ไปที่ Folder C:\AppServ\www สร้าง folder ขี้นมาให้สัมพันธ์กันกับข้างต้น
สร้างโฟล์เดอร์ soda1 ใน C:\AppServ\www
สร้างโฟล์เดอร์ soda2 ใน C:\AppServ\www
5.กลับ ไปที่ AppServ ทดสอบ Apache โดยไปที่ Start -> Programs -> AppServ -> Apache Configure Server -> Test the Apache httpd.conf Configuration File )
จะต้องได้ผลดังนี้( ไม่มี Error ) Syntax OK
*ตรง ServerName นั้นให้สัมพันธ์กับการตั้งชื่อในไฟล์ HOSTS ส่วน DocumentRoot นั้นก็แล้วแต่ท่านว่า Site ไหน เก็บใน Folder ไหน ให้จำไว้ให้ดี เพราะจะใช้ในข้อต่อไป
4.ไปที่ Folder C:\AppServ\www สร้าง folder ขี้นมาให้สัมพันธ์กันกับข้างต้น
สร้างโฟล์เดอร์ soda1 ใน C:\AppServ\www
สร้างโฟล์เดอร์ soda2 ใน C:\AppServ\www
5.กลับ ไปที่ AppServ ทดสอบ Apache โดยไปที่ Start -> Programs -> AppServ -> Apache Configure Server -> Test the Apache httpd.conf Configuration File )
จะต้องได้ผลดังนี้( ไม่มี Error ) Syntax OK
โค้ด: |
c:/appserv/apache/conf/httpd.conf: Syntax OK Note the errors or messages above, and press the <ESC> key to exit. 18... |
6.ทดสอบ Apache อีกครั้ง
ใช้ notepad สร้าง html เช่น
ใช้ notepad สร้าง html เช่น
โค้ด: |
<html> My Name's SODA1 </html> โดยทำการบันทึกเก็บไว้ที่ "C:\AppServ\www\soda1\index.html" และ <html> My Name's SODA2 </html> โดยทำการบันทึกเก็บไว้ที่ "C:\AppServ\www\soda2\index.html" |
7. ทดสอบโดย
เปิด IE พิมพ์ url www.soda1.com/ จะต้องได้ My Name's SODA1
และ พิมพ์ url www.soda2.com/ จะต้องได้ My Name's SODA2
ถ้าจะสรุปจริงๆ คือ
1.แก้ไขไฟล์ HOSTS
2.แก้ไขไฟล์ httpd.conf
3.สร้าง Folder ให้ตรงกันเสร็จแล้วครับ VirtualHost
4.และการทำ Nuke ก็แค่ Dup Folder Nuke ทั้งตัว html และ ตัวฐานข้อมูลไป แต่ละไซต์และแก้ config ให้ตรงกันเท่านั้นเอง
** หลังจากแก้ไข httpd.conf แล้วอย่าลืม restart apache ด้วยครับ
ไปที่ Start -> Programs -> AppServ -> Apache Control Server -> Restart
Credit : http://thaiadmin.no-ip.com/
0 comments:
Post a Comment