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

theanh

Administrator
Nhân viên
LLMP Stack (Linux, Lighttpd, MariaDB và PHP-FPM) là một phần mềm stack để cung cấp các ứng dụng web. Mỗi thành phần của LLMP Stack đều miễn phí, mã nguồn mở và có thể được cài đặt trên nhiều hệ điều hành. LLMP Stack có thể cung cấp các trang web HTML tĩnh và các ứng dụng PHP như WordPress, Drupal và Joomla.

Hướng dẫn này sẽ chỉ cho bạn cách cài đặt và cấu hình LLMP Stack (Linux, Lighttpd, MariaDB và PHP-FPM) trên hệ thống Ubuntu 22.04 mới nhất. Hướng dẫn này bao gồm hướng dẫn về cách thiết lập Máy chủ ảo trên máy chủ web Lighttpd và bật SSL/HTTPS.

Điều kiện tiên quyết​

Đối với hướng dẫn này, chúng ta sẽ cần các điều kiện tiên quyết sau:
  • Máy chủ Ubuntu 22.04.
  • Người dùng không phải root có quyền root/quản trị viên

Cài đặt Máy chủ web Lighttpd​

Lighttpd hay Lighty là máy chủ web hiệu suất cao được tạo ra như bằng chứng khái niệm cho vấn đề c10k "cách xử lý 10.000 kết nối song song trên một máy chủ duy nhất".

Lighttpd được thiết kế để có tốc độ, bảo mật, nhẹ và linh hoạt. Nó sử dụng CPU và bộ nhớ tối thiểu và cung cấp các tính năng nâng cao như FastCGI, CGI, Auth, Compression, URL Rewriting, v.v.

Trước khi cài đặt bất kỳ gói nào, hãy chạy lệnh apt bên dưới để cập nhật và làm mới chỉ mục gói của kho lưu trữ Ubuntu của bạn.
Mã:
sudo apt update
Bây giờ hãy cài đặt máy chủ web Lighttpd bằng lệnh sau.
Mã:
sudo apt install lighttpd
Nhập Y để xác nhận cài đặt và nhấn ENTER để tiếp tục. Bây giờ quá trình cài đặt Lighttpd sẽ bắt đầu.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22747%22%20height=%22341%22%3E%3C/svg%3E


Sau khi quá trình cài đặt Lighttpd hoàn tất, hãy chạy lệnh bên dưới để bắt đầu và kích hoạt dịch vụ Lighttpd.
Mã:
sudo systemctl start lighttpd
sudo systemctl enable lighttpd
Kiểm tra và xác minh dịch vụ Lighttpd bằng lệnh bên dưới. Bạn sẽ thấy dịch vụ Lighttpd đang chạy và được bật, nghĩa là dịch vụ này sẽ tự động chạy khi khởi động hệ thống.
Mã:
sudo systemctl status lighttpd

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22281%22%3E%3C/svg%3E


Nếu bạn có tường lửa UFW đang chạy trên máy Ubuntu của mình, thì bạn phải thêm các quy tắc tường lửa cho lưu lượng truy cập đến vào trang web Lighttpd máy chủ.

Chạy lệnh ufw bên dưới để thêm các quy tắc Lighttpd vào tường lửa UFW, sau đó bạn có thể kiểm tra và xác minh danh sách các quy tắc UFW như bên dưới.
Mã:
sudo ufw allow "Lighttpd Full"
sudo ufw status
Bạn sẽ thấy hồ sơ ứng dụng "Lighttpd Full" được thêm vào tường lửa UFW, điều này có nghĩa là tất cả các cổng HTTP và HTTPS đến đều được phép.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22578%22%20height=%22297%22%3E%3C/svg%3E


Bây giờ hãy kiểm tra thư mục "/var/www/html" bằng lệnh bên dưới. Nếu bạn không thấy tệp index.html, bạn có thể tạo một tệp bằng lệnh bên dưới.
Mã:
ls -lah /var/www/html
echo "[HEADING=1]Welcome to Lighttpd Web Server[/HEADING]" > /var/www/html/index.html
Cuối cùng, hãy mở trình duyệt web và truy cập địa chỉ IP của máy chủ (tức là http://192.168.5.28/) và bạn sẽ thấy trang index.html.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22149%22%3E%3C/svg%3E

Cài đặt MariaDB Server​

Sau khi cài đặt máy chủ web Lighthttpd, đã đến lúc cài đặt máy chủ MariaDB vào hệ thống Ubuntu. Bài viết này cũng bao gồm cách triển khai máy chủ MariaDB một cách an toàn bằng công cụ "mysql_secure_installation" do gói MariaDB cung cấp.

Chạy lệnh apt sau để cài đặt máy chủ MariaDB. Ở trạng thái hiện tại, kho lưu trữ Ubuntu mặc định cung cấp MariaDB v10.6.
Mã:
sudo apt install mariadb-server
Bây giờ hãy nhập Y để xác nhận cài đặt và nhấn ENTER. Và quá trình cài đặt MariaDB sẽ bắt đầu.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22355%22%3E%3C/svg%3E


Sau khi quá trình cài đặt MariaDB hoàn tất, hãy chạy lệnh systemctl bên dưới để bắt đầu và kích hoạt dịch vụ MariaDB.
Mã:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Kiểm tra và xác minh dịch vụ MariaDB bằng lệnh sau. Và bạn sẽ thấy dịch vụ MariaDB đang chạy.
Mã:
sudo systemctl status mariadb
Tiếp theo, bạn sẽ thiết lập triển khai MariaDB bằng công cụ "mysql_secure_instalaltion", công cụ này có thể giúp bạn thiết lập mật khẩu gốc cho máy chủ MariaDB và vô hiệu hóa đăng nhập gốc từ xa, dọn dẹp cơ sở dữ liệu mặc định và quyền truy cập của người dùng ẩn danh, v.v.

Bây giờ hãy chạy lệnh "mysql_secure_installation" như sau bên dưới.
Mã:
sudo mysql_secure_installation
Cài đặt MariaDB mặc định không có mật khẩu gốc. Nhấn ENTER để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22688%22%20height=%22192%22%3E%3C/svg%3E


Bây giờ nhập "n" để giữ nguyên phương thức xác thực mặc định (dành cho người dùng gốc MariaDB).


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22731%22%20height=%22152%22%3E%3C/svg%3E


Nhập Y để thiết lập mật khẩu gốc cho máy chủ MariaDB của bạn. Hãy đảm bảo sử dụng mật khẩu mạnh cho quá trình triển khai của bạn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22717%22%20height=%22180%22%3E%3C/svg%3E


Bây giờ hãy nhập Y để vô hiệu hóa đăng nhập từ xa cho người dùng gốc MariaDB. Nếu bạn không ở trong môi trường cụm, bạn nên tắt chức năng đăng nhập từ xa cho người dùng gốc MariaDB.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22688%22%20height=%22127%22%3E%3C/svg%3E


Bây giờ hãy nhập Y một lần nữa để xóa người dùng ẩn danh mặc định khỏi cài đặt MariaDB của bạn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22693%22%20height=%22178%22%3E%3C/svg%3E


Nhập Y lần nữa để xóa kiểm tra cơ sở dữ liệu mặc định mà người dùng ẩn danh có thể truy cập trên MariaDB.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22683%22%20height=%22194%22%3E%3C/svg%3E


Cuối cùng, nhập Y lần nữa để tải lại tất cả các quyền bảng trên Máy chủ MariaDB và áp dụng các thay đổi mới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22709%22%20height=%22266%22%3E%3C/svg%3E

Cài đặt PHP-FPM 8.1​

Bây giờ bạn đã cài đặt máy chủ web Lighttpd và máy chủ cơ sở dữ liệu MariaDB. Bây giờ bạn sẽ cài đặt PHP-FPM trên hệ thống Ubuntu của mình. Ở trạng thái hiện tại, kho lưu trữ Ubuntu cung cấp phiên bản PHP 8.1 mới nhất.

Chạy lệnh apt bên dưới để cài đặt PHP-FPM 8.1 trên hệ thống Ubuntu của bạn.
Mã:
sudo apt install php-fpm php-common php-mysql php-cli php-curl php-xml
Nhập Y để xác nhận cài đặt và nhấn ENTER. Bây giờ, quá trình cài đặt sẽ bắt đầu.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22255%22%3E%3C/svg%3E


Sau khi quá trình cài đặt các gói PHP-FPM hoàn tất, hãy chạy lệnh bên dưới để bắt đầu và kích hoạt dịch vụ PHP-FPM.
Mã:
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm
Kiểm tra và xác minh dịch vụ PHP-FPM bằng lệnh bên dưới. Bạn sẽ thấy dịch vụ PHP-FPM đang chạy.
Mã:
sudo systemctl status php8.1-fpm

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22279%22%3E%3C/svg%3E


Bạn cũng có thể kiểm tra dịch vụ PHP-FPM bằng lệnh "ss". Tiến trình PHP-FPM mặc định chạy dưới tệp sock và bạn có thể kiểm tra tiến trình PHP-FPM bằng lệnh bên dưới.
Mã:
ss -pl | grep php
Bạn sẽ chạy được dịch vụ PHP-FPM trên tệp sock "/run/php/php8.1-fpm.sock".


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22139%22%3E%3C/svg%3E

Cấu hình PHP-FPM bằng Lighttpd​

Quá trình cài đặt các gói LLMP Stack đã hoàn tất, nhưng bạn vẫn cần thiết lập máy chủ web Lighttpd để nó có thể hoạt động với dịch vụ PHP-FPM. Và điều này có thể được thực hiện bằng cách sử dụng các mô-đun FastCGI trên máy chủ web Lighttpd.

Đầu tiên, hãy chỉnh sửa tệp cấu hình PHP-FPM "/etc/php/8.1/fpm/php.ini" bằng trình soạn thảo nano.
Mã:
sudo nano /etc/php/8.1/fpm/php.ini
Thêm cấu hình sau vào tệp.
Mã:
cgi.fix_pathinfo = 1
Lưu và đóng tệp khi bạn hoàn tất.

Bây giờ hãy khởi động lại dịch vụ PHP-FPM bằng lệnh bên dưới để áp dụng các thay đổi mới.
Mã:
sudo systemctl restart php8.1-fpm
Tiếp theo, hãy chạy lệnh sau để bật Lighttpd "fastcgi" và Mô-đun "fastcgi-php-fpm".
Mã:
sudo lighty-enable-mod fastcgi fastcgi-php-fpm
Chỉnh sửa tệp cấu hình "/etc/lighttpd/conf-available/15-fastcgi-php-fpm.conf" bằng trình soạn thảo nano. Tệp này là cấu hình mô-đun fastcgi-php-fpm sẽ được sử dụng để giao tiếp với tệp sock PHP-FPM.
Mã:
sudo nano /etc/lighttpd/conf-available/15-fastcgi-php-fpm.conf
Thay đổi đường dẫn của tùy chọn socket thành "/run/php/php8.1-fpm.sock" như sau.
Mã:
## Use PHP-FPM service for PHP via FastCGI
fastcgi.server += ( ".php" =>
 ((
 "socket" => "/run/php/php8.1-fpm.sock",
 "broken-scriptfilename" => "enable"
 ))
)
Lưu và đóng tệp khi bạn hoàn tất.

Cuối cùng, hãy chạy lệnh bên dưới để khởi động lại dịch vụ Lighttpd và áp dụng những thay đổi mới. Bây giờ LLMP Stack của bạn đã sẵn sàng để phục vụ cả ứng dụng web HTML tĩnh và PHP động
Mã:
sudo systemctl restart lighttpd

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22188%22%3E%3C/svg%3E

Kiểm tra Phpinfo​

Để xác minh cài đặt LLMP Stack của bạn, bạn chỉ cần tạo tập lệnh PHPINFO hiển thị cho bạn thông tin chi tiết cấu hình Lighttpd và cấu hình PHP-FPM.

Chạy lệnh bên dưới để tạo một tập lệnh PHP mới "/var/www/html/info.php" và thay đổi quyền sở hữu thành người dùng "www-data".
Mã:
echo "" > /var/www/html/info.php
sudo chown -R www-data:www-data /var/www/html
Quay lại trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ Ubuntu theo sau là đường dẫn URL "/info.php" (http://192.168.5.28/info.php). Và bạn sẽ thấy trang phpinfo chi tiết trong ảnh chụp màn hình sau. Điều này có nghĩa là cấu hình Lighttpd và PHP-FPM đã hoàn tất và thành công.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22747%22%3E%3C/svg%3E

Thiết lập Virtual Host trên Lighttpd​

Lúc này, bạn đã hoàn tất cài đặt và cấu hình LLMP Stack. LLMP Stack cũng đã sẵn sàng để phục vụ ứng dụng web PHP động thông qua PHP-FPM. Bây giờ, bạn sẽ tìm hiểu cách thiết lập Virtual Host trên máy chủ web Lighttpd. Máy chủ ảo cho phép bạn chạy nhiều tên miền trên một máy chủ hoặc địa chỉ IP.

Bây giờ hãy chạy lệnh sau để tạo thư mục mới "/etc/lighttpd/vhosts". Thư mục này sẽ được sử dụng để lưu trữ tất cả các cấu hình máy chủ ảo của máy chủ web Lighttpd.
Mã:
sudo mkdir -p /etc/lighttpd/vhosts/
Bây giờ hãy chỉnh sửa tệp cấu hình Lighttpd "/etc/lighttpd/lighttpd.conf" bằng trình chỉnh sửa nano.
Mã:
sudo nano /etc/lighttpd/lighttpd.conf
Thêm cấu hình sau vào file.
Mã:
include "/etc/lighttpd/vhosts/*.conf"
Lưu và đóng file khi bạn hoàn tất. Bây giờ bạn đã sẵn sàng để thiết lập máy chủ ảo Lighttpd.

Đầu tiên, hãy tạo thư mục Document Root cho máy chủ ảo của bạn. Trong ví dụ này, thư mục gốc của tài liệu sẽ là "/var/www/hwdomain".
Mã:
mkdir -p /var/www/hwdomain/
Tạo tệp "index.html" mới trên thư mục gốc của tài liệu "/var/www/hwdomain" và thay đổi quyền sở hữu thành đúng người dùng "www-data".
Mã:
echo "[HEADING=1]Welcome to howtoforge.local virtual host[/HEADING]" > /var/www/hwdomain/index.html
sudo chown -R www-data:www-data /var/www/hwdomain
Tiếp theo, tạo cấu hình máy chủ ảo mới "/etc/lighttpd/vhosts/hwdomain.conf" bằng trình soạn thảo nano.
Mã:
sudo nano /etc/lighttpd/vhosts/hwdomain.conf
Thêm cấu hình sau vào tệp. Trong ví dụ này, tên miền "howtoforge.local" sẽ được sử dụng cho máy chủ ảo.
Mã:
$HTTP["host"] =~ "(^|.)howtoforge.local$" {
 server.document-root = "/var/www/hwdomain"
 server.errorlog = "/var/log/lighttpd/howtoforge.local-error.log"
 accesslog.filename = "/var/log/lighttpd/howtoforge.local-access.log"
}
Lưu và đóng tệp khi bạn hoàn tất.

Sau đó, chạy lệnh sau để kiểm tra và xác minh cấu hình Lighttpd. Nếu cấu hình Lighttpd đúng, bạn sẽ thấy thông báo đầu ra như "Cú pháp OK".
Mã:
sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf
Bây giờ hãy khởi động lại dịch vụ Lighttpd để áp dụng cấu hình máy chủ ảo mới bằng lệnh bên dưới.
Mã:
sudo systemctl restart lighttpd

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22153%22%3E%3C/svg%3E


Quay lại trình duyệt web và nhập tên miền của bạn vào thanh địa chỉ (ví dụ: http://howtoforge.local/). Và bạn sẽ thấy trang index.html mặc định cho máy chủ ảo đó.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22651%22%20height=%22136%22%3E%3C/svg%3E

Bật HTTPS trên Máy chủ web Lighttpd​

Sau khi thiết lập máy chủ ảo Lighthttpd, bây giờ bạn sẽ học cách bật SSL/HTTPS trên máy chủ web Lighttpd.

Trước khi bắt đầu cấu hình SSL, hãy chạy lệnh bên dưới để bật mô-đun "ssl" cho máy chủ web Lighttpd. Thao tác này sẽ tạo tệp liên kết đến "/etc/lighttpd/conf-enabled/10-ssl.conf", chứa cấu hình SSL cơ bản cho Lighttpd. Ngoài ra, bạn sẽ được yêu cầu tạo chứng chỉ SSL cho máy chủ cục bộ với tên "server.pem"
Mã:
sudo lighty-enable mod ssl
Bây giờ hãy chạy lệnh bên dưới để tạo và tạo chứng chỉ SSL cho máy chủ cục bộ với tên "server.pem".
Mã:
openssl req -new -newkey rsa:2048 -nodes -keyout server.com.key -out server.com.csr
openssl x509 -req -days 365 -in server.com.csr -signkey server.com.key -out server.com.crt
Mã:
cat server.com.key server.com.crt > server.pem
Bây giờ bạn đã sẵn sàng triển khai SSL/HTTPS trên cấu hình máy chủ ảo "hwdomain.conf".

Trước khi bắt đầu cấu hình SSL cho máy chủ ảo, hãy đảm bảo rằng bạn đã tạo chứng chỉ SSL cho tên miền của mình. Trong ví dụ này, tên miền là "howtoforge.local" và chứng chỉ SSL có sẵn tại thư mục "/etc/letsencrypt/live/hwdomain.io".

Chỉnh sửa cấu hình máy chủ ảo "/etc/lighttpd/vhosts/hwdomain.conf" bằng trình chỉnh sửa nano.
Mã:
sudo nano /etc/lighttpd/vhosts/hwdomain.conf
Thay thế cấu hình bạn vừa tạo bằng cấu hình sau cấu hình.
Mã:
$HTTP["scheme"] == "http" {
 $HTTP["host"] == "howtoforge.local" {
 url.redirect = ("/.*" => "https://howtoforge.local$0")
 }
}

$SERVER["socket"] == ":443" {
 ssl.engine = "enable"

 ssl.pemfile = "/etc/letsencrypt/live/howtoforge.local/fullchain.pem"
 ssl.privkey = "/etc/letsencrypt/live/howtoforge.local/privkey.pem"

 server.name = "howtoforge.local"
 server.document-root = "/var/www/hwdomain"
 server.errorlog = "/var/log/lighttpd/howtoforge.local-error.log"
 accesslog.filename = "/var/log/lighttpd/howtoforge.local-access.log"
}
Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, chạy lệnh sau để kiểm tra và xác minh cấu hình máy chủ web Lighttpd và đảm bảo bạn nhận được thông báo đầu ra như "Cú pháp OK". Sau đó, bạn có thể khởi động lại dịch vụ Lighttpd để áp dụng những thay đổi mới.
Mã:
sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf
sudo systemctl restart lighttpd
Cuối cùng, hãy quay lại trình duyệt web của bạn và truy cập tên miền máy chủ ảo có https ở phía trước URL (tức là https://howtoforge.local). Nếu cấu hình SSL của bạn thành công, bạn sẽ thấy biểu tượng cục bộ trên URL, như được hiển thị trong ảnh chụp màn hình bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22673%22%20height=%22145%22%3E%3C/svg%3E

Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công LLMP Stack (Linux, Lighttpd, MariaDB và PHP-FPM) trên máy chủ Ubuntu 22.04. Bạn cũng đã học cách thiết lập máy chủ ảo trên máy chủ web Lighttpd và bật SSL/HTTPS trên Lighttpd cho tên miền của mình.
 
Back
Bên trên