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
B1: Mở <thu_muc_cai_dat_xampp>/apache/conf/httpd.conf
Tìm dòngInclude conf/extra/httpd-vhosts.conf
nếu thấy có dấu # ở đầu dòng thì xóa bỏ dấu #
B2: Mở tệp tin<thu_muc_cai_dat_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 webmaster@yourdomain.com
DocumentRoot "<đường dẫn thư mục sẽ được gọi tới khi truy cập vào youdomain.com"
ServerName youdomain.com
ErrorLog "logs/yourdomain.com-error.log"
CustomLog "logs/yourdomain.com-access.log" common
<Directory "<đường dẫn thư mục">
Options FollowSymLinks
AllowOverride All
DirectoryIndex index.php
Require all granted
</Directory>
</VirtualHost>
<VirtualHost></VirtualHost>
Đây là 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é.<thu_muc_cai_dat_xampp>/apache/logs là thư mục chứa file log.
CustomLog Log lại tất cả các Uri mà người dùng request không bắt buộc) <thu_muc_cai_dat_xampp>/apache/logs là thư mục chứa file 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 trong DocumentRoot 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.
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ụng Allow from all để thay thế cho Require all granted
B3: Khởi động lại Apache
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 mở file %windir%/system32/drivers/etc/hosts
thêm vào cuối file
127.0.0.1 yourdomain.com
Khi các bạn gõ địa chỉ yourdomain.com 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://yourdomain.com . Đẹp hơn địa chỉ ip đúng ko nào. Chúc các bạn thành công
Unpublished comment
Viết câu trả lời