Việc cài đặt máy chủ web (webserver) có thể sẽ không mấy thân thiện dành cho những người mới hoặc chưa có nhiều về kiến thức công nghệ. Việc sử dụng các loại máy chủ riêng (VPS hoặc Dedicated Server), thực sự đòi hỏi bạn phải có kiến thức chuyên sâu về hệ điều hành server, hiểu về các dịch vụ liên quan, trong bài viết này mình chỉ viết một trong số đó

Như các bạn đã biết, webserver thì có rất nhiều loại, trên windows server thì khác, trên môi trường Linux lại khác. Mình đã có bài viết hướng dẫn cài webserver trên windows 2012 rồi, bài này mình giới thiệu về các loại webserver trên môi trường Linux để chạy wordpress

  • LAMP Webserver – Linux + Apache + MySQL (hoặc MariaDB) + PHP 5.
  • LEMP Webserver – Linux + NGINX (EngineX) + MySQL (hoặc MariaDB) + PHP-FPM 5.
  • NGINX hoặc Apache và HHVM.
  • NGINX làm Reserved Proxy cho Apache.

Trong bài viết này về chủ đề Install and Configue Web Server, tôi xin giới thiệu cách cấu hình một Web Server (Apache) trên CentOS7 để quản lý hosting website, cấu hình Virtual Directory, cấu hình Virtual Host và cấu hình Website sử dụng mã hóa với ssl, bài viết sau mình sẽ giới thiệu về cách cài đặt, cấu hình webserver NGINX trên Ubuntu

I. Chuẩn bị

Web Server (Apache) sẽ được sử dụng để hosting nhiều Websites (opalis.vn và ltl.vn) nên cần có một DNS Server hỗ trợ phân giải được 2 tên miền opalis.vn và ltl.vn. Có thể tham khảo cách cấu hình DNS Server tại đây

II. Cài đặt Apache (httpd)

Mặc định, CentOS7 chưa có các gói cần thiết để đóng vai trò như một Web Server (httpd). Kiểm tra hệ thống đã cài đặt dịch vụ Web Server hay chưa bằng lệnh:
rpm –qa httpd
Nếu kết quả trả về là trống thì đồng nghĩa với việc httpd chưa được cài đặt. Để tiến hành cài đặt dịch vụ httpd từ Repository thông qua Internet dùng lệnh:
yum install -y httpd

III. Cấu hình Apache hosting website opalis.vn

Trên CentOS, Source code và các file liên quan đến trang web (gọi tắt là Source Web) sẽ được chứa trong thư mục /var/www/html/. Tuy nhiên, để dễ dàng quản lý các Source Web trong trường hợp phải hosting nhiều websites trên cùng một Web Server thì người quản trị nên tạo các thư mục con để chứa Source cho từng Website.
Tạo thư mục chứa Source Web cho opalis.vn với lệnh mkdir rồi tạo một trang index.htm (dùng để làm trang chủ cho opalis.vn) trong thư mục vừa tạo với lệnh vi như sau:
mkdir /var/www/html/opalis
vi /var/www/html/opalis/index.htm
Nội dung trang index.htm:
Success! The web service is working
Gán phân quyền cho phép thực thi các file trong thư mục /var/www/html/opalis vì mặc định user quản trị Web Service (httpd) chưa có quyền thực thi các file này.
chmod -R 755 /var/www/html/opalis/
Thiết lập các thông số trong tập tin cấu hình chính của Web Server với lệnh vi
vi /etc/httpd/conf/httpd.conf
Thay đổi thông số tại các dòng sau:
#Dòng 95 – Chỉ định tên và port truy cập cho opalis.vn
ServerName opalis.vn:80
#Dòng 119 – Vị trí lưu trữ Source Web của Website opalis.vn
DocumentRoot “/var/www/html/opalis”
#Dòng 160 – Chỉ định index.htm làm trang chủ cho opalis.vn
DirectoryIndex index.htm
Sau khi hoàn tất việc cấu hình httpd, tiến hành khởi động dịch vụ và thiết lập cho dịch vụ tự động khởi chạy trong những lần khởi động Server tiếp theo lần lượt bằng các lệnh:
systemctl start httpd
systemctl enable httpd

IV. Cấu hình https với self-signed certificate và key

Cài đặt mô đun mod_ssl hỗ trợ cho openssl tạo ra các Certificates và Key bằng lệnh yum:
yum install –y mod_ssl
Dùng lệnh mkdir để tạo thư mục chứa các Certificate và Key sẽ tạo ở bước tiếp theo
mkdir /etc/httpd/ssl
Khởi tạo ra 2 file apache.key và apache.crt chứa trong thư mục /etc/httpd/ssl với lệnh openssl và các thông số kèm theo:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
Trả lời các câu hỏi bên dưới để bổ sung thông tin cho Cert và Key sẽ tạo hoặc nhấn Enter liên tục để chấp nhận các giá trị mặc định do openssl định sẵn.
Country Name (2 letter code) [XX]:VN
State or Province Name (full name) []:HOCHIMINH
Locality Name (eg, city) [Default City]:HOCHIMINH
Organization Name (eg, company):NANOSOLUTION
Organizational Unit Name (eg, section) []:ITDEPT
Common Name (eg, your name or your server’s hostname) []:websvr
Email Address []: opalis2507@gmail.com

Cấu hình cho website opalis.vn sử dụng SSL thông qua tập tin ssl.conf và lệnh vi

vi /etc/httpd/conf.d/ssl.conf
Thay đổi các thông số sau :
#Dòng 60 – Chỉ định Website được sử dụng SSL (https)
ServerName opalis.vn:443
#Dòng 70 – Bật tính năng SSL
SSLEngine on
#Dòng 100 – Chỉ Certificate được dùng để xác thực Website.
SSLCertificateFile /etc/httpd/ssl/apache.crt
#Dòng 107 – Chỉ định Key dùng để mã hóa Website.
SSLCertificateKeyFile /etc/httpd/ssl/apache.key
Sau khi hoàn tất cấu hình, tiến hành khởi động lại dịch vụ httpd để Web Server nhận các thông số cấu hình mới.
systemctl restart httpd.service

V. Cấu hình Virtual Directory

Tạo 2 thư mục itdept và saledept trong var/www/html/opalis để làm Virtual Directory của Website opalis.vn với lệnh mkdir
mkdir /var/www/html/opalis/itdept
mkdir /var/www/html/opalis/saledept
Lần lượt tạo trang index.htm để làm trang chủ cho Virtual Directory của itdept và saledept với lệnh vi và nội dung kèm theo
vi /var/www/html/opalis/itdept/index.htm
Nội dung trang index.htm của itdept
This is virtual directory of itdept
vi /var/www/html/opalis/saledept/index.htm
Nội dung trang index.htm của itdept
This is virtual directory of saledept

Thiết lập các thông số để tạo 2 virtual directory itdept và saledept cho website opalis.vn trong tập tin userdir.conf với lệnh vi.
vi /etc/httpd/conf.d/userdir.conf
Thay đổi thông số tại các dòng sau:
#Dòng 17 – Thêm dấu # để bật chức năng Virtual Directory
# UserDir disabled
#Dòng 24 – Bỏ dấu # và thêm tên các Virtual Directory cần tạo.
UserDir itdept saledept
#Dòng 32 đến 37 – Thiết lập các thông số cho từng Virtual Directory.
#Dòng 32 – Khi báo đường dẫn đến thư mục Source Web của Virtual Directory itdept
<Directory “/var/www/html/opalis/itdept”>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
#Dòng 36 – Khai báo trang chủ của Virtual Directory itdept
DirectoryIndex index.htm
#Dòng 38 đến 43 – Khai báo các thông số cho Virtual Directory saledept tương tự như itdept
<Directory “/var/www/html/opalis/saledept”>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
DirectoryIndex index.htm

Sau khi hoàn tất cấu hình, tiến hành khởi động lại dịch vụ httpd để Web Server nhận các Virtual Directory đã cấu hình.
systemctl restart httpd.service

VI. Cấu hình Virtual Host.

Tạo thư mục con ltl trong /var/www/html để chứa Source Web cho ltl.vn bằng lệnh mkdir
mkdir /var/www/html/ltl
Tạo trang homepage.html để làm trang chủ cho ltl.vn bằng lệnh vi
vi /var/www/html/ltl/homepage.html
Nội dung trang homepage.html
This is virtual host of LTL

Cấu hình vhost để Web Server (Apache) hosting thêm website ltl.vn bằng cách điều chỉnh tập tin vhost.conf với lệnh vi.

vi /etc/httpd/conf.d/vhost.conf
# Thiết lặp vhost cho trang chính (opalis.vn)
DocumentRoot /var/www/html/opalis
ServerName opalis.vn
ServerAlias http://www.opalis.vn
# Thiết lập vhost cho trang ltl.vn
# Vị trí lưu trữ Source Web của website ltl.vn
DocumentRoot /var/www/html/ltl
#Tên truy cập cho website ltl.vn
ServerName ltl.vn
#Tên truy cập khác (bí danh) của website ltl.vn
ServerAlias http://www.ltl.vn
#Chỉ định hompage.html làm trang chủ cho ltl.vn
DirectoryIndex homepage.html
#Tên và vị trí lưu error log cho vhost ltl.vn
ErrorLog logs/virtual.host-error_log-ltl
#Tên và vị trí lưu access log cho vhost ltl.vn
CustomLog logs/virtual.host-access_log-ltl combined