Cách cài đặt và cấu hình Apache Virtual Host trên Ubuntu
Bài viết này sẽ hướng dẫn bạn cách thiết lập để chạy nhiều domain và website trên Ubuntu 18.04 server bằng cách sử dụng Apache virtual host. Qua đó, bạn sẽ biết cách đưa các nội dung khác nhau cho những visitor khác nhau tùy vào domain mà họ đang yêu cầu.
Yêu cầu để cài đặt và cấu hình Apache Virtual Host trên Ubuntu
Để tiếp tục với hướng dẫn bạn cần hoàn thành một số yêu cầu sau trên server Ubuntu 18.04:
- Một user sudo trên server.
- Một Apache2 web server mà bạn có thể cài đặt với sudo apt install apache2.
Tạo cấu trúc thư mục cho Apache Virtual host
Đầu tiên, bạn cần tạo một thư mục chứa site data mà sẽ lưu trữ tập tin và phục vụ cho visitor khi được yêu cầu.
Sử dụng các domain name theo mẫu như bên dưới đây tạo 2 thư mục /var/www/example.com và /var/www/test.com. Bạn nên thay thế chúng bằng domain name thực của bạn.
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
Cấp quyền hệ thống Apache Virtual host
Bây giờ hãy cấp quyền cho các user non-root hiện tại để có thể sửa đổi các file:
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html
Ngoài ra, hãy đảm bảo rằng cấp quyền đọc được phép vào thư mục web chung và tất cả các file và thư mục trong đó để các trang có thể được phân phối chính xác.
sudo chmod -R 755 /var/www
Tạo các trang demo cho mỗi máy chủ ảo
Hãy tạo một số nội dung để phục vụ, tạo một trang index.html trình bày cho mỗi site. Bạn có thể mở file index.html trong text editor cho site đầu tiên, sử dụng nano:
nano /var/www/example.com/public_html/index.html
Trong file này, hãy tạo một HTML document, như sau:
/var/www/example.com/public_html/index.html
Success! The example.com virtual host is working!
Lưu và đóng file, sau đó sao chép file này để sử dụng làm mẫu cho site thứ hai:
cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html
Mở file và sửa đổi các phần thông tin liên quan:
nano /var/www/test.com/public_html/index.html
/var/www/test.com/public_html/index.html
Success! The test.com virtual host is working!
Khi hoàn tất, lưu và đóng file này.
Tạo Virtual Host File
Apache đi kèm với virtual host file mặc định có tên là 000-default.conf mà bạn sẽ sử dụng để làm mẫu.
Hãy sao chép nó để tạo virtual host file cho từng domain của bạn.
Tạo Virtual Host File đầu tiên.
Bắt đầu bằng cách sao chép file cho domain đầu tiên:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
Mở file mới (ví dụ này đang sử dụng nano) với quyền root:
sudo nano /etc/apache2/sites-available/example.com.conf
Tùy chỉnh file này cho domain của bạn. Sửa đổi văn bản được đánh dấu bên dưới phù hợp cho riêng bạn.
/etc/apache2/sites-available/example.com.conf
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog $APACHE_LOG_DIR/error.log
CustomLog $APACHE_LOG_DIR/access.log combined
Khi hoàn tất, hãy lưu và đóng file.
Sao chép Virtual Hosting File đầu tiên và tùy chỉnh cho tên miền thứ hai
Sau khi đã thiết lập virtual host file đầu tiên, bạn có thể tạo file thứ hai bằng cách sao chép file đó và chỉnh sửa nó nếu cần thiết.
Bắt đầu bằng cách sao chép file:
sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf
Mở file mới với quyền root trong text editor của bạn:
sudo nano /etc/apache2/sites-available/test.com.conf
Bây giờ bạn cần sửa đổi các phần thông tin để phù hợp với domain thứ hai. File khi hoàn tất sẽ trông giống như dưới đây, với văn bản được đánh dấu tương ứng với thông tin domain của riêng bạn.
/etc/apache2/sites-available/test.com.conf
ServerAdmin admin@test.com
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test.com/public_html
ErrorLog $APACHE_LOG_DIR/error.log
CustomLog $APACHE_LOG_DIR/access.log combined
Lưu và đóng file khi hoàn tất.
Bật Virtual Host File mới
Với các virtual host file đã được tạo, bạn phải kích hoạt chúng và công cụ a2ensite sẽ rất hữu ích cho việc này. Để thực hiện hãy nhập:
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
Tiếp theo, disable site mặc định được xác định trong 000-default.conf:
sudo a2dissite 000-default.conf
Khi hoàn tất, khởi động lại Apache để những thay đổi có hiệu lực. Sử dụng systemctl status để kiểm tra việc khởi động lại thành công.
sudo systemctl restart apache2
Khi hoàn tất thì server của bạn bây giờ sẽ được thiết lập để phục vụ hai website.
Thiết lập Local Hosts File
Nếu bạn chưa sử dụng domain thực để kiểm tra quy trình này và đang sử dụng miền mẫu, bạn có thể kiểm tra bằng cách tạm thời sửa đổi hosts file trên máy tính cục bộ của bạn.
Trên máy Mac hoặc máy Linux cục bộ, hãy nhập như dưới đây:
sudo nano /etc/hosts
Đối với máy Windows cục bộ, hãy tìm hướng dẫn về cách thay đổi hosts file của bạn tại đây.
Sử dụng các domain trong hướng dẫn này và thay thế phần your_server_IP thành IP server của bạn, file của bạn sẽ trông giống như ảnh sau:
/etc/hosts
127.0.0.1 localhost
127.0.1.1 guest-desktop
your_server_IP example.com
your_server_IP test.com
Lưu và đóng file. Nó sẽ điều hướng các yêu cầu cho example.com và test.com trên máy tính và gửi chúng đến server của bạn.
Kiểm tra kết quả cài đặt
Bây giờ bạn đã cấu hình các virtual hosts của mình, bạn có thể kiểm tra thiết lập bằng cách truy cập các domain mà bạn đã cấu hình trong trình duyệt web của mình:
http://example.com
Bạn sẽ thấy một trang trông như thế này:
Bạn cũng có thể truy cập trang thứ hai của mình và xem file bạn đã tạo.
http://test.com
Nếu cả hai site này đều hoạt động, là bạn đã thành công cấu hình virtual host trên cùng một server.
Nếu bạn đã điều chỉnh hosts file, hãy xóa các dòng bạn đã thêm.
Lời kết
Như vậy là bạn đã biết cách cài đặt Apache Virtual host trên Ubuntu, hy vọng bài viết này cung cấp cho bạn nhiều kiến thức bổ ích, chúc bạn thành công!
Ngoài ra, khi sử dụng dịch vụ VPS và Hosting, quý khách sẽ được tặng bộ Theme & Plugin WordPress bản quyền trị giá đến 800$/năm. Đăng ký dùng thử ngay và Việt Nét sẽ hoàn tiền 100% nếu quý khách không hài lòng với chất lượng sản phẩm, dịch vụ! Nếu bạn có thắc mắc hay có vấn đề cần hỗ trợ, bạn có thể liên hệ trực tiếp với Việt Nét thông qua các kênh sau: