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.
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.
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:
Bạn cũng có thể kiểm tra trạng thái của Lighttpd bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
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:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
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:
Thay đổi dòng sau:
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:
Tìm dòng sau:
Và thay thế bằng dòng sau:
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:
Tiếp theo, bạn sẽ cần sửa đổi tệp 15-fastcgi-php.conf:
Tìm các dòng sau:
Và thay thế chúng bằng lệnh sau:
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:
Cuối cùng, khởi động lại dịch vụ Lighttpd để áp dụng các thay đổi:
Thêm các dòng sau:
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:
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:
Thêm dòng sau:
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:
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:
Bạn có thể thêm kho lưu trữ Certbot bằng lệnh sau:
Tiếp theo, hãy cập nhật kho lưu trữ và cài đặt Certbot bằng lệnh sau:
Tiếp theo, hãy tạo chứng chỉ Let’s Encrypt bằng lệnh sau:
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:
Sau khi tải xuống chứng chỉ thành công, bạn sẽ thấy kết quả sau:
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:
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:
Thay đổi tệp như hiển thị bên dưới:
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ở 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.
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.
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
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
Mã:
systemctl start lighttpd
systemctl enable lighttpd
Mã:
systemctl status lighttpd
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)
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
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
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
Mã:
nano /etc/php/7.3/fpm/php.ini
Mã:
cgi.fix_pathinfo=1
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
Mã:
listen = /run/php/php7.3-fpm.sock
Mã:
listen = 127.0.0.1:9000
Mã:
systemctl restart php7.3-fpm
Mã:
nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
Mã:
"bin-path" => "/usr/bin/php-cgi","socket" => "/var/run/lighttpd/php.socket",
Mã:
"host" => "127.0.0.1","port" => "9000",
Mã:
lighty-enable-mod fastcgi
lighty-enable-mod fastcgi-php
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
Mã:
$HTTP["host"] == "www.example.com" { server.document-root = "/var/www/html/" server.errorlog = "/var/log/lighttpd/example.com-error.log"}
Mã:
ln -s /etc/lighttpd/conf-available/example.com.conf /etc/lighttpd/conf-enabled/
Mã:
nano /var/www/html/index.php
Mã:
Mã:
chown -R www-data:www-data /var/www/html/
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
Mã:
apt-get update -y
apt-get install certbot -y
Mã:
certbot certonly --webroot -w /var/www/html/ -d www.example.com
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
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
Mã:
cat /etc/letsencrypt/live/example.com/cert.pem /etc/letsencrypt/live/example.com/privkey.pem > /etc/letsencrypt/live/example.com/web.pem
Bạn có thể thực hiện bằng lệnh sau:
Mã:
nano /etc/lighttpd/conf-enabled/example.com.conf
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}}
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.