Cách cài đặt Lighttpd với PHP-FPM và MariaDB trên CentOS 8

theanh

Administrator
Nhân viên
Lighttpd là một máy chủ web nguồn mở tập trung vào tính đơn giản và hiệu suất cao. Đây là một máy chủ web nhẹ với mức tiêu thụ bộ nhớ nhỏ và thấp, nhưng vẫn tuân thủ tiêu chuẩn, an toàn và linh hoạt. Máy chủ web Lighttpd là một phần của LLMP Stack, viết tắt của Linux, Lighttpd, MySQL/MariaDB và PHP/PHP-FPM.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình LLMP Stack trên CentOS 8 Server. Chúng tôi sẽ cài đặt máy chủ web Lighttpd với máy chủ cơ sở dữ liệu MariaDB và PHP-FPM trên phiên bản mới nhất của máy chủ CentOS 8.

Điều kiện tiên quyết
  • Máy chủ CentOS 8
  • Quyền root
  • Hiểu biết cơ bản về máy chủ CentOS
Chúng ta sẽ làm gì?
  • Cài đặt máy chủ web Lighttpd
  • Cài đặt máy chủ cơ sở dữ liệu MariaDB
  • Cài đặt PHP-FPM
  • Thiết lập Lighttpd và PHP-FPM
  • Kiểm tra

Bước 1 - Cài đặt máy chủ web Lighttpd​

Đầu tiên, chúng ta sẽ thêm kho lưu trữ EPEL và cài đặt máy chủ web Lighttpd vào hệ thống CentOS 8 của mình. Theo mặc định, Lighttpd có sẵn trên kho lưu trữ EPEL (Extract Packages for Enterprise Linux).

Thêm kho lưu trữ EPEL vào hệ thống CentOS 8 bằng lệnh DNF bên dưới.
Mã:
sudo dnf install epel-release
Sau đó, kiểm tra tất cả các kho lưu trữ khả dụng bằng lệnh sau.
Mã:
dnf repolist
Bây giờ hãy đảm bảo rằng bạn nhận được kho lưu trữ EPEL trên kết quả.



Tiếp theo, cài đặt các gói Lighttpd bằng lệnh bên dưới.
Mã:
sudo dnf install lighttpd -y
Sau khi hoàn tất quá trình cài đặt, hãy khởi động dịch vụ Lighttpd và thêm dịch vụ này vào hệ thống khởi động.
Mã:
systemctl start lighttpd
systemctl enable lighttpd
Bây giờ hãy kiểm tra trạng thái dịch vụ Lighttpd bằng lệnh sau.
Mã:
systemctl status lighttpd
Dưới đây là kết quả bạn sẽ nhận được.



Kết quả là dịch vụ Lighttpd đã hoạt động trên hệ thống CentOS 8.

Tiếp theo, hãy thêm dịch vụ HTTP vào danh sách quy tắc firewalld bằng lệnh 'firewall-cmd' bên dưới.
Mã:
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
Bây giờ hãy mở trình duyệt web của bạn và nhập địa chỉ IP của máy chủ vào địa chỉ bar.

http://192.168.1.50/

Kết quả là, bạn sẽ nhận được 'index.html' mặc định của máy chủ web Lighttpd.


Bước 2 - Cài đặt Máy chủ cơ sở dữ liệu MariaDB​

Trong bước này, chúng ta sẽ cài đặt máy chủ cơ sở dữ liệu MariaDB và thiết lập mật khẩu gốc mặc định cho máy chủ MariaDB.

Để cài đặt máy chủ cơ sở dữ liệu MariaDB, hãy chạy lệnh dnf bên dưới.
Mã:
sudo dnf install mariadb-server -y
Sau khi hoàn tất quá trình cài đặt, hãy khởi động dịch vụ MariaDB và thêm dịch vụ này vào hệ thống khởi động.
Mã:
systemctl start mariadb
systemctl enable mariadb
Bây giờ hãy kiểm tra dịch vụ MariaDB bằng lệnh bên dưới.
Mã:
systemctl status mariadb
Dưới đây là kết quả bạn sẽ nhận được.



Kết quả là dịch vụ MariaDB đã hoạt động trên hệ thống CentOS 8.

Tiếp theo, chạy lệnh 'mysql_secure_installation' bên dưới để thiết lập mật khẩu gốc mặc định.
Mã:
mysql_secure_installation
Bây giờ hãy nhập mật khẩu mới cho máy chủ MariaDB của bạn và nhập 'Y' cho tất cả các cấu hình.
Mã:
Nhập mật khẩu hiện tại cho root (nhập nếu không có): 
OK, mật khẩu đã sử dụng thành công, tiếp tục...

Đặt mật khẩu gốc? [Y/n] Y
Xóa người dùng ẩn danh? [Y/n] Y
Không cho phép đăng nhập gốc từ xa? [Y/n] Y
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] Y
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Và mật khẩu gốc MariaDB đã được cấu hình.

Tiếp theo, đăng nhập vào shell MySQL bằng người dùng gốc mặc định và mật khẩu của bạn.
Mã:
mysql -u root -p
Sau khi đăng nhập, hãy kiểm tra tất cả người dùng khả dụng trên máy chủ MariaDB bằng các truy vấn sau.
Mã:
select User,Host from mysql.user;
Và bạn sẽ nhận được tất cả người dùng mặc định cho máy chủ MySQL. Bây giờ hãy nhập 'exit' để đăng xuất khỏi shell MySQL.

Kết quả là quá trình cài đặt và cấu hình máy chủ cơ sở dữ liệu MariaDB trên hệ thống CentOS 8 đã hoàn tất.

Bước 3 - Cài đặt và cấu hình PHP-FPM​

Đối với bước này, chúng ta sẽ cài đặt và cấu hình PHP-FPM cho máy chủ web Lighttpd.

Cài đặt các gói PHP và PHP-FPM bằng lệnh dnf bên dưới.
Mã:
sudo dnf install php php-fpm lighttpd-fastcgi php-mysqlnd php-pdo php-gd php-mbstring
Sau khi hoàn tất cài đặt, hãy chỉnh sửa cấu hình '/etc/php-fpm.d/www.conf' bằng trình soạn thảo vim.
Mã:
vim /etc/php-fpm.d/www.conf
Thay đổi 'user' và 'group' mặc định thành Lighttpd như bên dưới.
Mã:
user = lighttpd
group = lighttpd
Thay đổi PHP-FPM listen mặc định bằng địa chỉ IP cục bộ có cổng '9000'.
Mã:
listen = 127.0.0.1:9000
Lưu và đóng.

Tiếp theo, hãy chỉnh sửa cấu hình PHP '/etc/php.ini' bằng trình soạn thảo vim.
Mã:
vim /etc/php.ini
Bỏ chú thích dòng sau để được hỗ trợ PHP-CGI cho web Lighttpd server.
Mã:
cgi.fix_pathinfo=1
Lưu và đóng.

Tiếp theo, khởi động dịch vụ PHP-FPM và thêm nó vào hệ thống khởi động.
Mã:
systemctl start php-fpm
systemctl enable php-fpm


Dịch vụ PHP-FPM đã hoạt động, hãy kiểm tra bằng lệnh sau.
Mã:
ss -plnt
systemctl status php-fpm
Dưới đây là kết quả bạn sẽ nhận được.



Kết quả là, PHP-FPM đã hoạt động trên máy chủ CentOS 8 với địa chỉ IP cục bộ và cổng '9000'.

Bước 4 - Thiết lập Lighttpd và PHP-FPM​

Trong bước này, chúng tôi sẽ cấu hình Lighttpd để làm cho nó hoạt động với Cài đặt PHP-FPM.

Theo mặc định, Lighttpd có thể được sử dụng để phục vụ ứng dụng web PHP theo hai cách:
  1. Phục vụ thông qua Dịch vụ PHP-FPM
  2. Phục vụ thông qua PHP-CI tự sinh
Để thực hiện điều đó, chúng ta cần bật mô-đun FastCGI trên máy chủ web Lighttpd và thêm cấu hình của chúng ta vào tệp cấu hình mô-đun FastCGI.

- Bật Mô-đun FastCGI​

Trước khi thực hiện bất kỳ bước nào khác, hãy đến thư mục '/etc/lighttpd/' và chỉnh sửa cấu hình 'modules.conf' bằng trình soạn thảo vim.
Mã:
cd /etc/lighttpd/
vim modules.conf
Bỏ chú thích mô-đun 'FastCGI' như bên dưới.
Mã:
##
## FastCGI (mod_fastcgi)
##
include "conf.d/fastcgi.conf"
Lưu và đóng.

Tiếp theo, chúng ta phải thêm cấu hình PHP vào tệp cấu hình 'conf.d/fastcgi.conf'.

Bên trong thư mục '/etc/lighttpd', hãy chỉnh sửa cấu hình FastCGI 'conf.d/fastcgi.conf' bằng trình soạn thảo vim.
Mã:
vim conf.d/fastcgi.conf

- Sử dụng với Dịch vụ PHP-FPM​

Nếu bạn muốn sử dụng dịch vụ PHP-FPM đang chạy trên địa chỉ IP cục bộ với cổng TCP '9000', hãy dán cấu hình sau.
Mã:
fastcgi.server += ( ".php" =>
 ((
 "host" => "127.0.0.1",
 "port" => "9000",
 "tên tệp tập lệnh bị hỏng" => "enable"
 ))
)
Lưu và đóng.

- Sử dụng Dịch vụ PHP tự sinh sản​

Tiếp theo, nếu bạn muốn sử dụng PHP-CGI tự sinh sản cho Lighttpd, hãy dán cấu hình sau vào đó.
Mã:
fastcgi.server = ( ".php" => 
 (( 
 "bin-path" => "/usr/bin/php-cgi",
 "socket" => "/var/run/lighttpd/php.socket",
 "max-procs" => 4,
 "bin-environment" => (
 "PHP_FCGI_CHILDREN" => "",
 "PHP_FCGI_MAX_REQUESTS" => "500" 
 ),
 "broken-scriptfilename" => "enable" 
 ))
)
Lưu và đóng.

Tiếp theo, tạo một thư mục mới '/var/run/lighttpd' và thay đổi quyền sở hữu thư mục đó thành người dùng 'lighttpd'.
Mã:
mkdir -p /var/run/lighttpd
sudo chown -R lighttpd:lighttpd /var/run/lighttpd
Bây giờ hãy khởi động lại dịch vụ Lighttpd để áp dụng cấu hình mới.
Mã:
systemctl restart lighttpd
Đảm bảo không có lỗi và kết quả là cấu hình Lighttpd với Dịch vụ PHP-FPM hoặc sử dụng PHP-CGI sinh ra đã hoàn tất thành công.


Bước 5 - Kiểm tra​

Để kiểm tra LLMP của chúng tôi cài đặt, chúng ta sẽ tạo một tệp phpinfo mới trên thư mục gốc tài liệu Lighttpd mặc định.

Đi đến thư mục '/var/www/lighttpd' và tạo một tệp php mới 'info.php' bằng trình soạn thảo vim.
Mã:
cd /var/www/lighttpd/
vim info.php
Dán đoạn mã sau vào đó.
Mã:
Lưu và đóng.



Tiếp theo, mở trình duyệt web của bạn và nhập địa chỉ IP của máy chủ theo sau là tệp 'info.php' như bên dưới.

http://192.168.1.50/info.php

Bây giờ bạn sẽ nhận được kết quả như bên dưới.



Như có thể thấy, PHP-FPM là làm việc với máy chủ web Lighttpd.

Kết quả là, quá trình cài đặt LLMP Stack (Linux, Lighttpd, MariaDB và PHP-FPM) trên CentOS 8 Server đã hoàn tất thành công.

Bước 6 - Bổ sung: Kiểm tra PHP và Dịch vụ Lighttpd​

Nếu bạn đang chạy Lighttpd với dịch vụ PHP tự tạo bằng cách sử dụng cấu hình bên dưới.



Bạn có thể kiểm tra dịch vụ PHP bằng cách sử dụng lệnh bên dưới.
Mã:
ss -pl | grep php
systemctl status php-fpm
Dưới đây là kết quả bạn sẽ nhận được.



Như có thể thấy, quy trình PHP tự sinh đang chạy dưới tệp 4 socket. Ngay cả dịch vụ PHP-FPM cũng ngừng hoạt động, Lighttpd vẫn đang hoạt động để xử lý các ứng dụng PHP.
 
Back
Bên trên