พื้นฐาน Joomla

ว่าด้วยเรื่อง Group ของ Joomla
ในบทความที่แล้ว ผมได้กล่าวถึงการสร้างผู้ใช้งานและการติดต่อไป ในตอนนี้จะกล่าวถึงการกำหนด Group ข...

เทคนิค Joomla

แก้วันที่ผิดใน JComment
พอดีว่า มีผู้เยี่ยมชมได้ Comment ถามมาครับ ว่าวิธีจะแก้วันที่แสดงผิดพลาดใน JComment อย่างไร ซึ่...

แนะนำ Extension

ข้อความวิ่ง Marquee Text
รู้อะไรไหมครับ ว่าผมเพียงแค่ต้องการจะหาโมดูลซักตัวที่ทำให้ข้อความวิ่งเลื่อนไปมาได้ ผมต้องแทบพลิ...
( 5 Votes )
Virtual Host Apacheจากบทความที่ได้ติดตั้งและใช้งานโปรแกรม AppServ ไป ซึ่งภายในโปรแกรมนั้นก็มีโปรแกรมจำลอง Web Server บรรจุอยู่ โดยใช้ Apache ซึ่งปกติแล้วจะเรียกใช้งานผ่านทาง Web Browser ได้เพียงแค่ localhost เท่านั้น แต่จากนี้เราจะเรียกใช้งานโดยใช้ URL แบบโดเมนเนมเต็ม ๆ กัน

การสร้างเว็บไซต์โดยใช้ Apache นั้น หากไม่คิดอะไรมากเมื่อมีการสร้างเว็บไซต์หลายเว็บไซต์ในเครื่องคอมพิวเตอร์จำลอง ก็จะเป็นการสร้าง Sub Folder ซ้อนกันไป เวลาเรียกใช้งานก็จะกลายเป็น localhost/web1 หรือ localhost/web2 ทำนองนี้กันใช่ไหม แต่มันก็มีบางกรณีที่เราจะทำการสร้างเว็บไซต์ในเครื่องตนเองก่อนและพร้อมที่จะนำเว็บไซต์ในเครื่อง Web Server จำลองขึ้นสู่โฮสจริง ก็จะต้องมานั่งแก้ไข Path URL กันใหม่ทั้งหมด จะดีกว่าไหม ถ้าเราสามารถเรียกชื่อเว็บไซต์โดยใช้โดเมนเนมที่เราจะใช้งานจริงภายในเครื่องตัวเองได้ชั่วคราว

ก่อนอื่นต้องมาทำความเข้าใจกันก่อนว่า หลังจากการทำเทคนิคนี้ขึ้นมาแล้ว ทำไมมันจึงใช้งานได้ นั่นก็สามารถอธิบายได้ง่าย ๆ ว่า การเรียกชื่อโดเมนเนมใด ๆ ก็ตาม โดยปกติแล้วระบบปฏิบัติการจะไปทำการค้นหาชื่อโดเมนเนมดังกล่าวในเครื่องของเราก่อน ถ้าเครื่องของเราไม่สามารถตอบได้ว่าโดเมนเนมที่เรียกนั้น มี IP Address ปลายทางเป็นที่ใด ก็จะไปทำการถามจาก DNS Server อีกที ดังนั้นปกติที่เราใช้งานเว็บไซต์และเรียก URL กัน กระบวนการนี้ก็เกิดขึ้นภายในเครื่องของเราแล้ว และท้ายสุดเครื่องของเราก็จะไปถามชื่อโดเมนเนมนี้จาก DNS Server ของ ISP เพื่อค้นหาว่า URL ที่เราเรียกนั้นมี IP Address ปลายทางเป็นที่ใด

ดังนั้น ก่อนที่กระบวนการนี้จะหลุดออกไปนอกเครื่องของเรา เราก็มากำหนดให้มันสามารถตอบโจทย์นี้ได้ทันทีว่า เมื่เราเรียกใช้งานโดเมนเนม URL นี้ ให้ได้รับคำตอบเป็นเครื่อง Web Server จำลองของเราได้เองทันที , คำถามคือ แล้วมันจะไปค้นหาอะไรในเครื่องของเรา คำตอบคือ ไฟล์ hosts ครับ ตามตำแหน่งดังนี้

Virtual Host Apache

ในไฟล์นี้ ผมจะระบุไปว่า web1.com และ web2.com นั้นคือ IP Address 127.0.0.1 แล้วก็ Save ทับไปเลย ยังไม่จบ ในเมื่อเครื่องเรารับทราบแล้วว่าสองโดเมนเนมนี้มีปลายทางเป็นเครื่องของเราเอง เราก็ต้องไปตั้งค่าให้กับ Apache ให้รับรู้ถึงการเรียกหาโดเมนเนมดังกล่าวด้วย การคอนฟิกมีอยู่ 2 จุดครับ

จุดที่ 1 ภายใต้โฟลเดอร์ที่ได้ทำการติดตั้งโปรแกรม AppServ ลงไป ก็จะมีโฟลเดอร์การทำงานของ Apache อยู่ในภายใต้นี้ด้วย โดยจะแก้ไขไฟล์ httpd.conf ให้ค้นหาคำว่า Virtual hosts แล้วทำการเอาเครื่องหมายชาร์ป ( # ) ออกไปในบรรทัด Include conf/extra/httpd-vhosts.conf ซึ่งเป็นการเปิดใช้งานคุณสมบัติ Virtual Host โดยจะทำการเรียกไฟล์ httpd-vhosts.conf เข้ามาประมวลผลด้วย แล้วก็ Save กลับไป

Virtual Host Apache

จุดที่ 2 แก้ไขไฟล์ httpd-vhosts.conf โดยภายใต้ Tag VirtualHost นั้นให้ระบุ DocumentRoot ซึ่งคือตำแหน่งที่อยู่ของ Package Joomla ที่อยู่ในเครื่องของเราเอง โดยเว็บไซต์นั้นก็จะต้องอยู่ภายใต้โฟลเดอร์ \www ด้วยเช่นกัน ที่สำคัญอยู่ตรงนี้ครับ ในพารามิเตอร์ ServerName เป็นการตอบรับว่า เมื่อมีการเรียกใช้งานโดเมนเนม URL นี้ให้ตอบสนองและไปเรียกใช้งานเว็บไซต์ที่อยู่ในโฟลเดอร์ DocumentRoot ออกมาแสดงผล ดังนั้นผมก็จะทำ 2 เว็บไซต์เอาไว้เลย ส่วนบรรทัดอื่นผมไม่ได้ใช้ ก็จะใส่ Comment ( # ) เอาไว้ด้านหน้า

Virtual Host Apache

ต่อไปให้ Restart Apache 1 รอบ เพื่อสั่งให้อ่านการตั้งค่า Virtual Host ใหม่

Virtual Host Apache

แต่ว่า เมื่อตอนต้นเราได้แก้ไขไฟล์ hosts ของเราไปมันจะยังไม่มีผลจนกว่าระบบปฏิบัติการจะเริ่มทำงานใหม่ วิธีสั้น ๆ ก็คือให้ Log Off แล้ว Log On ใหม่อีกครั้งครับ มันก็จะอ่านไฟล์ hosts ของเราใหม่อีกครั้ง , หรือถ้าทั้งหมดทำไม่เป็นก็ Restart เครื่องไปได้เลย 1 รอบ

ต่อไปเมื่อ Restart ทุกอย่างแล้ว ให้มาสร้างโฟลเดอร์ภายใต้ \www ครับ โดยผมจะสร้างไว้ 2 เว็บไซต์ตามที่ได้กำหนดไป คือ web1 และ web2 และภายใต้โฟลเดอร์ก็จะสร้างไฟล์เอกสาร index.html ง่าย ๆ ขึ้นมาเป็นหน้า Home Page และทดสอบเรียกใช้งานเว็บไซต์ www.web1.com ดูก็จะพบว่าสามารถใช้งานได้จริง

Virtual Host Apache

และทุกครั้งที่เป็นการเรียกโดเมนเนมที่เราได้ตั้งค่าไว้ในไฟล์ hosts มันก็จะค้นหาเฉพาะในเครื่องเราเองเท่านั้น ดังนั้นเวลาเราทดสอบสร้างเว็บไซต์ในเครื่องจำลองเพื่อที่จะเตรียมพร้อมนำไปติดตั้งบนโฮสจริง ก็สามารถใช้วิธีนี้ระบุโดเมนเนมจริงได้ และไม่ต้องมาแก้ไข Path ภายหลังด้วย แต่อย่าลืมว่าเมื่อใช้งานเสร็จก็ควรจะไปแก้ไขไฟล์ hosts ให้เหมือนเดิมด้วยนะครับ ไม่เช่นนั้นมันก็จะไม่ได้เป็นการใช้งานเว็บไซต์บนโฮสจริงในอินเตอร์เน็ตแต่อย่างใด

การสร้าง Virtual Host ใน Apache

เนื้อหาที่เกี่ยวข้อง