导读 | 本文档将引导您从核心 Ubuntu 发行版安装 lighttpd,然后解释如何将其更新到最新版本。 |
介绍
Lighttpd,也称为 Lighty,是一个占用空间小的开源 Web 服务器,当与 PHP 和 MySQL 或 MariaDB 一起安装时,它可以可靠地为数百万个连接提供服务。Lighty 还有许多扩展其功能的模块。
本文档将引导您从核心 Ubuntu 发行版安装 lighttpd,然后解释如何将其更新到最新版本。它还包括安装 PHP、使用 FastCGI 进程管理器 (FPM) 池保护 PHP、安装 MariaDB 以及使用 Let’s Encrypt 的 SSL 证书保护 Web 服务器。
先决条件
1. 添加PHP存储库
要支持 PHP 的最新版本,请添加由 Ubuntu 和 PHP 开发人员之一托管的公共存储库。
# add-apt-repository -y ppa:ondrej/php
添加存储库后,更新本地 apt 缓存。
# apt update
2. 安装Lighttpd
要获取 lighttpd 的核心安装,请安装 apt 版本:
# apt install -y lighttpd
完成后,检查您安装的 lighttpd 的版本。
# lighttpd -v
如果您运行的是 Ubuntu 20.04,它应该返回lighttpd/1.4.55 (ssl) - a light and fast webserver. 通过访问您的站点来确保安装成功,例如http://build.example.com. 你应该得到 lighttpd 占位符页面。
添加lighttpd用户和组:
# groupadd lighttpd # useradd -g lighttpd -d /var/www/html -s /sbin/nologin lighttpd
使lighttpd用户和组成为/var/www/html目录的所有者:
# chown -R lighttpd:lighttpd /var/www/html/
3. 安装 MariaDB 和 PHP
除了 lighttp,安装 MariaDB 和 PHP:
# apt install -y php-{cli,gd,fpm,mysql,curl,json,xml} mariadb-server
安装 MariaDB 后,保护 MariaDB 安装。
# mysql_secure_installation
重命名默认 PHP FPM 池以与 Web 服务器名称保持一致:
# mv /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/lighttpd.conf
通过编辑配置文件更改与池关联的关联用户和 Unix 套接字:
# nano /etc/php/8.1/fpm/pool.d/lighttpd.conf
更改四行:
保存文件并重启 PHP FPM 服务:
# service php8.1-fpm restart
4. 升级Lighttpd
添加一些从源代码构建最新版本的 lighttpd 所需的包。
# apt install -y gcc libpcre3 libpcre3-dev zlib1g-dev checkinstall libssl-dev
从命令提示符下载最新的 lighttpd 压缩包。在撰写本文时,最新版本是 1.4.66。您可以在https://download.lighttpd.net/lighttpd/找到最新的下载链接
# wget https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.66.tar.gz
提取压缩包。
# tar xzf lighttpd-1.4.66.tar.gz
切换到 lighttpd 工作目录。
# cd lighttpd-1.4.66
将包配置为包含 SSL 并安装在/usr/sbin目录中。
# ./configure --with-openssl --sbindir=/usr/sbin
配置完成后,制作包并安装。
# make # make install
运行lighttpd -v确保1.4.66版本安装成功。该命令应该返回lighttpd/1.4.66 (ssl) - a light and fast webserver
5. 配置Lighttpd
与 Ubuntu 20.04 一起打包的旧 1.4.55 版本有一个已弃用的mod_compress模块,您必须将其替换为mod_deflate. 要更改模块加载,请编辑默认配置:
# nano /etc/lighttpd/lighttpd.conf
更改以下三行:
通过运行检查配置:
# /usr/sbin/lighttpd -tt -f /etc/lighttpd/lighttpd.conf
6. 为 Lighttpd 配置 PHP
启用cgi和php模块。
# lighttpd-enable-mod fastcgi # lighttpd-enable-mod fastcgi-php
编辑 PHP 配置。
# nano /etc/lighttpd/conf-enabled/15-fastcgi-php.conf
删除整个文件内容并将其替换为以下内容,它php为您在步骤 3 中所做的 sock 设置配置模块。
fastcgi.server += ( ".php" => (( "socket" => "/run/php/php8.1-lighttpd-fpm.sock", "broken-scriptfilename" => "enable" )) )
重新启动服务器以进行新的配置更改:
# service lighttpd restart
添加测试 PHP 文件以确保 PHP 正在运行:
# nano /var/www/html/pi.php
在文件中添加以下内容:
要检查配置,请访问http://build.example.com/pi.php并找到 PHP 信息页面。在该PHP Variables部分中,确保$_SERVER['USER']是 lighttpd。
7. 保护 Lighttpd
要保护 Web 服务器,请添加 Let’s Encrypt TLS 证书并启用 HTTPS 协议。
安装让我们加密。
# apt install -y certbot
申请证书。确保更改build.example.com为您的服务器的域名。www.linuxprobe.com
# certbot certonly --webroot -w /var/www/html/ -d build.example.com
该向导会询问您的电子邮件地址、同意服务条款以及您是否想成为电子前沿基金会的一员。
启用 Lighttpdssl模块。
# lighttpd-enable-mod ssl
编辑 Lighttpd SSL 配置:
# nano /etc/lighttpd/conf-enabled/10-ssl.conf
将整个$SERVER["socket"]部分替换为以下内容。在四个地方更改build.example.com您的服务器的域名。
$HTTP["scheme"] == "http" { $HTTP["host"] == "build.example.com" { url.redirect = ("/.*" => "https://build.example.com$0") } } $SERVER["socket"] == "0.0.0.0:443" { ssl.engine = "enable" ssl.pemfile = "/etc/letsencrypt/live/build.example.com/fullchain.pem" ssl.privkey = "/etc/letsencrypt/live/build.example.com/privkey.pem" ssl.cipher-list = "HIGH" }
保存文件,然后重新启动 lighttpd。
# service lighttpd restart
访问http://build.example.com以确保它现在重定向到https://build.example.com并使用 SSL 证书。
8. 更新服务器
确保配置正确后,使用最新补丁更新 Ubuntu 服务器。
# apt update -y && apt dist-upgrade -y && apt autoremove -y
重新启动服务器以应用更新。
# reboot now
9. 更多设置
除了创建一个独特的 PHP FPM 池外,还可以更改设置以进一步优化性能和速度。这些设置在/etc/php/8.1/fpm/pool.d配置文件中。经常更改的主要设置是pm设置,它控制如何创建流程,可以是dynamic、static或ondemand。更改此设置也会影响文件中的其他设置。与任何应用程序一样,正确的服务器设置取决于预期用途、负载和配置。
结论
Lighttpd 是一个强大而简单的 Web 服务器,当与 PHP 和 MariaDB 集成时,它可以以最小的占用空间处理数千个请求。使用 Lets Encrypt 保护它既简单又容易,并为您和您的访问者增加了另一层保护。