Cách cài đặt Lighttpd với PHP, MariaDB và Let's Encrypt SSL trên Debian 10

theanh

Administrator
Nhân viên
Lighttpd là một máy chủ web miễn phí, mã nguồn mở và tốc độ cao được thiết kế đặc biệt cho các môi trường quan trọng về tốc độ. Nó yêu cầu ít bộ nhớ hơn so với các máy chủ web khác, chẳng hạn như Apache và Nginx và đặc biệt nhanh để chạy các ứng dụng AJAX. Lighttpd cũng cho phép chúng ta lưu trữ các ứng dụng web được viết bằng ngôn ngữ lập trình khác bằng cách sử dụng các giao diện FastCGI, SCGI và CGI. Lighttpd là lựa chọn tốt nhất cho bạn nếu máy chủ của bạn đang gặp sự cố tải.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt Lighttpd trên Debian 10 với hỗ trợ PHP-FPM và MariaDB và chúng ta sẽ bảo mật máy chủ web bằng chứng chỉ SSL Let's Encrypt.

Yêu cầu​

  • Một máy chủ chạy Debian 10.
  • Một mật khẩu gốc được thiết lập cho máy chủ của bạn.
Tôi sẽ sử dụng tên miền example.com trong hướng dẫn này. Thay thế example.com trong tất cả các tên tệp và cài đặt cấu hình bằng tên miền của riêng bạn bên dưới.

Bắt đầu​

Trước khi bắt đầu, bạn sẽ cần cập nhật hệ thống của mình lên phiên bản mới nhất. Bạn có thể thực hiện việc này bằng cách chạy lệnh sau:
Mã:
apt-get update -y
 apt-get upgrade -y
Sau khi máy chủ của bạn được cập nhật, hãy khởi động lại máy chủ để áp dụng các thay đổi.

Cài đặt Lighttpd​

Theo mặc định, Lighttpd có sẵn trong kho lưu trữ mặc định của Debian 10. Bạn có thể cài đặt bằng cách chỉ cần chạy lệnh sau:
Mã:
apt-get install lighttpd -y
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ Lighttpd và cho phép dịch vụ này khởi động sau khi hệ thống khởi động lại bằng lệnh sau:
Mã:
systemctl start lighttpd
 systemctl enable lighttpd
Bạn cũng có thể kiểm tra trạng thái của Lighttpd bằng lệnh sau:
Mã:
systemctl status lighttpd
Bạn sẽ nhận được kết quả sau:
Mã:
? lighttpd.service - Lighttpd Daemon Đã tải: đã tải (/lib/systemd/system/lighttpd.service; enabled; vendor preset: enabled) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ sáu 2019-09-06 02:09:35 EDT; 29 giây trước PID chính: 4445 (lighttpd) Nhiệm vụ: 1 (giới hạn: 1138) Bộ nhớ: 1,4M CGroup: /system.slice/lighttpd.service ??4445 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf06/09 02:09:35 debian systemd[1]: Đang khởi động Lighttpd Daemon...06/09 02:09:35 debian systemd[1]: Đã khởi động Lighttpd Daemon.06/09 02:09:36 debian systemd[1]: /lib/systemd/system/lighttpd.service:6: PIDFile= tham chiếu đường dẫn bên dưới thư mục cũ /var/run/, đang cập nhậtdòng 1-12/12 (KẾT THÚC)
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt MariaDB Server​

Bạn có thể cài đặt MariaDB server bằng cách chạy lệnh sau:
Mã:
apt-get install mariadb-server mariadb-client -y
Sau khi cài đặt, bạn sẽ cần bảo mật cài đặt MariaDB. Bạn có thể bảo mật cài đặt này bằng cách chạy tập lệnh sau:
Mã:
mysql_secure_installation
Mã:
Trả lời tất cả các câu hỏi như được hiển thị bên dưới:Đổi mật khẩu root? [Y/n] nXóa người dùng ẩn danh? [Y/n] YKhông cho phép root đăng nhập từ xa? [Y/n] YXóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] YTải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt PHP và PHP-FPM​

Tiếp theo, bạn sẽ cần cài đặt PHP, PHP-FPM và FastCGI vào hệ thống của mình. Theo mặc định, Debian 10 đi kèm với phiên bản PHP 7.3. Bạn có thể cài đặt nó chỉ bằng cách chạy lệnh sau:
Mã:
apt-get install php php-cgi php-fpm php-mysql -y
Sau khi tất cả các gói được cài đặt, bạn sẽ cần chỉnh sửa tệp php.ini và đặt cgi.fix_pathinfo thành 1. Bạn có thể thực hiện bằng lệnh sau:
Mã:
nano /etc/php/7.3/fpm/php.ini
Thay đổi dòng sau:
Mã:
cgi.fix_pathinfo=1
Lưu và đóng tệp khi bạn hoàn tất.

Theo mặc định, PHP trỏ đến socket UNIX /var/run/php/php7.3-fpm.sock. Vì vậy, bạn sẽ cần cấu hình nhóm PHP-FPM để thiết lập PHP lắng nghe socket TCP.

Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp /etc/php/7.3/fpm/pool.d/www.conf:
Mã:
nano /etc/php/7.3/fpm/pool.d/www.conf
Tìm dòng sau:
Mã:
listen = /run/php/php7.3-fpm.sock
Và thay thế bằng dòng sau:
Mã:
listen = 127.0.0.1:9000
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ PHP-FPM để áp dụng các thay đổi cấu hình:
Mã:
systemctl restart php7.3-fpm
Tiếp theo, bạn sẽ cần sửa đổi tệp 15-fastcgi-php.conf:
Mã:
nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
Tìm các dòng sau:
Mã:
"bin-path" => "/usr/bin/php-cgi","socket" => "/var/run/lighttpd/php.socket",
Và thay thế chúng bằng lệnh sau:
Mã:
"host" => "127.0.0.1","port" => "9000",
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, bật cả mô-đun FastCGI và FastCHI-PHP bằng các lệnh sau:
Mã:
lighty-enable-mod fastcgi
 lighty-enable-mod fastcgi-php
Cuối cùng, khởi động lại dịch vụ Lighttpd để áp dụng các thay đổi:
Mã:
systemctl restart lighttpd

Tạo Máy chủ ảo Lighttpd​

Tiếp theo, bạn sẽ cần tạo một tệp máy chủ ảo mới để kiểm tra PHP bằng Lighttpd. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano /etc/lighttpd/conf-available/example.com.conf
Thêm các dòng sau:
Mã:
$HTTP["host"] == "www.example.com" { server.document-root = "/var/www/html/" server.errorlog = "/var/log/lighttpd/example.com-error.log"}
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, kích hoạt Máy chủ ảo bằng lệnh sau:
Mã:
ln -s /etc/lighttpd/conf-available/example.com.conf /etc/lighttpd/conf-enabled/
Tiếp theo, tạo một tệp index.php mẫu trong thư mục gốc của tài liệu Lighttpd bằng lệnh sau:
Mã:
nano /var/www/html/index.php
Thêm dòng sau:
Mã:
Lưu và đóng tệp. Sau đó, thay đổi quyền sở hữu thư mục gốc tài liệu Lighttpd thành www-data bằng lệnh sau:
Mã:
chown -R www-data:www-data /var/www/html/
Cuối cùng, khởi động lại dịch vụ Lighttpd để áp dụng tất cả các thay đổi cấu hình:
Mã:
systemctl restart lighttpd

Bảo mật Lighttpd bằng Let's Encrypt Free SSL​

Đầu tiên, bạn sẽ cần cài đặt công cụ Certbot để bảo mật máy chủ web của mình bằng Let's Encrypt. Theo mặc định, phiên bản mới nhất của Certbot không có trong kho lưu trữ mặc định của Debian 10.

Bạn có thể thêm kho lưu trữ Certbot bằng lệnh sau:
Mã:
apt-get install software-properties-common
 add-apt-repository ppa:certbot/certbot
Tiếp theo, hãy cập nhật kho lưu trữ và cài đặt Certbot bằng lệnh sau:
Mã:
apt-get update -y
 apt-get install certbot -y
Tiếp theo, hãy tạo chứng chỉ Let’s Encrypt bằng lệnh sau:
Mã:
certbot certonly --webroot -w /var/www/html/ -d www.example.com
Bạn sẽ được yêu cầu cung cấp địa chỉ email và chấp nhận các điều khoản cấp phép như được hiển thị bên dưới:
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator webroot, Installer NoneNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có sẵn lòng chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuận phát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)ó: C
Sau khi tải xuống chứng chỉ thành công, bạn sẽ thấy kết quả sau:
Mã:
LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 2019-12-06. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot. Để gia hạn không tương tác *tất cả* chứng chỉ của bạn, hãy chạy "certbot renew" - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le
Tiếp theo, bạn sẽ cần kết hợp cả chứng chỉ và khóa riêng trong một tệp. Bạn có thể thực hiện bằng lệnh sau:
Mã:
cat /etc/letsencrypt/live/example.com/cert.pem /etc/letsencrypt/live/example.com/privkey.pem > /etc/letsencrypt/live/example.com/web.pem
Tiếp theo, bạn sẽ cần chỉnh sửa tệp máy chủ ảo Lighttpd và xác định đường dẫn chứng chỉ SSL Let's Encrypt.

Bạn có thể thực hiện bằng lệnh sau:
Mã:
nano /etc/lighttpd/conf-enabled/example.com.conf
Thay đổi tệp như hiển thị bên dưới:
Mã:
$HTTP["host"] == "www.example.com" { server.document-root = "/var/www/html/"}$SERVER["socket"] == ":443" {ssl.engine = "enable"ssl.pemfile = "/etc/letsencrypt/live/example.com/web.pem" # Chứng chỉ kết hợpssl.ca-file = "/etc/letsencrypt/live/example.com/chain.pem" # CA gốcserver.name = "www.example.com" # Tên miền HOẶC Tên máy chủ ảoserver.document-root = "/var/www/html/" # Gốc tài liệuserver.errorlog = "/var/log/lighttpd/example.com_error.log"accesslog.filename = "/var/log/lighttpd/example.com_access.log"}$HTTP["scheme"] == "http" {$HTTP["host"] == "www.example.com" { # URL HTTPurl.redirect = ("/.*" => "https://www.example.com$0") # Chuyển hướng URL HTTPS}}
Lưu và đóng tệp. Sau đó khởi động lại dịch vụ Lighttpd để áp dụng các thay đổi cấu hình:
Mã:
systemctl restart lighttpd

Truy cập Giao diện Web Lighttpd​

Lighttpd đã được cài đặt và cấu hình với hỗ trợ PHP và PHP-FPM. Bây giờ, đã đến lúc kiểm tra nó.

Mở trình duyệt web của bạn và nhập URL https://www.example.com. Bạn sẽ được chuyển hướng đến trang sau:



Trang trên cho biết PHP đang hoạt động tốt với FastCGI.

Kết luận​

Xin chúc mừng! bạn đã cài đặt và cấu hình thành công máy chủ web Lighttpd với hỗ trợ PHP-FPM và FastCGI trên Debian 10. Bây giờ bạn có thể dễ dàng lưu trữ máy chủ web của riêng mình. Để biết thêm thông tin, hãy truy cập trang tài liệu chính thức của Lighttpd tại Lighttpd Doc.
 
Back
Bên trên