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!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *