Cấu hình Apache Virtual Hosts trên Debian 8

Hi các bạn, hiện tại mình đang code con app xem phim trên android và cần phải build một server riêng cho nó. Để tiết kiệm chi phí cho hosting + domain thì mình chỉ dùng duy nhất một VPS (giá chưa tới 5$ một tháng :)) cho các dự án khác nhau của mình. Rất hay đúng không nào? Và hôm nay mình sẽ chia sẽ cho các bạn cách thiết lập Apache Virtual Hosts trên Linux, cụ thể ở đây mình đang dùng Debian 8.

 

Yêu cầu:

Để làm được những hướng dẫn mình sẽ chia sẻ sau đây thì các bạn cần:

Trong bài này mình sẽ tạo các virtual hosts cho tuankhaiit.comnewmovies.tk, bạn có thể tạo các tên miền miễn phí khác và thay thế bằng tên miền của mình trong khi làm theo. Lưu ý là các bạn phải ánh xạ 2 tên miền đó tới địa chỉ IP của VPS nhé.

Bước 1: Tạo cấu trúc thư mục.

Mặc định khi cài Apache, MySQL… thì bạn sẽ có sẵn một thư mục có tên public_html với đường dẫn /var/www/public_html. Nếu các bạn chỉ dùng VPS cho một virtual host thì các bạn chỉ việc up code của mình lên thư mục public_html là xong. Ở đây mình sẽ cấu hình 2 virtual hosts trên VPS nên mình sẽ tạo các thư mục với đường dẫn /var/www/tuankhaiit/public_html/var/www/newmovies.tk/public_html với cú pháp như sau:

$ sudo mkdir -p /var/www/tuankhaiit/public_html
$ sudo mkdir -p /var/www/newmovies.tk/public_html

Bước 2: Tạo mới tập tin Virtual Host.

Các virtual host files ta có thể hình dung nó tượng trưng cho các virtual host khác nhau. Nghĩa là khi có một request từ một domain nào đó vào địa chỉ IP của VPS thì Apache sẽ respond lại các requests tương ứng qua các virtual hosts bạn đã cấu hình sẵn. Mặc định nếu một domain nào đó trỏ vào IP của VPS mà chưa được cấu hình thì nó sẽ chạy trong thư mục /var/www/html/public_html đã được cấu hình mặc định trong file /etc/apache2/sites-available/000-default.conf

Để tạo một virtual host file mới, ta chạy dòng lệnh sau:

$ sudo vi /etc/apache2/sites-available/tuankhaiit.conf

Lệnh trên sẽ tạo mới và mở một file tên tuankhaiit.conf với trình soạn thảo vi. Tiếp theo ta sẽ cấu hình như bên dưới:

<VirtualHost *:80>
        ServerAdmin admin@tuankhaiit.com
        ServerName tuankhaiit.com
        ServerAlias www.tuankhaiit.com
        DocumentRoot /var/www/tuankhaiit/public_html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Các bạn thay domain của mình bằng domain của các bạn nhé. Sau đó lưu và đóng tập tin lại. Các bạn tạo và cấu hình domain thứ 2 với các bước tương tự như trên.

Bước 3: Đưa code lên các Virtual Hosts.

Sau khi cấu hình xong các bạn hay up code của các project tương ứng với 2 thư mục mình đã tạo ở bước 1 nhé.

Sau khi up code xong các bạn cần phải phân quyền truy cập lại cho các thư mục bằng lệnh:

$ sudo chmod -R 755 /var/www

Bước 4: Kích hoạt Virtual Host Files đã tạo.

Sau khi tạo các thư mucj và tập tin cấu hình virtual host. Các bạn cần kích hoạt và khởi động lại apache bằng công cụ a2ensite:

$ sudo a2ensite tuankhaiit.conf
$ sudo a2ensite newmovies.tk.conf

Ở đây ta không dùng trang mặc định nên ta sẽ vô hiệu hóa nó bằng lệnh:

$ sudo a2dissite 000-default.conf

Và cuối cùng là khởi động lại Apache:

$ sudo systemctl restart apache2

Như vậy là chúng ta đã cấu hình thành công nhiều Virtual Hosts trên VPS của chúng ta.

Giờ các bạn hãy truy cập vào các domain mình vừa cấu hình để kiểm tra và tận hưởng thành quả nhé :).

 

Nếu có thắc mắc hay gặp vấn đề gì trong khi thực hiện. Các bạn đừng ngần ngại comment bên dưới, mình sẽ support các bạn tối đa có thể trong giới hạn kiến thức mà mình biết.

Nếu bài viết hữu ích ừng quên like/share để mình có động lực chia sẻ nhiều hơn.

Chúc các bạn thành công!

Chia sẻ bài viết:

Trả lời

Email của bạn sẽ không được hiển thị công khai.