使用 Lighttpd、MySQL 和 PHP-FPM 设置 Ubuntu 20.04 服务器
Lighttpd 是一种快速灵活的开源 Web 服务器,其性能可与 Nginx 相媲美。为了在 Lighttpd 服务器上托管 WordPress、Magento 等 PHP 应用程序,您需要在您的服务器上设置一个 LLMP 堆栈。 LLMP 代表 Linux、Lighttpd、MySQL 和 PHP。
由于 Lighttpd 的性能,LLMP 堆栈在任何给定的流量上轻松胜过 LAMP (Apache) 设置。就 LLMP 与 LEMP (Nginx) 而言,性能大致相似。但 Nginx 是更受大众欢迎的选择,对 LEMP 设置有出色的社区支持。
如果您正在寻找能够以最少的内存消耗处理大量流量的服务器,那么 LLMP 设置是一个不错的选择。在本指南中,我们将了解如何在 Ubuntu 20.04 LTS 机器上安装 LLMP 堆栈。
先决条件
您将需要一个 Ubuntu 20.04 LTS 服务器并以 须藤
启用的用户。您还需要对 Linux 命令有基本的了解。
在我们开始之前,通过发出以下命令来更新和升级 Ubuntu 20.04 服务器上的软件包:
须藤 apt-get 更新 && apt-get 升级
安装 Lighttpd 网络服务器
要在 Ubuntu 20.04 机器上安装 Lighttpd Web 服务器,只需在终端中输入以下命令。
sudo apt 安装 lighttpd
安装过程完成后,键入以下命令以启动和启用 Lighttpd Web 服务器。
systemctl 启动 lighttpd systemctl 启用 lighttpd
要检查 Lighttpd 服务器的状态,请键入如下所示的命令。
systemctl 状态 lighttpd
💡小贴士: 要删除写有 (END) 的最后一行,请按 退出
和 q
以便能够输入进一步的命令。
现在我们将在 UFW 防火墙中设置 HTTP、HTTPS 和 SSH 服务。 UFW 是 Ubuntu 的默认防火墙配置工具,也称为 Uncomplicated Firewall。键入以下命令并一一按回车键。
须藤 ufw 允许 ssh 须藤 ufw 允许 http 须藤 ufw 允许 https
通过发出以下命令启用 UFW 防火墙:
须藤 ufw 启用
如果您收到“命令可能会破坏现有 ssh 连接”的提示,请键入 是
并击中 进入
.
要验证 Lighttpd 安装, 在 Web 浏览器中通过其 IP 地址访问服务器。如果它显示以下屏幕,则表示您的 Lighttpd Web 服务器已成功安装在您的 Ubuntu 20.04 机器上。
安装和配置 MySQL 服务器
MySQL 是一种基于结构化查询语言的关系数据库管理系统。要在 Ubuntu 20.04 上安装 MySQL 服务器和客户端,请复制/粘贴以下命令并点击 进入
.
须藤 apt-get 安装 mysql-server mysql-client
它将提示您一条消息,此操作将在安装后额外占用 247 MB 的磁盘空间。所以,输入 是
并击中 进入
.
安装过程完成后,启动并启用 MySQL 服务器,并通过发出以下命令将其添加到系统引导中。
systemctl 启动 mysql systemctl 启用 mysql
您将在屏幕上看到以下消息:
要检查 MySQL 服务的状态,请在终端中键入以下命令。这 mysql.service
状态应显示为“活动(正在运行)”。
systemctl 状态 mysql
要配置 MySQL 安全设置, 我们将执行 MySQL 包附带的安全脚本。键入以下命令并按 Enter 键以执行脚本。
mysql_secure_installation
上面的命令会提示你配置MySQL服务器的几个问题。
它会要求您使用 验证密码组件
.这个插件将帮助你为你的 MySQL 数据库设置一个强密码。按 是
并按 Enter 以启用此插件。类型 0
, 1
, 或者 2
选择决定密码强度级别的密码验证策略。
输入一个强密码, 这 验证密码
插件会告诉您密码的估计强度。按 是
并击中 进入
.
设置安全密码后,按以下说明配置其余设置。
- 删除匿名用户 - 进入
y|y
因为 MySQL 默认包含匿名用户,允许任何人在没有用户帐户的情况下连接到 MySQL 服务器。因此,将其删除。
- 禁止远程root登录 - 进入
y|y
因为 root 应该只允许来自'localhost'。它确保某人无法在您的网络之外以 root 身份登录。
- 删除测试数据库并访问它? - 进入
y|y
因为 MySQL 自带了一个任何人都可以访问的测试数据库。因此,在进入生产环境之前将其删除。
- 现在重新加载权限表? 进入
y|y
因为这将确保您到目前为止所做的更改立即生效。
要检查所有可以访问 MySQL 服务器的用户,首先,使用以下命令以 root 身份登录 MySQL:
mysql -u 根 -p
然后,发出以下命令以获取 MySQL 服务器上的用户列表:
从 mysql.user 中选择用户、主机;
验证用户列表后,键入 出口
从 MySQL shell 注销。
安装 PHP – 快速 CGI 进程管理器 (PHP-FPM)
PHP-FPM 使服务器即使在低端服务器上也能处理大量负载。它声称可以将某些 PHP 应用程序的加载时间减少 300%。
要安装最新的 PHP-FPM 软件包,请发出以下命令并按 Enter。
须藤 apt-install php-fpm php-cgi php-mysql
微调 PHP-FPM 配置 通过在 配置文件
文件。
为此,首先导航到目录/etc/php/7.4/fpm
使用 光盘
命令如下图。
cd /etc/php/7.4/fpm
然后使用下面的命令打开 配置文件
vim 编辑器中的文件。
vim php.ini
取消注释 cgi.fix_pathinfo=1
线。 搜索包含‘的行cgi.fix_pathinfo=1
' 在编辑器中。要做到这一点,请按‘退出
’并输入 /cgi.fix_pathinfo=1
并击中 进入
.
然后,按 一世
切换到插入模式并删除 ;
行前的(分号)符号或按 X
取消注释行的按钮 配置文件
文件。
完成后,保存您在文件中所做的更改并按退出 vim 编辑器 退出
进入命令模式,然后输入 :wq
并击中 进入
退出编辑器。
启动并启用 PHP-FPM 通过发出以下命令:
systemctl 启动 php7.4-fpm systemctl 启用 php7.4-fpm
要检查 PHP-FPM 的状态,请运行以下命令:
systemctl 状态 php7.4-fpm
配置 Lighttpd 和 PHP-FPM
我们现在将在 15-fastcgi-php.conf
配置文件来配置 Lighttpd 和 PHP-FPM。
通过键入此命令导航到适当的目录,然后按 Enter。
cd etc/lighttd/conf-available/
如果您想保留‘15-fastcgi-php.conf
' 文件然后使用下面的命令。
cp 15-fastcgi-php.conf 15-fastcgi-php.conf.orig
现在,我们将使用 vim 编辑器使用以下命令打开并编辑此文件:
vim 15-fastcgi-php.conf
在这里,将默认的 PHP-CGI 配置内容替换为如下所示的内容。
fastcgi.server += ( ".php" => (( "socket" => "/var/run/php/php7.4-fpm.sock", "broken-scriptfilename" => "enable" )))
为此,请按照如下所示的特定顺序执行步骤。
- 按 '
退出
' 和 '一世
’进入插入模式。 - 现在导航到我们必须使用
向上
或者向下
箭头键(向上和向下箭头键在 vim 编辑器中有效,而在 vi 编辑器中无效)。 - 要删除特定行,请按
日
.并删除单个字按X
. - 现在将上述代码复制/粘贴到文件中。
- 然后保存文件并通过按退出vim
退出
,:wq
, 和进入
.
现在 Lighttpd 将与 PHP-FPM 充分配合并进行了适当的配置。
启用 FastCGI Lighttpd 模块 使用以下命令:
lighttpd-enable-mod fastcgi lighttpd-enable-mod fastcgi-php
最后,重新启动 Lighttpd Web 服务器以应用新的配置和设置。
systemctl 重启 lighttpd
测试 你的 LLMP 服务器
为了测试您新创建的 LLMP 服务器,我们将在 public 目录的根目录中创建一个文件,地址为 /var/www/html
.
首先使用导航到目录 光盘
命令如下图。
cd /var/www/html/
创建一个新文件 让我们说文件.php
如下图所示使用vim编辑器。
vim 文件.php
现在通过按进入插入模式在编辑器中键入这个简单的脚本 一世
.
按保存并退出文件 退出
和 :wq
.
这 phpinfo()
是调用php相关信息的函数。这个脚本只是为了测试它是否工作。您还可以使用您选择的其他 php 脚本。
最后,要测试您的服务器,请打开 Web 浏览器,通过输入以下地址访问我们刚刚创建的文件 //你的服务器IP/file.php
.
如果结果显示 PHP 版本页面,那么我们可以肯定地说 LLMP 堆栈已成功安装在您的 Ubuntu 20.04 机器上。您现在可以安装您希望在服务器上运行的 PHP 应用程序。