การทำ Virtual host สำหรับ XAMPP 1.6.5

Submitted by audy on Thu, 2010-07-15 16:10

ผมใช้ XAMPP 1.6.5 เป็นเครื่องมือหลักในการพัฒนาเวบแอพพลิเคชัน
และในแต่ละเวบ แต่ละโปรเจค ผมจะแยกโฟลเดอร์ออกจากกัน
เช่น โปรเจค project-a, project-b ผมจะใช้โครงสร้างโฟลเดอร์แบบนี้

d:/www
    |-/project-a.localhost
    |   |-/public_html
    |      |-index.php
    |      |-.htaccess
    |      |-/css
    |          |-default.css
    |      |-/images
    |          |-logo.png
    |-/project-b.localhost
        |-/public_html
            |-index.php
            |-.htaccess
            |-/css
                |-default.css
            |-/images
                |-logo.png

เวลาใช้งานผ่านหน้าเวบก็เรียก http://project-a.localhost หรือ http://project-b.localhost ได้เลย
ผมว่ามันสะดวกดีนะ

วิธีตั้งค่า

ต้องแก้ไฟล์ 2 ไฟล์ คือ

  • C:\Windows\System32\drivers\etc\hosts
  • C:\xampp\apache\conf\extra\httpd-vhosts.conf

ไฟล์ hosts จะเป็นไฟล์สำหรับกำหนดชื่อเวบที่เราต้องการเรียกใช้งาน เช่น project-a.localhost
หรือจะทำเป็น project-a.com ยังได้เลย โดยเพิ่มบรรทัดนี้เข้าไป

127.0.0.1        project-a.localhost
127.0.0.1        project-b.localhost

ส่วนไฟล์ httpd-vhosts.conf จะเป็นตัวกำหนดว่าไฟล์สคริปต์ PHP ของเราเก็บไว้ที่โฟลเดอร์ไหน
เช่น เวบ project-a.localhost เราเก็บไฟล์ไว้ที่ D:\www\project-a.localhost\public_html
ก็ให้ทำการตั้งค่าแบบนี้

NameVirtualHost project-a.localhost:80
<VirtualHost project-a.localhost:80>
    ServerAdmin amazon@gmail.com
    DocumentRoot C:\www\project-a.localhost\public_html
    ServerName laundry.localhost
    <Directory "C:\www\project-a.localhost\public_html">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog C:\xampp\apache\logs\project-a.localhost-error_log
    CustomLog C:\xampp\apache\logs\project-a.localhost-access_log common
</VirtualHost>

หลังจากนั้นก็รีสตาร์ท Apache 1 ครั้งก็เรียก http://project-a.localhost ได้เลย

สำหรับท่านที่ลองทำแล้วประสบปัญหาเรียกเวบแล้ว มันเปิดหน้า default ให้เพิ่มตัว localhost ไปอีกตัวนึงดังนี้

NameVirtualHost localhost:80
<VirtualHost localhost:80>
    ServerAdmin admin@gmail.com
    DocumentRoot C:/xampp/htdocs
    ServerName localhost
</VirtualHost>

อันนี้ผมใช้สำหรับ XAMPP 1.6.5 นะครับ ถ้าต่างเวอร์ชัน รายละเอียดอาจจะต่างกันนิดหน่อย
ส่วนใหญ่จะเป็นความแตกต่างในการเปิดใช้โมดูลใน Apache มากกว่าครับ เช่น อาจไม่ได้เปิดใช้โมดูล vhost อะไรประมาณนี้
ยังไงก็ดูดีๆ แล้วกันนะครับ

Drupal theme by Kiwi Themes.