如何在 Ubuntu 22.04 上使用 MariaDB 和 PHP-FPM 安装 Lighttpd
LLMP 堆栈(Linux、Lighttpd、MariaDB 和 PHP-FPM)是用于交付 Web 应用程序的软件堆栈。 LLMP 堆栈的每个组件都是免费、开源的,并且可以安装在多个操作系统上。 LLMP Stack 可以提供静态 HTML 站点和 PHP 应用程序,例如 WordPress、Drupal 和 Joomla。
本教程将向您展示如何在最新的 Ubuntu 22.04 系统上安装和配置 LLMP 堆栈(Linux、Lighttpd、MariaDB 和 PHP-FPM)。 本教程包含有关如何在 Lighttpd Web 服务器上设置虚拟主机并启用 SSL/HTTPS 的说明。
先决条件
对于本教程,我们需要满足以下先决条件:
- Ubuntu 22.04 服务器。
- 具有 root/管理员权限的非 root 用户
安装 Lighttpd Web 服务器
Lighttpd 或 Lighty 是一款高性能 Web 服务器,作为 c10k 问题“如何在一台服务器上并行处理 10,000 个连接”的概念验证而创建。
Lighttpd 专为速度、安全性、重量轻和灵活性而设计。 它具有最少的 CPU 和内存使用量,并提供高级功能,如 FastCGI、CGI、Auth、压缩、URL 重写等。
在安装任何软件包之前,请运行下面的 apt 命令来更新和刷新 Ubuntu 存储库的软件包索引。
sudo apt update
现在使用以下命令安装 Lighttpd Web 服务器。
sudo apt install lighttpd
输入 Y 确认安装,然后按 ENTER 继续。 现在 Lighttpd 安装将开始。
Lighttpd安装完成后,运行以下命令启动并启用Lighttpd服务。
sudo systemctl start lighttpd
sudo systemctl enable lighttpd
使用以下命令检查并验证 Lighttpd 服务。 您应该看到 Lighttpd 服务正在运行并启用,这意味着它将在系统启动时自动运行。
sudo systemctl status lighttpd
如果您的 Ubuntu 计算机上运行着 UFW 防火墙,则必须为 Lighttpd Web 服务器的传入流量添加防火墙规则。
运行下面的ufw命令将Lighttpd规则添加到UFW防火墙中,然后您可以检查并验证UFW规则列表,如下所示。
sudo ufw allow "Lighttpd Full"
sudo ufw status
您应该会看到应用程序配置文件“Lighttpd Full”添加到 UFW 防火墙中,这意味着允许所有传入 HTTP 和 HTTPS 端口。
现在使用以下命令检查目录“/var/www/html”。 如果您没有看到 index.html 文件,可以使用以下命令创建一个。
ls -lah /var/www/html
echo "Welcome to Lighttpd Web Server
" > /var/www/html/index.html
最后,打开您的网络浏览器并访问服务器IP地址(即http://192.168.5.28/),您应该看到index.html页面。
安装 MariaDB 服务器
安装完Lighthttpd Web服务器后,接下来就是将MariaDB服务器安装到Ubuntu系统了。 这还包括如何使用 MariaDB 包提供的“mysql_secure_installation”工具安全地部署 MariaDB 服务器。
运行以下 apt 命令来安装 MariaDB 服务器。 目前,默认的 Ubuntu 存储库提供 MariaDB v10.6。
sudo apt install mariadb-server
现在输入 Y 确认安装并按 ENTER。 MariaDB 安装将开始。
MariaDB安装完成后,运行以下systemctl命令启动并启用MariaDB服务。
sudo systemctl start mariadb
sudo systemctl enable mariadb
使用以下命令检查并验证 MariaDB 服务。 您应该看到 MariaDB 服务正在运行。
sudo systemctl status mariadb
接下来,您将使用“mysql_secure_instalaltion”工具设置MariaDB部署,该工具可以帮助您设置MariaDB服务器的root密码,并禁用远程root登录,清理默认数据库和匿名用户访问等。
现在运行“mysql_secure_installation”命令,如下所示。
sudo mysql_secure_installation
默认的 MariaDB 安装没有 root 密码。 按 ENTER 继续。
现在输入“n”以将身份验证方法保留为默认值(对于 MariaDB root 用户)。
输入 Y 设置 MariaDB 服务器的 root 密码。 请务必为您的部署使用强密码。
现在输入 Y 以禁用 MariaDB root 用户的远程登录。 如果您不在集群环境中,始终建议禁用 MariaDB root 用户的远程登录。
现在再次输入 Y 以从 MariaDB 安装中删除默认的匿名用户。
再次输入 Y 以删除 MariaDB 上匿名用户可访问的默认数据库测试。
最后,再次输入 Y 以重新加载 MariaDB 服务器上的所有表权限并应用新的更改。
安装 PHP-FPM 8.1
您现在已经安装了 Lighttpd Web 服务器和 MariaDB 数据库服务器。 现在您将在 Ubuntu 系统上安装 PHP-FPM。 目前,Ubuntu 存储库提供了最新版本的 PHP 8.1。
运行下面的 apt 命令在 Ubuntu 系统上安装 PHP-FPM 8.1。
sudo apt install php-fpm php-common php-mysql php-cli php-curl php-xml
输入 Y 确认安装并按 ENTER。 现在,安装将开始。
PHP-FPM包安装完成后,运行以下命令启动并启用PHP-FPM服务。
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm
使用以下命令检查并验证 PHP-FPM 服务。 您应该看到 PHP-FPM 服务正在运行。
sudo systemctl status php8.1-fpm
您还可以使用“ss”命令检查 PHP-FPM 服务。 默认的PHP-FPM进程运行在sock文件下,您可以使用以下命令检查PHP-FPM进程。
ss -pl | grep php
您应该让 PHP-FPM 服务在 sock 文件“/run/php/php8.1-fpm.sock”上运行。
使用 Lighttpd 配置 PHP-FPM
LLMP Stack 软件包的安装已完成,但您仍然需要设置 Lighttpd Web 服务器,以便它可以与 PHP-FPM 服务配合使用。 这可以通过使用 Lighttpd Web 服务器上的 FastCGI 模块来完成。
首先,使用nano编辑器编辑PHP-FPM配置文件“/etc/php/8.1/fpm/php.ini”。
sudo nano /etc/php/8.1/fpm/php.ini
将以下配置添加到文件中。
cgi.fix_pathinfo = 1
完成后保存并关闭文件。
现在使用以下命令重新启动 PHP-FPM 服务以应用新的更改。
sudo systemctl restart php8.1-fpm
接下来,运行以下命令启用 Lighttpd“fastcgi”和“fastcgi-php-fpm”模块。
sudo lighty-enable-mod fastcgi fastcgi-php-fpm
使用 Nano 编辑器编辑配置文件“/etc/lighttpd/conf-available/15-fastcgi-php-fpm.conf”。 该文件是 fastcgi-php-fpm 模块配置,将用于与 PHP-FPM sock 文件进行通信。
sudo nano /etc/lighttpd/conf-available/15-fastcgi-php-fpm.conf
将套接字选项的路径更改为“/run/php/php8.1-fpm.sock”,如下所示。
## Use PHP-FPM service for PHP via FastCGI
fastcgi.server += ( ".php" =>
((
"socket" => "/run/php/php8.1-fpm.sock",
"broken-scriptfilename" => "enable"
))
)
完成后保存并关闭文件。
最后,运行以下命令重新启动 Lighttpd 服务并应用新的更改。 现在您的 LLMP 堆栈已准备好为静态 HTML 和动态 PHP Web 应用程序提供服务
sudo systemctl restart lighttpd
测试 PHPinfo
要验证 LLMP Stack 安装,您只需创建 PHPINFO 脚本即可显示 Lighttpd 和 PHP-FPM 配置的详细配置。
运行以下命令创建一个新的 PHP 脚本“/var/www/html/info.php”并将所有权更改为“www-data”用户。
echo "" > /var/www/html/info.php
sudo chown -R www-data:www-data /var/www/html
返回 Web 浏览器并访问 Ubuntu 服务器 IP 地址,然后访问 URL 路径“/info.php”(http://192.168.5.28/info.php)。 您应该在下面的屏幕截图中看到详细的 phpinfo 页面。 这意味着Lighttpd和PHP-FPM配置已完成并成功。
在 Lighttpd 上设置虚拟主机
至此,您已完成LLMP Stack的安装和配置。 LLMP 堆栈还准备通过 PHP-FPM 为动态 PHP Web 应用程序提供服务。 现在您将学习如何在 Lighttpd Web 服务器上设置虚拟主机。 虚拟主机允许您在单个服务器或 IP 地址上运行多个域名。
现在运行以下命令创建一个新目录“/etc/lighttpd/vhosts”。 该目录将用于存储 Lighttpd Web 服务器的所有虚拟主机配置。
sudo mkdir -p /etc/lighttpd/vhosts/
现在使用 Nano 编辑器编辑 Lighttpd 配置文件“/etc/lighttpd/lighttpd.conf”。
sudo nano /etc/lighttpd/lighttpd.conf
将以下配置添加到文件中。
include "/etc/lighttpd/vhosts/*.conf"
完成后保存并关闭文件。 现在您已准备好设置 Lighttpd 虚拟主机。
首先,为您的虚拟主机创建文档根目录。 在此示例中,文档根目录将为“/var/www/hwdomain”。
mkdir -p /var/www/hwdomain/
在文档根目录“/var/www/hwdomain”上创建一个新的“index.html”文件,并将所有权更改为正确的用户“www-data”。
echo "Welcome to hwdomain.io virtual host
" > /var/www/hwdomain/index.html
sudo chown -R www-data:www-data /var/www/hwdomain
接下来,使用 Nano 编辑器创建一个新的虚拟主机配置“/etc/lighttpd/vhosts/hwdomain.conf”。
sudo nano /etc/lighttpd/vhosts/hwdomain.conf
将以下配置添加到文件中。 在此示例中,域“hwdomain.io”将用于虚拟主机。
$HTTP["host"] =~ "(^|.)hwdomain.io$" {
server.document-root = "/var/www/hwdomain"
server.errorlog = "/var/log/lighttpd/hwdomain.io-error.log"
accesslog.filename = "/var/log/lighttpd/hwdomain.io-access.log"
}
完成后保存并关闭文件。
之后,运行以下命令检查并验证Lighttpd配置。 如果 Lighttpd 配置正确,您将看到诸如“Syntax OK”之类的输出消息。
sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf
现在,使用以下命令重新启动 Lighttpd 服务以应用新的虚拟主机配置。
sudo systemctl restart lighttpd
返回您的网络浏览器并在地址栏上输入您的域名(即http://hwdomain.io/)。 您应该会看到该虚拟主机的默认 index.html 页面。
在 Lighttpd Web 服务器上启用 HTTPS
设置 Lighttpd 虚拟主机后,现在您将学习如何在 Lighttpd Web 服务器上启用 SSL/HTTPS。
在开始配置 SSL 之前,请运行以下命令为 Lighttpd Web 服务器启用“ssl”模块。 这将创建指向“/etc/lighttpd/conf-enabled/10-ssl.conf”的链接文件,其中包含 Lighttpd 的基本 SSL 配置。 此外,您还需要为 localhost 生成名为“server.pem”的 SSL 证书
sudo lighty-enable mod ssl
现在运行以下命令为 localhost 创建并生成名为“server.pem”的 SSL 证书。
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
cat server.com.key server.com.crt > server.pem
现在您已准备好在虚拟主机配置“hwdomain.conf”上实施 SSL/HTTPS。
在开始为虚拟主机配置 SSL 之前,请确保您已为您的域名生成 SSL 证书。 在此示例中,域名为“hwdomain.io”,SSL 证书可在“/etc/letsencrypt/live/hwdomain.io”目录中获取。
使用 Nano 编辑器编辑虚拟主机配置“/etc/lighttpd/vhosts/hwdomain.conf”。
sudo nano /etc/lighttpd/vhosts/hwdomain.conf
将您刚刚创建的配置替换为以下配置。
$HTTP["scheme"] == "http" {
$HTTP["host"] == "hwdomain.io" {
url.redirect = ("/.*" => "https://hwdomain.io$0")
}
}
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/letsencrypt/live/hwdomain.io/fullchain.pem"
ssl.privkey = "/etc/letsencrypt/live/hwdomain.io/privkey.pem"
server.name = "hwdomain.io"
server.document-root = "/var/www/hwdomain"
server.errorlog = "/var/log/lighttpd/hwdomain.io-error.log"
accesslog.filename = "/var/log/lighttpd/hwdomain.io-access.log"
}
完成后保存并关闭文件。
接下来,运行以下命令来检查并验证 Lighttpd Web 服务器配置,并确保您收到诸如“Syntax OK”之类的输出消息。 之后,您可以重新启动 Lighttpd 服务以应用新的更改。
sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf
sudo systemctl restart lighttpd
最后,返回Web浏览器并访问URL前面带有https的虚拟主机域名(即https://hwdomain.io)。 如果您的 SSL 配置成功,您将在 URL 上看到本地图标,如下图所示。
结论
恭喜 您已在 Ubuntu 22.04 服务器上成功安装 LLMP 堆栈(Linux、Lighttpd、MariaDB 和 PHP-FPM)。 您还学习了如何在 Lighttpd Web 服务器上设置虚拟主机,并在 Lighttpd 上为您的域名启用 SSL/HTTPS。
资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载