Đã đăng: 4 năm
1. CÀI ĐẶT APACHE 2.4 TRÊN CENTOS 7
Kiểm tra hostname bằng lệnh hostname lệnh này sẽ cho kết quả đầy đủ nhất dạng FQDN hoặc hostname -f hiện thị hostname dạng ngắn gọn.

Tham khảo thêm bài viết cách thay đổi hostname và hướng dẫn disable SElinux trên CentOS.

LỆNH CÀI APACHE WEB SERRVER
yum install httpd
Việc cài đặt diễn ra nhanh chóng, trước khi cấu hình chi tiết Apache(httpd) các bạn nên backup file config để phòng trường hợp sai sót còn có cái phục hồi lại.

cp /etc/httpd/conf/httpd.conf ~/httpd.conf.bak
Câu lệnh sẽ tạo một file dự phòng có tên httpd.conf.bak trong profile của root. Trong linux file backup mình có thói quen thêm phần mở rộng là .bak muốn khôi phục cấu hình về mặc định chỉ cần sửa lại tên file là được.

TỐI ỨU APACHE
Để Web Server đạt hiệu suất cao nhất bạn dùng vi editor mở file httpd.conf chỉnh sửa một chút.

vi /etc/httpd/conf/httpd.conf
Thêm vào các thông số bên dưới.

KeepAlive Off

<IfModule prefork.c>
StartServers 2
MinSpareServers 4
MaxSpareServers 10
MaxClients 80
MaxRequestsPerChild 3000
</IfModule>
Cấu hình trên áp dụng cho Cloud VPS Linode có cấu hình thấp 1GB RAM.

KeepAlive: chức năng duy trì connection và đóng sau khoảng thời gian timeout được chỉ định, khi không được cấu hình đúng cách nó làm tăng lượng memory không giải phóng được tài nguyên.
<IfModule prefork.c> … </IfModule>: khai báo dùng module MPM prefork để mỗi process xử lý một request.
StartServers: thông số này quy định số process sinh ra khi khởi động Apache.
MinSpareServers, MaxSpareServers: quy định số process con nhàn rỗi nhỏ nhất và lớn nhất được sinh ra để chờ xử lý request từ client.
MaxClients: số requests được xử lý đồng thời.
MaxRequestsPerChild: giới hạn số requests tối đa đến web server, giá trị 0 có nghĩa là không giới hạn, nếu giá trị này quá thấp sẽ làm giảm hiệu suất vì các requests mới sẽ phải đợi để được xử lý.
Không có setup chung cho các thông số này căn cứ vào lượng truy cập thực tế trên mỗi trang web mới có thông số cụ thể.

Bạn tham khảo thêm các bài viết về cách tối ưu Web Server để biết thêm chi tiết.

KHỞI ĐỘNG LẠI APACHE
Trên CentOS 7 chạy lệnh.

systemctl restart httpd.service
Bạn vẫn có thể dùng câu lệnh service httpd restart như trên CentOS 5/6 bình thường.

KIỂM TRA CÀI ĐẶT APACHE & MODULE MPM PREFORK
Xem dịch vụ httpd (apache) và mpm prefork đã start hay chưa dùng lệnh sau.

cat /etc/httpd/logs/error_log | grep prefork
Check MPM Prefork

netstat -tulpn
Kiểm tra httpd status

Kết quả như trên là đã start thành công rồi, Module pmp prefork, apache đã chạy với pid 20149, Web server đang lắng nghe trên port 80.

Làm đến đâu mình thường check kết quả đến đó nếu ok mới cấu hình tiếp. Một số bạn thường copy paste lệnh đây là một thói quen cấu hình linux không tốt dẫn đến nhiều bug rất khó kiểm soát.

Để xem từ ngoài internet đã truy cập được website hay chưa bạn mở trình duyệt ra rồi nhập địa chỉ IP Public của máy chủ ảo trên thanh địa chỉ http://IP_Public nếu hiện ra trang Apache 2 Test Page là bạn đã thành công rồi.



2. CẤU HÌNH VIRTUAL HOSTS TRÊN APACHE
Bây giờ Apache đã được tối ưu, nếu muốn chạy nhiều website trên một VPS bạn phải tạo Virtual Hosts cho Apache. Nói chung thì, kể cả có chạy một website duy nhất thì cũng nên tạo Virtual Hosts sau này muốn cài cắm thêm cũng dễ.

TẠO THƯ MỤC CẦN THIẾT VÀ PHÂN QUYỀN
mkdir -p /var/www/thuysys.com/public_html
mkdir -p /var/www/thuysys.com/logs
mkdir -p /var/www/thuysys.com/backup
Khi triển khai bất kỳ một trang web nào mình sẽ tạo một thư mục có tên là domain của trang web, trong đó sẽ có 3 folder:

public_html: bạn sẽ để sourcecode của trang web vào đây.
logs: để chứa log của trang web.
backup: chứa các file backup định kỳ hoặc các file cấu hình.
Tiếp theo cần phân quyền lại cho thư mục vừa tạo vì chúng đang thuộc quyền sở hữu của root, bạn phải chuyển quyền sở hữu sang cho user apache là user quản trị webserver.

chown -R apache:apache /var/www/thuysys.com
Tham số -R này sẽ chuyển toàn bộ thư mục bao gồm cả files và subfolder từ root sang cho apache.

Với mã nguồn WordPress bạn cần để ý việc phân quyền cho thư mục để tránh lỗi trắng trang và lỗi bắt nhập tài khoản FTP khi cài hoặc xóa plugin,theme.


Tham khảo:

Cách phân quyền trên linux
TẠO VIRTUAL HOSTS
Trong thư mục conf.d tạo file vhosts.conf đây là file chứa cấu hình Virtual hosts. Bên dưới là mẫu cho web thuysys.com, bạn thay đổi các giá trị cho phù hợp với domain của bạn.

Trước hết, mở lại file vi /etc/httpd/conf/httpd.conf thêm vào dòng bên dưới.

NameVirtualHost *:80
Rồi mở file vi /etc/httpd/conf.d/vhost.conf thêm vào config bên dưới.

<VirtualHost *:80>
ServerAdmin admin@thuysys.com
ServerName thuysys.com
ServerAlias www.thuysys.com
DocumentRoot /var/www/thuysys.com/public_html/
ErrorLog /var/www/thuysys.com/logs/error.log
CustomLog /var/www/thuysys.com/logs/access.log combined
Trong đó:

VirtualHost *:80: port dùng cho trang web có domain được mô tả trong ServerAlias.
DocumentRoot: đường dẫn đến thư mục chứa sourcecode.
ServerAdmin: đơn giản chỉ là mail quản trị viện.
ServerName: root domain của virtual host được người dùng gõ trên trình duyệt.
ServerAlias: tên gọi khác của root domain, còn được dùng để cấu hình www và non www .
ErrorLog: ghi lại log các lỗi phát sinh.
CustomLog: ghi lại log các truy cập.
Bạn nên cấu hình ghi lại log cho web server để debug và theo dõi truy cập đây cũng nguồn dữ liệu quan trọng tạo cơ sở để cấu hình web server và thiết lập tường lửa, nếu cần tối ưu tốc độ bạn có thể tạm thời vô hiệu hóa đi cũng được.

Nói chung không có gì phức tạp cả, từ giờ khi muốn thêm trang web khác bạn chỉ việc thêm tiếp một cái <VirtualHost>…</VirtualHost> là xong.
Hoặc bạn tách mỗi cặp thẻ Virtual Host ra một file, đặt đuôi mở rộng là .conf đấy cũng là cách hay để quản lý nhiều domain.

TẠO INDEX.HTML TEST WEB SERVER
Muốn biết Virtual Hosts hoạt động thế nào thì tạo một file index.html đơn giản vi /var/www/thuysys.com/public_html/index.html

Với nội dung sau:

<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Cau hinh LAMP VirtualHost thanh cong</h1>
</body>
</html>
CẤU HÌNH CHO APACHE KHỞI ĐỘNG CÙNG MÁY CHỦ
systemctl enable httpd.service
Thế là xong từ giờ webserver sẽ tự khởi động mỗi khi start VPS.

Xong đâu đấy mở trình duyệt ra truy cập domain thuysys.com xem để kiểm tra hoặc dùng lệnh curl -I http://www.thuysys.com nếu trả vềkết quả như bên dưới là đã thành công rồi.

[root@srv1 ~]# curl -I http://www.thuysys.com
HTTP/1.1 200 OK
3. KẾT BÀI
Đây chỉ là cấu hình khá cơ bản còn nhiều thông số khác cần phải quan tâm khi cấu hình Webserver, hiện tại máy chủ của bạn mới chỉ xử lý được các file html đơn giản.

Muốn thực thi được mã nguồn PHP như WordPress cần cài cắm và cấu hình MySQL/MariaDB & PHP thêm, mình xin dừng bài viết tại đây hẹn các bạn ở bài tới.
Chia sẻ trên dòng thời gian