Các bước cấu hình Virtual host cho Apache trên CentOS 7
Trên server sẽ cấu hình chạy 2 web site là:
- web1.com – đường dẫn: /var/www/web1
- web2.com – đường dẫn: /var/www/web2
Cài đặt Apache Web Server
Chạy lệnh sau để cài đặt Apache:
yum -y update && yum -y install httpd
Sau khi cài đặt xong các bạn chạy lệnh sau để khởi động Apache Service:
systemctl start httpd.service && systemctl enable httpd.service
Tiếp theo cấu hình firewall mở port http/https, mặc định trong centos 7 sử dụng FirewallD.
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
Như vậy, ta đã cài đặt Apache web server xong, để kiểm tra Apache hoạt động chưa các bạn mở trình duyệt web truy cập địa chỉ ip của server (http://your-ip-address ) sẽ ra default page của Apache.
Cấu hình Virtual Host
Tạo Folder chứa code cho 2 website web1 và web2 (với tuỳ chọn-p
cho phép ta tạo ra những thư mục con lồng trong nó)
sudo mkdir -p /var/www/web1 sudo mkdir -p /var/www/web2
Chỉnh sửa quyền truy cập sao cho quyền đọc được chấp nhận với tất cả các file và thư mục bên trong /var/www
sudo chmod -R 755 /var/www
Tạo ra file index.html đơn giản cho 2 website để kiểm thử hoạt động của Virtual host.
touch /var/www/web1/index.html touch /var/www/web2/index.html echo "<center><h1>This is website web1.com</h1></center>" > /var/www/web1/index.html echo "<center><h1>This is website web2.com</h1></center>" > /var/www/web2/index.html
Tạo 2 thư mục lưu trữ File cấu hình Virtual host cho apache:
sudo mkdir /etc/httpd/sites-available sudo mkdir /etc/httpd/sites-enabled
Note: Những thư mục này được giới thiệu bởi Debian , nhưng ta thêm vào đây để việc quản lí host linh hoạt hơn, vì nó khiến việc kích hoạt và vô hiệu hóa các virtual host trở nên dễ dàng hơn.
Trong đó:
- sites-available chứa các cấu hình Virtual host có trên hệ thống.
- sites-enabled chứa các cấu hình Virtual host được kích hoạt để chạy.
Cấu Apache nhận cấu hình những virtual host trongsites-enabled
.
sudo nano /etc/httpd/conf/httpd.conf
Thêm dòng sau vào cuối file:
IncludeOptional sites-enabled/*.conf
Lưu lại và thoát.
Tạo File Virtual host cho web1.com:
sudo nano /etc/httpd/sites-available/web1.com.conf
Thêm nội dung sau vào file:
<VirtualHost *:80> ServerAdmin admin@web1.com ServerName web1.com ServerAlias www.web1.com DocumentRoot /var/www/web1 DirectoryIndex index.php index.html ErrorLog /var/www/web1/error.log CustomLog /var/www/web1/requests.log combined </VirtualHost>
Lưu lại và thoát.
Trong đó:
- ServerAdmin khai báo email của quản trị viên.
- ServerName khai báo domain mà website sẽ lắng nghe.
- ServerAlias (tuỳ chọn) khai báo Alias của domain, thương là www.
- DirectoryIndex loại file sẽ được tìm đến để khởi chạy.
- DocumentRoot khai báo đường dẫn chứa code của website.
- ErrorLog và CustomLog khai báo đường dẫn lưu file log của website.
Tương tự các bước như trên, ta tạo File Virtual host cho web2.com:
sudo nano /etc/httpd/sites-available/web2.com.conf
Thêm nội dung sau vào file:
<VirtualHost *:80> ServerAdmin admin@web2.com ServerName web2.com ServerAlias www.web2.com DocumentRoot /var/www/web2 DirectoryIndex index.php index.html ErrorLog /var/www/web2/error.log CustomLog /var/www/web2/requests.log combined </VirtualHost>
Lưu lại và thoát.
Kích hoạt Virtual host
Như đã để cập ở trên, Apache sẽ chỉ nhận những cấu hình Virtual host trong thư mục sites-enabled. vì vậy ta sẽ tạo một liên kết ( symbolic link) vào thư mụcsites-enabled
của mỗi virtual host:
sudo ln -s /etc/httpd/sites-available/web1.com.conf /etc/httpd/sites-enabled/web1.com.conf sudo ln -s /etc/httpd/sites-available/web2.com.conf /etc/httpd/sites-enabled/web2.com.conf
Restart Apache để lưu thay đổi.
sudo apachectl restart
Như vậy ta đã cấu hình xong Virtual host cho 2 website.
Kiểm tra hoạt động
Trên trình duyệt web của User, bạn vào web1.com và web2.com để kiểm tra lần lượt,
Lưu ý: tên miền cần được trỏ về IP của Host.
Chúc các bạn thành công!