Cấu hình virtual domain (tên miền ảo) trong XAMPP
Virtual Host - Virtual Domain là gì?
Virtual Host là một cấu hình trong Apache để cho phép nhiều domain cùng chạy trên một máy chủ. Có một khái niệm khác được đề cập tới trong Nginx cũng có chức năng tương tự như Virtual Host được gọi là Server Block. Trong bài viết này mình chỉ muốn chia sẻ với các bạn còn lạ lẫm về Vhost cách để cấu hình một Virtual Host trong Windows, ở đây mình sử dụng XAMPP làm môi trường pháp triển.
Cấu hình tên miền ảo trong XAMPP
Các bạn có thể tải XAMPP từ trang chủ: https://www.apachefriends.org .
Giả sử bạn cài đặt ở ổ D:\
ta có thư mục D:\xampp
. Sau khi tiến hành cài đặt xong các bạn mở file D:/xampp/apache/conf/httpd.conf
và tìm đến dòng:
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf
nếu thấy có dấu #
ở đầu dòng thì xóa bỏ dấu #
đi như dưới đây, còn không thì thôi:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
mục đích là để load config từ một file khác vào trong file httpd.conf
, mà cụ thể là D:/xampp/apache/conf/extra/httpd-vhosts.conf
Giờ các bạn mở tệp tin D:/xampp/apache/conf/extra/httpd-vhosts.conf
copy đoạn code bên dưới và paste vào trong file httpd-vhosts.conf
.
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "D:/xampp/htdocs/laravel/public"
ServerName chungnguyen.local
ErrorLog "logs/chungnguyen.local-error.log"
CustomLog "logs/chungnguyen.local-access.log" common
<Directory "D:/xampp/htdocs/laravel/public">
Options FollowSymLinks Indexes
AllowOverride All
DirectoryIndex index.php
Require all granted
Allow from all
</Directory>
</VirtualHost>
Mình sẽ giải thích 1 chút như sau:
<VirtualHost *:80>
: lắng nghe cổng 80 mặc địnhServerAdmin [email protected]
: khi có lỗi xảy ra, sẽ hiện thông báo gửi email về cho quản trịDocumentRoot "D:/xampp/htdocs/laravel/public"
: thư mục chứa code websiteServerName chungnguyen.local
: đây chính là tên miền ảoErrorLog "logs/chungnguyen.local-error.log"
: error logCustomLog "logs/chungnguyen.local-access.log" common
: access log<Directory></Directory>
: Đây là 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 trongDocumentRoot
hoặc tham khảo thêm tại: http://httpd.apache.org/docs/2.4/en/mod/core.html#directory .Options FollowSymLinks
: Option này cho phép bạn truy cập theo symbolic link (giống như shortcut trong windows vậy). Ngoài ra còn có nhiều các options khác, các bạn có thể tham khảo thêm tại: http://httpd.apache.org/docs/2.4/en/mod/core.html#options .AllowOverride All
: cho phép bạn overwrite các config bằng file htaccess.DirectoryIndex index.php
: Khi các bạn truy cập vào thư mục (không chỉ rõ cụ thể là file nào) thì file index.php sẽ được gọi.Require all granted
: là cho phép tất cả các máy khác được truy cập vào thư mục đang được cấu hình. Chú ý: từphiên bản 2.2
trở về trước thì Apache sử dụngAllow from all
để thay thế choRequire all granted
.
Các bạn khởi động lại Apache bằng cách là khởi động phần mềm XAMPP Control Panel dòng nếu dòng Apache đang running thì các bạn stop và start lại, còn nếu đang ở chế độ tắt rồi thì các bạn chỉ cần start là được.
Ok vậy là bạn đã cấu hình xong về phần của Apache giờ chỉ việc đăng ký DNS cho domain của bạn nữa là mọi việc hoàn tất.
Các bạn vào thư mục %windir%/system32/drivers/etc
, trong máy của mình là C:\Windows\System32\drivers\etc
copy file hosts
ra desktop. Sau đó mở file hosts ở ngoài desktop bằng editor như: notedpad, notepad++, sublime text, ... thêm vào cuối file dòng sau:
127.0.0.1 chungnguyen.local
Lưu lại, và copy-paste ngược lại thư mục C:\Windows\System32\drivers\etc
lúc nãy, chọn Yes nếu được hỏi quyền admin nhé.
Khi các bạn gõ địa chỉ chungnguyen.local 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. http://chungnguyen.local chungnguyen.local cũng có thể là tuan.tv, doan-totnghiep.com(chấm local. chấm canh, chấm mắm, hay chấm bất kì thứ gì bạn thích nhé, chỉ cần nhớ là đã khai báo trong ServerName và file host là được).
Lưu ý
Nếu dùng trình duyệt Google Chrome bạn sẽ không dùng được tên miền .dev nha.
Tổng kết
Việc sử dụng Virtual Host có vài lợi ích sau.
- Bạn có thể truy cập vào bất kỳ thư mục code nào mà không cần phải copy vào htdocs trong XAMPP.
- Nếu bạn dùng folder code ở một phân vùng khác thì bạn không cần phải lo lắng backup lại folder code mỗi lần cài lại windows.
- Nhìn có vẻ nguy hiểm hơn :v
Các bạn cũng có thể cấu hình Vhost với WAMP, APPServer, USBServer các cấu hình cũng không khác nhiều lắm. Vì tất cả các phần mềm này đều dùng Apache, Mysql và PHP. Vhost là một tính năng của Apache chứ không phải của XAMPP nên phần mềm nào dùng Apache thì đều có thể cấu hình Vhost theo cách tương tự, điểm khác biệt chỉ là khác về nơi đặt file httpd.conf
. Chúc các bạn thành công.
Ủng hộ Chung Nguyễn Blog
Chung Nguyễn Blog sử dụng FlashVPS - Dịch vụ quản trị máy chủ chuyên nghiệp để quản lý VPS
#FlashVPS là dịch vụ cloud panel trên nền tảng web hỗ trợ khách hàng:
- * Quản lý máy chủ số lượng nhiều
- * Không có kinh nghiệm quản lý máy chủ
- * Thích sử dụng giao diện web đơn giản, trực quan hơn terminal
- * Quá nhàm chán với việc ghi nhớ và lặp lại việc gõ các câu lệnh
- * Muốn tự động hóa mọi thao tác
- * Muốn tiết kiệm thời gian quản trị máy chủ
- * Muốn tiết kiệm tiền bạc, nhân lực quản trị máy chủ 👉 https://flashvps.dev
Các bài viết trên website thường xuyên được đăng tải và cập nhật trên trang Facebook Chung Nguyễn Blog hãy tặng cho Chung một LIKE nhé! Mãi yêu các bạn!
813 👍
Bình luận
Nguyễn Quốc Việt
Your connection is not private
Attackers might be trying to steal your information from quocviet.dev (for example, passwords, messages, or credit cards). Learn more
M. T
Chung Nguyễn
Linh Nhi Nguyễn
Chung Nguyễn
Những domain không có thực chrome sẽ k hiểu và tưởng đó là một keyword tìm kiếm
Hoàng Nam
Hoàng Nam
Chung Nguyễn
Hoàng Nam
Chung Nguyễn
Đỗ Quốc Tiệp
Cảm ơn bạn, bài viết rất hay, mình đang sử dụng XAMPP làm website chạy trên internet tốt, mình muốn chạy nhiều tên miền cùng lúc bạn biết cấu hình hướng dẫn mình với, mình đang sử dụng IP tĩnh từ nhà mạng, mình muốn sử dụng nhiều tên miền cùng lúc, ví dụ mình vào abc.com thì nó tự động trỏ vào thư mục có website 1, vào tên miền abcd vào thư mục có website 2
Chung Nguyễn
Ở ví dụ ở trên, bạn copy thành nhiều bản. Chỉ cần thay ServerName thành địa chỉ website và DocumentRoot tương ứng với thư mục chứa ưebsite là ok bạn nhé.