Tạo Host là một việc không hề đơn giản , tuy nhiên thực tế người dùng hoàn toàn có thể thiết lập được một hệ thống virtual hosting chỉ với một vài thao tác tùy chỉnh đơn giản trong Apache.
Dưới đây là hướng dẫn các bạn tạo host sử dụng hệ điều hành Ubuntu server và phiên bản Apache tương ứng.
Tạo cấu trúc thư mục:
Trước khi bắt tay vào quá trình cấu hình thì các bạn phải hoàn tất bước cấu trúc thư mục dành cho các site ảo. Tại đây chúng ta sẽ làm việc với Apache được cài đặt trên hệ thống Ubuntu server, do vậy phần tài liệu root của Apache sẽ xuất hiện tại /var/www. Về bản chất, cấu trúc thư mục dành cho website mới có thể được tạo tại bất kỳ đâu, có thể trong thư mục (~/), hoặc /usr/local/apache… Để đơn giản hóa tối đa bài thử nghiệm này, chúng tôi sẽ thiết lập virtual host trong phần tài liệu root của Apache (trong Ubuntu sẽ là thư mục /var/www), với bước làm này, chúng ta sẽ không cần thiết phải thay đổi mức ownership của những thư mục được tạo sau này hoặc thư mục gốc có chứa virtual host.
Cụ thể, trong bài thử nghiệm này chúng tôi sẽ thiết lập host ảo test_site, và gõ lệnh sau để tạo thư mục chứa virtual host:
sudo mkdir /var/www/test_site
sudo chmod -R 755 /var/www/test_site
sudo chmod -R 755 /var/www/test_site
Khi đó, thư mục gốc của virtual host đã được tạo thành công, và đây cũng là thời điểm thiết lập Apache để bắt đầu quá trình tạo website mới. Sau khi hoàn tất bước cấu hình Apache này, toàn bộ website sẽ được xây dựng bên trong /var/www/test_site.
Cấu hình Apache:
Bước đầu tiên trong quá trình thiết lập Apache để đảm bảo rằng Apache “biết” rằng virtual host đã được kích hoạt. Cụ thể, trong phần cấu hình của Ubuntu, các bạn hãy tìm đến đoạn sau trong file /var/www/test_site:
Include sites-enabled/
Hãy chắc chắn rằng dòng mã này vẫn đang ở trạng thái hoạt động (không bắt đầu bằng ký tự #). Cấu trúc lệnh sites-enabled sẽ được trỏ tới /etc/apache/sites-enabled. Khi tìm kiếm trong thư mục đó, chúng ta sẽ thấy có file 000-default – có chứa nhiều thông tin về tất cả các thư mục cần thiết cho site ảo sẽ được tạo sau này. Và để tạo mới virtual host, chúng ta cần tạo 1 file mới bên trong thư mục có sẵn, đó là /etc/apache/sites-available/test_site. Cụ thể, nội dung của file đó sẽ trông tương tự như sau:
<VirtualHost test.domain.com>
ServerAdmin webmaster@localhost
#We want to be able to access the web site using www.test.domain.com or test.domain.com
ServerAlias www.test.domain.com
DocumentRoot /var/www/test_site
#log file for this server
CustomLog /var/log/apache2/www.test.domain.com-access.log combined
</VirtualHost>
ServerAdmin webmaster@localhost
#We want to be able to access the web site using www.test.domain.com or test.domain.com
ServerAlias www.test.domain.com
DocumentRoot /var/www/test_site
#log file for this server
CustomLog /var/log/apache2/www.test.domain.com-access.log combined
</VirtualHost>
Đoạn mã trên được dùng trong trường hợp giả sử rằng domain.com sẽ là domain được dùng (thay thế giá trị này với tên miền bạn sử dụng). Và bên cạnh đó, chúng ta cần thực hiện thêm 2 bước đơn giản dưới đây trước khi khởi động lại Apache. Trước tiên là việc khởi tạo đường dẫn kết nối trong /etc/apache/sites-enabled tới file vừa được tạo:
– Truy cập thư mục /etc/apache/sites-enabled với lệnh cd /etc/apache/sites-enabled
– Tạo đường dẫn kết nối bằng lệnh sudo ln -s /etc/apache/sites-available test_site
Bên cạnh đó, chúng ta cũng có thể tạo được đường dẫn kết nối tự động bằng lệnh sudo a2ensite test_site, và sau đó tạm thời tắt bỏ hoạt động của virtual site, xóa bỏ kết nối với lệnh sudo a2dissite test_site.
Và bước cuối cùng để đảm bảo rằng server “biết” về sự tồn tại của virtual site chứ không phải là qua Internet. Cụ thể, chúng ta cần làm như sau:
– Mở file /etc/hosts bằng chương trình soạn thảo text bất kỳ với quyền Administrator
– Thêm dòng mã 127.0.0.1 localhost.localdomain localhost test.domain.com www.test.domain.com
– Lưu và đóng file đó lại.
Khởi động lại Apache với lệnh sudo /etc/init.d/apache2 restart và kiểm tra virtual host bằng cách gõ địa chỉ vào trình duyệt.
Với những hệ thống server non – debian:
Nếu hệ thống server lưu trữ virtual site không phải là distributor dựa trên Debian thì một số bước thiết lập sẽ khác biệt 1 chút. Cụ thể như sau:
– Tạo thư mục chứa virtual site trong file /etc/httpd/conf/httpd.conf – tương tự như với hệ thống sử dụng Debian.
-Đảm bảo rằng file cấu hình Apache “nhận biết” được sự tồn tại của virtual host bằng cách giữ nguyên chức năng hoạt động của dòng mã Include conf.d/*.conf
– Tạo file virtual host mới (thường gọi là vhosts.conf) trong thư mục /etc/httpd/conf.d/
– Gán thêm virtual site vào file /etc/hosts
– Khởi động lại Apache bằng lệnh /etc/rc.d/init.d/httpd restart
Thư mục lưu trữ của chúng ta (đối với hệ thống non – Debian) sẽ trông tương tự như dưới đây:
<VirtualHost *:80>
ServerName test.domain.com
DocumentRoot /var/www/html/test_site
</VirtualHost>
ServerName test.domain.com
DocumentRoot /var/www/html/test_site
</VirtualHost>
Còn file virtual host được đề cập tới tại phần trên sẽ trông như sau:
<VirtualHost 127.0.0.1>
DocumentRoot /var/http/www/test_site
ServerName www.test.domain.com
</VirtualHost>
DocumentRoot /var/http/www/test_site
ServerName www.test.domain.com
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot /var/http/www/test_site
ServerName test.domain.com
</VirtualHost>
DocumentRoot /var/http/www/test_site
ServerName test.domain.com
</VirtualHost>
Đây cũng là thời điểm virtual host đã được thiết lập và hoạt động ổn định, và việc tiếp theo là xây dựng website bên trong thư mục /var/www/test_site. Chúng ta có thể thực hiện việc này với nhiều hệ thống virtual host theo ý muốn, hoặc bằng những công cụ như Drupal, Xoops hoặc Joomla.
Tên miền miễn phí chúc các bạn thành công!
ThamNT