Virtual host với Apache và windows


Đêm lang thang ngồi buồn, định làm cho xong cái trang thông tin mà không tập trung được, thôi thì tổng hợp cái bài ni cho nó có ích, chứ lang thang net lắm mà không mần chi cũng vô bổ!

Với những bạn yêu lập trình web, chắc không lạ gì với Apache… bài viết này (đúng ra là bài dịch và tổng hợp lại) hướng dẫn bạn tạo dịch vụ vhost trong windows nghịch localhost cho vui nhà vui cửa …
Bắt đầu nhá!

Công việc đầu tiên là tìm file httpd.conf trong thư mục conf của apache, bỏ dấu # trước dòng lệnh :
(dòng 460):
#Virtual hosts
#Include conf/extra/httpd-vhosts.conf
mục đích của việc này là thêm nội dung thiết lập trong file config httpd-vhosts.conf ở thư mục extra vào config của apache server.

tạo một thư mục bạn muốn chứa các virtual host – C:\vhosts chẳng hạn .
Mở file hosts trong thư mục C:\WINDOWS\system32\drivers\etc\ bằng Notepad hoặc chương trình khác (chú ý với win vista thì chương trình soạn thảo phải chạy với quyền admin(run as an administrator). Bạn sẽ thấy:
127.0.0.1 localhost
Cho trỏ chuột vào cuối dòng đó, enter để xuống dòng mới và thêm vhost của bạn. Ví dụ bạn tạo một vhost nội dung chứa trong C:\vhosts\nguoihatinh và khi truy cập bằng trìnhduyeetjj thì chỉ cần gõ http://nguoihatinh …Câu lệnh để thêm sẽ là:
127.0.0.1 nguoihatinh

Lưu lại kết quả và thoát ra ngoài trình soạn thảo.

Lưu lại kết quả httpd.conf và thoát khỏi trình soạn thảo.
mở file httpd-vhosts.conf trong thư mực \conf\extra của Apache bằng trình soạn thảo (notepad hoặc chương trình khác). Bạn sẽ thấy nội dung tòn bộ. Di chuột đến chỗ trống hàng 15 và chèn nội dung sau:
<Directory C:/vhosts>
Order Deny,Allow
Allow from all
</Directory>
Đoạn code này thiết lập quyền truy cập đúng cho thư mục chứa site mà bạn muốn xem như là một vhost. Nếu bạn chọn một vị trí khác làm thư mục top-level, hãy thay thế đường dẫn C:/vhosts cho phù hợp.

Ngay khi tất cả virtual hosts của bạn được chứa trong thư mục con của thư mục top-level , các câu lệnh trên thiết lập quyền truy cập hợp lí cho tất cả thư mục đó. Tuy nhiên, nếu muốn tạo thêm thư mục top-level khác, hãy thêm tiếp đoạn code như trên vào dưới nó với đường dẫn phù hợp. Ví dụ: tạo thêm thư mục top-level khác là C:\www chẳng hạn:
<Directory C:/www>
Order Deny,Allow
Allow from all
</Directory>
Các dòng lệnh bạn thấy từ dòng 27 đến 42 định nghĩa một virtual hosts. Nó bao gồm tất cả các câu lệnh có thể sử dụng nhưng tối thiểu cần có hai cái là DocumentRoot và ServerName.

Khi bạn bật chức năng virtual hosting, Apache sẽ khóa server root chính, vì vậy định nghĩa đầu tiên phải là giới thiệu lại original server root. Sau đó bạn add thêm mỗi virtual host mới với một cặp <VirtualHost> tags, sử dụng đường dẫn tới nơi chứa các files của web làm giá trị cho DocumentRoot, và tên của virtual host cho ServerName. Again, use forward slashes, and if the path contains any spaces, enclose the whole path in quotes. Với ví dụ của ta, dòng lệnh để thêm vào như sau:
<VirtualHost *:80>
DocumentRoot c:/htdocs
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot c:/vhosts/nguoihatinh
ServerName nguoihatinh
</VirtualHost>

Cặp thẻ <VirtualHost> thứ nhất để định nghĩa lại cho Document root… Cặp thứ 2 để định nghĩa virtual host…
Lưu lại các sửa đổi httpd-vhosts.conf, và khởi động lại Apache. Truy cập virtaul host vừa tạo qua trình duyệt web:
http://nguoihatinh hoặc truy cập dưới dạng http://localhost/nguoihatinh/. Bạn sẽ nhận được kết quả mong muốn … Khi cần thêm vhost khác, bạn cứ thao tác lại như trên với các giá trị đường dẫn phù hợp…

Mặc định bảo mật trong Apache, với các dòng ệnh như trên, nếu trong vhost của bạn( thư mục nguoihatinh đó) chưa chứa file index thì bạn sẽ nhận thông báo:
Forbidden
You don’t have permission to access /index.php on this server.

Để khắc phục điều này, tức là kể cả không có file index, bạn vẫn muốn truy cập thư mục thì thêm dòng lệnh sau vào đoạn mã thiết lập quyền truy cập:
Options Indexes MultiViews

thành ra:
<Directory C:/vhosts>
Options Indexes MultiViews
Order Deny,Allow
Allow from all
</Directory>
Hãy thử làm nhà cung cấp hosting trên local đi nhé … Nhiều điều thú vị lắm…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s