Thiết lập Virtual Host trên Apache trong CentOS 7

⚠️ CentOS 7 đã hết hỗ trợ từ 30/06/2024. Hệ điều hành này không còn nhận bản vá an ninh, nên đừng dựng máy chủ mới trên nó. Các bước trong bài phần lớn vẫn chạy được, nhưng với máy mới hãy chọn AlmaLinux 9 (dòng kế thừa CentOS, lệnh yum và dnf gần như giữ nguyên) hoặc Ubuntu 24.04. Đang chạy CentOS 7 và cần chuyển, hãy nhắn qua khung chat ở góc phải màn hình.

⚠️ CentOS 7 đã hết hỗ trợ từ ngày 30/06/2024. Hệ điều hành này không còn nhận bản vá bảo mật, nên không nên dùng cho máy chủ dựng mới. Bài này giữ lại cho các máy đang chạy CentOS 7 và chưa chuyển được: các bước bên dưới vẫn đúng với những máy đó. Với máy mới, Cloudzone khuyên dùng AlmaLinux 9 hoặc một bản Ubuntu LTS; phần lớn các bước bên dưới áp dụng được, khác chủ yếu ở lệnh quản lý gói (dnf thay cho yum). Xem bài Chọn hệ điều hành nào cho VPS.

Lưu ý: CentOS 7 đã hết vòng đời từ tháng 6/2024 (không còn bản vá bảo mật). Các bước trong bài vẫn áp dụng tương tự cho AlmaLinux / Rocky Linux – dòng kế thừa CentOS; máy mới quý khách nên chọn AlmaLinux hoặc Ubuntu LTS. Xem thêm bài chọn hệ điều hành nào cho VPS.


Virtual Host

  • Thông thường sau khi cài đặt xong Apache chúng ta chỉ cần làm một việc đơn giản là upload mã nguồn vào folder /var/www/html là Website có thể chạy ổn rồi
  • Tuy nhiên nếu chúng ta muốn chạy nhiều hơn 1 website trên cùng 1 VPS thì chúng ta cần phải thiết lập Virtual Host. Đây cũng là một điều thuận lợi hơn để chúng ta cài SSL sau này

Lưu ý

  • Trong bài viết này tôi sẽ thiết lập site có domain là vnexpress.tech. Các bạn tự thay domain trong bài sang domain của các bạn nhé
  • Các bạn nên trỏ domain về Hosting trước khi cài

Hướng dẫn

Bước 1: Tạo các thư mục lưu trữ mã nguồn và log (Thay example.com bằng domain của bạn)

sudo mkdir -p /var/www/example.com/html

sudo mkdir -p /var/www/example.com/log

Bước 2: Cấp quyền phù hợp cho folder

sudo chown -R $USER:$USER /var/www/example.com/html

sudo chmod -R 755 /var/www

Bước 3: Tạo 1 files index.html trong folder /var/www/example.com/html có nội dung như ở đây để kiểm tra sau này

Bước 4: Tạo đường dẫn và viết file cấu hình Apache

sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

Sửa file httpd.conf bằng lệnh sudo vi /etc/httpd/conf/httpd.conf

Thêm dòng sau vào cuối file IncludeOptional sites-enabled/*.conf

Bước 5: Tạo file cấu hình Apache (Bạn nhớ thay example.com) bằng domain của bạn nhé

sudo vi /etc/httpd/sites-available/example.com.conf

Paste nội dung mẫu ở file này vào: Xem File mẫu

Tạo symbolic Link: sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

Cấp quyền cho httpd:

sudo setsebool -P httpd_unified 1

sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

sudo restorecon -R -v /var/www/example.com/log

Bước 6: Khởi chạy lại httpd để nhận file cấu hình mới: service httpd restart

Bước 7: Truy cập vào domain thấy đã thành công

Hướng dẫn này có ích cho bạn?

Cần đặt dịch vụ? Xem cấu hình và giá tại bảng giá Cloudzone - đặt gói trực tuyến, nhận dịch vụ ngay sau thanh toán. Cần tư vấn, mở khung chat ở góc phải màn hình.

Hướng dẫn liên quan