Cấu hình Virtual Host trong XAMPP

  • Trong hướng dẫn cài đặt XAMPP chúng ta đã biết chạy một file PHP như thế nào, đối với một file PHP có tên hello-world.php được chứa trong folder myproject ta chỉ cần chạy trên thanh địa chỉ của trình duyệt http://localhost/myproject/hello-world.php, nếu chưa biết thì bạn cần xem lại phần Thư mục làm việc với XAMPP.
  • Theo cách trên, ứng với mỗi project, chúng ta sẽ có một đường dẫn tương ứng:

    • http://localhost/myproject/hello-world.php
    • http://localhost/project_a/hello-world.php
    • http://localhost/project_b/hello-world.php
  • Cách sử dụng trên sẽ trở nên dài vì có thêm tên project, hoặc sẽ trở nên bất tiện nếu chúng ta sử dụng đường dẫn root có dạng /myproject/include/file.php.
  • Để giải quyết vấn đề trên, chúng ta sẽ cấu hình XAMPP sao cho có thể chạy được nhiều domain ngắn gọn hơn và có thể dùng root path tiện lợi hơn, khi này thay vì viết như trên, chúng ta có thể sử dụng đường dẫn như sau:

    • http://localhost:81/hello-world.php
    • http://localhost:82/hello-world.php
    • http://localhost:83/hello-world.php
  • Chúng ta cũng có thể sử dụng cách này để cấu hình chạy nhiều domain trong cùng một server.

Thêm port cho XAMPP: httpd.conf

  • Mở file C:\xampp\apache\conf\httpd.conf với một công cụ chỉnh sửa (editor) nào đó, notepad cũng được, hoặc truy cập file trực tiếp từ XAMPP theo hình bên dưới.

XAMPP - cấu hình multi port/domain

  • Khi file httpd.conf đã được mở, tìm tới dòng #Listen 12.34.56.78:80, bạn sẽ thấy đoạn code bên trong có dạng như sau:
#Listen 12.34.56.78:80
Listen 80
  • Port 80 là port mặc định chạy http://localhost/ của XAMPP.
  • Từ vị trí này ta thêm nhiều port khác nhau, save lại sau mỗi lần thêm port:
#Listen 12.34.56.78:80
Listen 80
Listen 81
Listen 82
Listen 83

Cấu hình Virtual Host: httpd-vhosts.conf

  • Mở file C:\xampp\apache\conf\extra\httpd-vhosts.conf với một công cụ chỉnh sửa (editor) nào đó.
  • Bên dưới file ta thấy có sẵn đoạn cấu hình mẫu cho port 80 đã được comment không cho chạy bằng dấu #
##<VirtualHost *:80>
    ##ServerAdmin [email protected]
    ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
    ##ServerName dummy-host.example.com
    ##ServerAlias www.dummy-host.example.com
    ##ErrorLog "logs/dummy-host.example.com-error.log"
    ##CustomLog "logs/dummy-host.example.com-access.log" common
##</VirtualHost>
  • Bên dưới đoạn code mẫu này ta thêm đoạn code cấu hình sau:
<VirtualHost *:82>
    DocumentRoot "C:/xampp/htdocs/myproject"
    ServerName myproject.hwc
    ServerAlias www.myproject.hwc
    ErrorLog "C:/xampp/apache/logs/myproject.hwc-error.log"
    CustomLog "C:/xampp/apache/logs/myproject.hwc-access.log"
    <Directory "C:/xampp/htdocs/myproject">
        Order Allow,Deny
        Allow from all
    </Directory>
</VirtualHost>
  • <VirtualHost *:82> : Đây là một trong những port đã được thêm vào httpd.conf, nếu cấu hình chạy domain thì chúng ta có thể dùng port 80.
  • DocumentRoot Thư mục chứa project (khai báo bắt buộc).
  • ServerName Tên server, dùng tên domain và port nếu có (khai báo bắt buộc).
  • ServerAlias Tên thay thế cho tên server (khai báo tùy chọn).
  • ErrorLog Đường dẫn tới file log error, sẽ xem lỗi từ đây (khai báo tùy chọn).
  • CustomLog Đường dẫn tới file log Uri khi người dùng request (khai báo tùy chọn).
  • Directory Bên trong tag này dùng để cấp quyền cho thư mục.

Sau khi cấu hình như trên hoàn tất, save lại và cần restart Apache, bằng cách mở XAMPP click vào stop tương ứng của Apache và start lại, khi này bạn thử chạy trên trình duyệt lại bằng đường dẫn mới:
http://localhost:82/hello-world.php.

Tương tự như vậy, chúng ta có thể tạo nhiều Virtual Host khác nhau trong cùng một server.

THÔNG BÁO LỖI