Cấu hình Virtual Host trong XAMPP

Nếu bạn đang gặp rắc rối về đường dẫn mỗi khi upload code lên trên Hosting, thì có thể mã nguồn của bạn dưới local chưa được chạy với tên miền ảo. Để tránh những rắc rối không cần thiết như thế thì bạn phải cấu hình tạo tên miền ảo ngay nhé. Đọc bài viết dưới đây để biết chi tiết.

I. Tại sao phải cấu hình Virtual Host?

- Khi chạy một dự án website các bạn phải gõ trên trình duyệt http://localhost/myproject/ điều này quá xấu và bất tiện nếu như chúng ta sử dụng đường dẫn root có dạng /myproject/include/file.php, hơn nữa cách sử dụng như thế còn rất dài vì có thêm tên dự án.

- Ngoài ra việc cấu hình Virtual Host còn giúp cho bạn sau này upload website lên hosting, vps ... không phải sửa lại đường dẫn.

- Cách giải quyết vấn đề trên là 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 đường dẫn root path tiện lợi hơn.

- Chúng ta cũng có thể sử dụng cách cấu hình Virtual Host này để cấu hình chạy nhiều domain trong cùng một server.

II. Cấu hình Virtual Host

1. Thao tác với file 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.

domain ảo xampp

- Tìm tới dòng sau và bỏ comment ở dòng Include đi bằng cách bỏ dấu #

# Virtual hosts
# Include conf/extra/httpd-vhosts.conf
- Nội dung sau khi bỏ comment
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

-  File httpd.conf sẽ nhúng thêm file httpd-vhosts.conf khi khởi chạy.

2. Thao tác với file 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 đó.

- Thêm đoạn code sau 

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/xampp/htdocs/Myproject"
    ServerName  demo.local
    ErrorLog "logs/demo.local-error.log"
    CustomLog "logs/demo.local-access.log" common
    <Directory "C:/xampp/htdocs/Myproject">
        Options FollowSymLinks
        AllowOverride All
        DirectoryIndex index.php
        Require all granted
    </Directory>
</VirtualHost>

- Giải thích:

  • <VirtualHost></VirtualHost>: cặp thẻ báo hiệu mở đầu và kết thúc của một khai báo về Vhost. Có một lưu ý nhỏ là nếu bạn nào đổi port của Apache (8080,81,v.v…) thì cũng phải đổi số 80 theo port các bạn chuyển sang nhé. Ở đây mình đã đổi port của Apache thành 8080. Các bạn chỉnh sửa thành port tương ứng cấu hình của mình.
  • DocumentRoot: từ khóa khai báo đường dẫn của thư mục sẽ được gọi khi người dùng truy cập vào domain được cấu hình. Đường dẫn này có thể nằm ở bất kỳ một phân vùng nào. Mình đặt website của mình theo đường dẫn C:/xampp/htdocs/myproject
  • ServerName: domain mà bạn muốn đặt (gõ thaotrinh.dev:8080 trên url là nó ra websites)
  • <Directory></Directory>: cặp thẻ dùng để cấp quyền truy cập cho thư mục nếu thư mục không được cấp quyền sẽ gặp lỗi 403 khi các bạn cố gắng truy cập. Đường dẫn thư mục của bạn có thể là một regular expression. Nếu các bạn không rõ về Regex thì các bạn có thể dùng đường dẫn thư mục giống với khai báo trong DocumentRoot hoặc tham khảo thêm tại: http://httpd.apache.org/docs/2.4/en/mod/core.html#directory
  • 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)
  • Myproject: tên thư mục lưu trữ mã nguồn của bạn.

- Lưu ý thao tác với 2 file httpd.conf và file httpd-vhosts.conf xong bạn nhớ khởi động lại apache.

3. Thao tác với file hosts(đăng ký DNS cho domain)

- Mở file C:\Windows\System32\drivers\etc\hosts bằng notepad hoặc bất kỳ trình editor nào. 

- Lưu ý file hosts này bạn phải mở với quyền administrator mới lưu lại được.

- Thêm vào cuối file hosts đoạn mã sau

127.0.0.1 demo.local

- Giải thích: 

  • Khi các bạn gõ địa chỉ demo.local:80 thì máy sẽ ưu tiên tìm địa chỉ IP của domain đó trong file hosts của hệ điều hành trước tiên. Nếu không có thì nó sẽ đi tìm địa chỉ IP của domain này thông qua các DNS Server trên Internet. Vì bạn đã khai báo trong file hosts nên nó sẽ sử dụng địa chỉ IP được khai báo trong đó luôn. Ở đây địa chỉ IP 127.0.0.1 trỏ về chính máy đang truy cập (chính là máy của bạn – còn nếu cấu hình trên server thì đó chính là bản thân máy server luôn). Bạn có thể sử dụng dài IP từ 127.0.0.1 -> 127.255.225.254 đây là dải IP trỏ về máy của bạn (Nguyên dải luôn chứ không phải chỉ là 127.0.0.1 nhé).

Giờ các bạn mở trình duyệt và gõ vào thanh địa chỉ thay thế dòng localhost xấu xí bằng một domain của riêng bạn là xong. Ở ví dụ trên là demo.local.

Bài viết nên đọc

Trên đây là những kiến thức từ kinh nghiệm bản thân mình nên các bạn có thể tham khảo. Nếu các bạn có góp ý cho mình thì hãy gửi vào đây, mình sẵn sàng nhận ý kiến đóng góp từ các bạn.

Ngoc Phuong

Ngoc Phuong - 67 bài viết - Đánh giá:

Có 2 cách học hiệu quả nhất, 1 là nói cho người khác biết thứ bạn mới học được, 2 là nói cho người khác biết thứ bạn sắp quên. Tôi mới học được rất nhiều thứ. Tôi cũng sắp quên rất nhiều thứ.

Để lại bình luận

Địa chỉ email của bạn sẽ không được công khai