Máy chủ ảo Apache cho phép bạn chạy nhiều trang web trên một máy. Với Máy chủ ảo, bạn có thể chỉ định document root cho trang web (thư mục chứa source web), tạo chính sách bảo mật riêng cho từng trang, sử dụng các chứng chỉ SSL khác nhau và hơn thế nữa. Bài viết này mình sẽ hướng dẫn bạn cách thiết lập Máy chủ ảo Apache trên máy chủ CentOS 8.
Để cài đặt được trước tiên máy chủ bạn phải cài đặt Apache, bạn có thể xem bài viết hướng dẫn cài LAMP trên CentOS 8 sau
Cấu trúc đường dẫn thư mục document root cho từng website sẽ như sau.
/var/www/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
Tạo website mới
Đối với mổi tên miền được lưu trữ trên máy chủ bạn sẽ phải tạo từng thư mục riêng để lưu trữ cho từng mã nguồn bên trong /var/www
và trong thư mục tên miền bạn sẽ tạo một thư mục là public_html
để lưu trữ mã nguồn.
Ngay bây giờ mình sẽ tạo thử 1 website có tên là lab.dotrungquan.info như sau
$ mkdir -p /var/www/example.com/public_html
Thay example.com
bằng tên miền của bạn.
Bây giờ mình sẽ thử nghiệm bằng cách tạo 1 file index.html
trong thư mục này với mã sau
$ /var/www/example.com/public_html/index.html
- Ví dụ
$ vi /var/www/lab.dotrungquan.info/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to Linux Can Ban</title>
</head>
<body>
<h1>Success! Linux Can Ban home page!</h1>
</body>
</html>
Bạn thực hiện save lại và phân quyền, change owner cho thư mục website như sau.
$ chown -R apache: /var/www/example.com
Tạo Virtual Host
Mặc định Apache đã được cấu hình để tải tất cả các file có định dạng là .conf
từ /etc/httpd/conf.d/
. Để tạo một Virtual Host cụ thể bạn thực hiện như sau. Sau đó nhập vào
$ vi /etc/httpd/conf.d/example.com
- Ví dụ
$ vi /etc/httpd/conf.d/lab.dotrungquan.info
Sau đó nhập vào nội dung như sau, thay thế example.com
bằng tên miền của bạn
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
Chú thích
ServerName
: Tên miền mà cấu hình máy chủ ảo sẽ được sử dụng. Đây là tên miền của bạn.ServerAlias
: Tất cả các tên miền khác mà cấu hình máy chủ ảo cũng sẽ được sử dụng, chẳng hạn nhưwww
tên miền phụ.DocumentRoot
: Thư mục mà Apache phục vụ các tệp miền.Options
: Lệnh này kiểm soát các tính năng của mỗi máy chủ thư mục.-Indexes
: Ngăn chặn danh sách thư mục.FollowSymLinks
: Tùy chọn này báo cho máy chủ web theo các liên kết tượng trưng.
AllowOverride
: Chỉ định chỉ thị nào được khai báo trong.htaccess
tệp có thể ghi đè chỉ thị cấu hình.ErrorLog
,CustomLog
: Vị trí od các tệp nhật ký.
Chỉnh sửa tập tin theo nhu cầu của bạn và lưu nó.
Tên tệp cấu hình phải kết thúc bằng .conf
. Bạn có thể đặt tên cho tập tin cấu hình như bạn muốn. Cách thực hành tốt nhất là sử dụng tên miền làm tên của tệp cấu hình máy chủ ảo.
- Kiểm tra cú pháp tệp cấu hình với:
$ apachectl configtest
Trả về kết quả Syntax OK là hoàn tất. Và sau đó bạn hãy khởi động lại dịch vụ httpd bằng lệnh sau.
$ systemctl restart httpd
Với hướng dẫn trên mình đã hướng dẫn bạn tạo một website trên máy chủ Apache và định cấu hình Virtua host, với các website khác bạn cũng thực hiện tương tự nhé.