Tháng 7
6
2011

Hướng dẫn tạo host ảo với Apache trong Ubuntu

Đối với nhưng người quản trị hệ thống thì Apache quả thực là 1 trong những công cụ hỗ trợ hiệu quả nhất hiện nay, với tính linh hoạt và độ ổn định cao, dễ dàng thiết lập, cấu hình, hỗ trợ việc quản lý nhiều domain cho dù hệ thống web server chỉ có 1 địa chỉ IP.Bên cạnh đó, chúng ta cũng có thể sử dụng để lưu trữ nhiều site khác nhau, hoặc đơn giản chỉ thiết lập 1 hệ thống sandbox dành cho việc phát triển ứng dụng. Trong bài viết dưới đây, chúng tôi sẽ trình bày một số thao tác cơ bản để tạo host ảo – virtual host bằng Apache.

Về mặt bản chất, quá trình thiết lập host là 1 “thử thách” không hề đơn giản nhưng trên thực tế thì lại không phải như vậy. Người sử dụng hoàn toàn có thể thiết lập được 1 hệ thống virtual host chỉ với vài thao tác đơn giản như thay đổi tùy chỉnh trong Apache. Cụ thể trong bài thử nghiệm này, chúng tôi sử dụng hệ điều hành Ubuntu server và phiên bản Apache tương ứng.

apache

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

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>

Đ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>

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>

<VirtualHost 127.0.0.1>
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. Chúc các bạn thành công!

Các bài hay khác

Về tác giả: Dũng Phạm Trung

Cách cài đặt là trang cung cấp hướng dẫn cấu hình, cài đặt và sử dụng phần mềm. Nội dung trên website được chúng tôi sưu tầm hoặc tạo ra nhằm giúp mọi người nắm bắt được những kiến thức CNTT một cách đơn giản nhất.

Với lời bình

CommentLuv badge

Comments links could be nofollow free.

Bài nhiều người đọc

Sử dụng Nginx và memcached để tăng tốc Apache trên Debian Lenny
Comments10
Hướng dẫn cài đặt Nginx, PHP trên CENTOS, REDHAT
Comments6
[Kiến thức cơ bản] 10 cách dùng Nmap hiệu quả
Comments5
Sử dụng Crontab trên Linux
Comments4
Di chuyển file giữa các hệ thống Linux với SCP
Comments3
Cách cài đặt Teamviewer 6 trên Ubuntu 10.10 Maverick Meerkat
Comments3
Di chuyển file giữa các hệ thống Linux với SCP
Comments3
Cấu hình SSHd server dùng Private Key
Comments2
[Kiến thức cơ bản] Dùng lệnh date trên Linux.
Comments2
[Cách cài đặt] Thiết lập hệ thống WebDAV với Apache2 trên OpenSUSE 11.3
Comments2

Bình luận mới nhất

  • Loading...