如何在 Ubuntu 20.04 上安装 Linux、OpenLiteSpeed、MariaDB 和 PHP(LOMP 协议栈

作者选择了 自由和开源基金作为 写给捐款计划的一部分接受捐款。

介绍

LOMP 堆栈是 ** L** inux, ** O** penLiteSpeed, ** M** ariaDB和 ** P** HP的简称。 OpenLiteSpeed 是 LiteSpeed 网络服务器的开源选项。 LiteSpeed 服务器以其快速性能而闻名,特别是在 PHP 等语言中,它们与 LS-API集成得很好。 [LSPHP (LiteSpeed PHP)(https://docs.litespeedtech.com/lsws/extapp/php/configuration/options/)翻译器功能更快,通过其专有的 LS-API 来服务动态 PHP 页面。 API 与 HTTP 服务器集成,从而缩短了服务器发送请求响应的总时间。 OpenLiteSpeed 正在

在本教程中,您将设置运行在Ubuntu 20.04上的LOMP服务器,使用PHP 8.1,MariaDB 10.7和OpenLiteSpeed 1.7.

前提条件

在您开始本指南之前,您将需要以下内容:

  • 一个 Ubuntu 20.04 服务器具有 sudo 非 root 用户、防火墙和至少 1 GB 的 RAM,您可以通过遵循 Ubuntu 20.04 初始服务器设置指南
  • 一个完全合格的域名(对于 SSL 配置是必需的,并建议公共网站使用)。您可以在 NamecheapFreenom或您选择的域名注册器上获取域名。 按照 DNS Quickstart 将域名指向您的服务器。 在步骤 2,打开 `` 80 端口和您的域的 SSL 密钥。 按照 [How To Use Certbot Standalone Mode to Retrieve Let's Encrypt SSL Certificates on Ubuntu 20

步骤 1 – 安装 OpenLiteSpeed

在此步骤中,您将安装OpenLiteSpeed Web 服务器,然后将所需的包库导入到您的服务器中. 如果这是您第一次在SSH会话中使用sudo,您可能需要输入非根用户的密码。

首先,更新包管理器的缓存:

1sudo apt update

ApacheNginx不同,OpenLiteSpeed 将其代码托管在自己的存储库中。

1sudo wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash

wget 接收位于 OpenLiteSpeed 服务器上的远程存储库,而 -O 标志将文件内容打印到终端. `` 管道将内容传送到一个新的 bash shell,由sudo bash 命令启动。

你会看到这样的输出:

 1[secondary_label Output]
 2--2022-03-16 08:51:49--  http://rpms.litespeedtech.com/debian/lst_repo.gpg
 3Resolving rpms.litespeedtech.com (rpms.litespeedtech.com)... 52.55.120.73
 4Connecting to rpms.litespeedtech.com (rpms.litespeedtech.com)|52.55.120.73|:80... connected.
 5HTTP request sent, awaiting response... 200 OK
 6Length: 2336 (2.3K) [application/octet-stream]
 7Saving to: /etc/apt/trusted.gpg.d/lst_repo.gpg
 8
 9/etc/apt/trusted.gp 100%[===================>]   2.28K  --.-KB/s in 0s
10
112022-03-16 08:51:50 (329 MB/s) - /etc/apt/trusted.gpg.d/lst_repo.gpg saved [2336/2336]
12
13 update the repo
14Hit:1 https://repos.insights.digitalocean.com/apt/do-agent main InRelease
15Hit:2 http://mirrors.digitalocean.com/ubuntu focal InRelease
16Hit:3 https://repos-droplet.digitalocean.com/apt/droplet-agent main InRelease
17Hit:4 http://mirrors.digitalocean.com/ubuntu focal-updates InRelease
18Ign:5 http://rpms.litespeedtech.com/debian focal InRelease
19Hit:6 http://security.ubuntu.com/ubuntu focal-security InRelease
20Hit:7 http://mirrors.digitalocean.com/ubuntu focal-backports InRelease
21Get:8 http://rpms.litespeedtech.com/debian focal Release [1652 B]
22Get:9 http://rpms.litespeedtech.com/debian focal Release.gpg [836 B]
23Get:10 http://rpms.litespeedtech.com/debian focal/main amd64 Packages [18.3 kB]
24Fetched 20.8 kB in 2s (13.6 kB/s)
25Reading package lists... Done
26 All done, congratulations and enjoy !

接下来,安装openlitespeed包:

1sudo apt install openlitespeed

如果被提示,输入您的密码,然后用Y确认安装。

一旦安装完成,请通过服务命令检查 OpenLiteSpeed 是否安装并正常工作:

1sudo systemctl status lsws

systemctl 状态命令获得了由其关键字识别的服务的状态。 OpenLiteSpeed Web Server 服务的关键字是lsws

您将获得以下输出:

 1[secondary_label Output]
 2 lshttpd.service - OpenLiteSpeed HTTP Server
 3     Loaded: loaded (/etc/systemd/system/lshttpd.service; enabled; vendor preset: enabled)
 4     Active: active (running) since Wed 2022-03-16 08:59:09 UTC; 2min 26s ago
 5    Process: 32997 ExecStart=/usr/local/lsws/bin/lswsctrl start (code=exited, status=0/SUCCESS)
 6   Main PID: 33035 (litespeed)
 7     CGroup: /system.slice/lshttpd.service
 8             ├─33035 openlitespeed (lshttpd - main)
 9             ├─33044 openlitespeed (lscgid)
10             └─33073 openlitespeed (lshttpd - #01)

您现在有一个 OpenLiteSpeed Web 服务器以其默认配置运行,您可能无法访问基于 GUI 的管理面板和示例网站,因为防火墙阻止了这些端口的流量。

随着您的 OpenLiteSpeed Web 服务器运行,您可以更新防火墙并打开必要的端口,以允许用户访问网站。

第2步:更新防火墙

在此步骤中,您将为您的服务器配置防火墙,以允许通过 TCP 访问基于 GUI 的管理面板和示例网站的选定的端口,以及 HTTP 和 HTTPS 网站的端口 80 和 443。

OpenLiteSpeed 服务器将基于 GUI 的管理面板和示例网站与服务器结合在一起。 管理面板是一个易于使用的界面,用于配置倾听器、虚拟主机、SSL 和监控日志。 示例网站具有示例 CGI 脚本、PHP 脚本、错误页面和密码保护页面。

基于GUI的管理面板在默认配置中在端口7080上倾听,而示例网站则在端口8088上倾听。

若要提供访问,请运行以下命令:

1sudo ufw allow 7080,80,443,8088/tcp

然后,检查防火墙规则的状态:

1sudo ufw status

你的输出将看起来像这样:

1[secondary_label Output]
2Status: active
3
4To Action From
5--                                ------      ----
6OpenSSH ALLOW Anywhere
780,443,7080,8088/tcp ALLOW Anywhere
8OpenSSH (v6)                      ALLOW Anywhere (v6)
980,443,7080,8088/tcp (v6)         ALLOW Anywhere (v6)

您可以通过端口 8088 查看示例网站:

1http://your_server_ip:8088

它应该看起来像下面的屏幕截图:

Example website when viewed through port <code>8088</code>

您可以环顾示例网站,探索 Web 服务器提供的功能。

请参阅基于 GUI 的管理面板通过端口 7080:

1http://your_server_ip:7080

在本教程中,您将使用 GUI 界面来配置您的 Web 服务器。

您现在已经在Ubuntu实例上设置了OpenLiteSpeed服务器,这将允许您根据不同的后端语言和框架服务各种Web应用程序。

步骤 3 – 安装 MariaDB

随着 L inux 和 ** O** penLiteSpeed 服务器的运行,您现在可以设置 ** M** ariaDB 数据库服务器. 该数据库服务器将允许您在您的网站上存储,检索和管理数据。 MariaDB 是一个流行的数据库引擎,因为它提供了 SQL 和 NoSQL 功能,并可以集成多个数据库引擎,如 MyISAMInnoDB

使用以下命令安装 MariaDB 服务器:

1sudo apt install mariadb-server

当被提示进行确认时,键入Y来确认。

安装完成后,用以下命令完成初始服务器设置:

1sudo mysql_secure_installation

默认安装没有根密码,因此在提示时可以按Enter

安装后,您将收到这样的输出:

 1[secondary_label Output]
 2
 3NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 4      SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
 5
 6In order to log into MariaDB to secure it, we'll need the current
 7password for the root user. If you've just installed MariaDB, and
 8you haven't set the root password yet, the password will be blank,
 9so you should just press enter here.
10
11Enter current password for root (enter for none):
12OK, successfully used password, moving on...

当被问及是否要设置根密码时,请键入Y,然后输入您偏好的根密码两次。

 1[secondary_label Output]
 2Setting the root password ensures that nobody can log into the MariaDB
 3root user without the proper authorization.
 4
 5Set root password? [Y/n] y
 6New password:
 7Re-enter new password:
 8Password updated successfully!
 9Reloading privilege tables..
10 ... Success!

下一个提示会问你是否想删除这些匿名用户。

1[secondary_label Output]
2By default, a MariaDB installation has an anonymous user, allowing anyone
3to log into MariaDB without having to have a user account created for
4them. This is intended only for testing, and to make the installation
5go a bit smoother. You should remove them before moving into a
6production environment.
7
8Remove anonymous users? [Y/n] y
9 ... Success!

除非您计划从其他服务器或本地计算机访问数据库作为 root 用户,否则您还应该 远程禁用 root 登录

1[secondary_label Output]
2Normally, root should only be allowed to connect from 'localhost'. This
3ensures that someone cannot guess at the root password from the network.
4
5Disallow root login remotely? [Y/n] y
6 ... Success!

您还可以 删除测试数据库和相关权限 ,输入以下提示的Y:

 1[secondary_label Output]
 2By default, MariaDB comes with a database named 'test' that anyone can
 3access. This is also intended only for testing, and should be removed
 4before moving into a production environment.
 5
 6Remove test database and access to it? [Y/n] y
 7 - Dropping test database...
 8 ... Success!
 9 - Removing privileges on test database...
10 ... Success!

最后,您将确认 重新加载权限表 ,以便所有上述更改都应用于服务器:

 1[secondary_label Output]
 2Reloading the privilege tables will ensure that all changes made so far
 3will take effect immediately.
 4
 5Reload privilege tables now? [Y/n] y
 6 ... Success!
 7
 8Cleaning up...
 9
10All done!  If you've completed all of the above steps, your MariaDB
11installation should now be secure.
12
13Thanks for using MariaDB!

您现在已在您的 Ubuntu 实例上安装、配置和保护 MariaDB 数据库服务器. 数据库将在其默认配置中在端口 3306 上收听 MySQL 连接. 由于数据库将被内部访问(在大多数情况下在相同的服务器上),您将不会打开该端口到防火墙中的外部流量。

接下来,您将安装PHP用于OpenLiteSpeed。

第4步:安装特定版本的PHP

OpenLiteSpeed Web 服务器配备了一个 PHP 版本,这可能不是 PHP 的最新稳定版本,您可以使用预先安装的 PHP 版本,或者您可以安装特定实例。

要了解您的 OpenLiteSpeed 服务器预安装了哪个版本的 PHP,请点击示例网站的 Test PHP 部分中的按钮,或访问下面的 URL:

1http://your_server_ip:8088/phpinfo.php

要在 OpenLiteSpeed Web 服务器上安装特定版本的 PHP,请在官方 OpenLiteSpeed 网站的 Getting Started with PHP page 中检查可用的版本列表以及它们的兼容性。

LiteSpeed PHP Versions in the Documentation

您还可以通过以下命令检查 Ubuntu 可用的 LSPHP (LiteSpeed PHP) 包:

1sudo apt-cache search lsphp

从包列表中,您可以使用包名称的尾声识别php版本,您将看到这样的包列表:

1[secondary_label Output]
2...
3lsphp81 - server-side, HTML-embedded scripting language (LSAPI binary)
4...

在本示例中,lsphp81表示这是PHP v8.1,而lsphp74意味着PHP v7.4

要安裝特定「lsphp」套件,請使用下列命令(用您偏好版本的補充詞取代「81」):

1sudo apt install lsphp81 lsphp81-{common,mysql}

输入Y来确认安装。

您只安装了lsphp包,但您尚未配置 OpenLiteSpeed 以使用此版本的 PHP. 示例网站将继续显示默认的 PHP 版本,直到您将其配置为使用新版本。

步骤 5 – 配置 OpenLiteSpeed

在此步骤中,您将为 OpenLiteSpeed 网页服务器配置基于 GUI 的管理面板的凭证,并根据您在步骤 4 中安装的版本或与默认 OpenLiteSpeed 服务器一起提供的版本配置使用您选择的 PHP 版本。

要配置 OpenLiteSpeed Web 服务器,请在端口 7080 打开 GUI 管理面板:

1http://your_server_ip:7080

在您的终端中,用以下命令设置管理员帐户凭证:

1sudo /usr/local/lsws/admin/misc/admpass.sh

这些登录凭证将与您在之前的步骤中设置的不同,并且只适用于 OpenLiteSpeed 服务器的 GUI 管理面板。

您将看到以下输出,这将提示您输入用户名和密码:

 1[secondary_label Output]
 2Please specify the user name of administrator.
 3This is the user name required to login the administration Web interface.
 4
 5User name [admin]: sammy
 6
 7Please specify the administrators password.
 8This is the password required to login the administration Web interface.
 9
10Password:
11Retype password:
12Administrators username/password is updated successfully!

设置证书后,您可以配置服务器使用指定的版本。

通过http://your_server_ip:7080,登录到 Admin Panel (使用您刚刚设置的身份证件)并导航到 ** 服务器配置** 部分。

你会看到以下屏幕:

External App Screen of OpenLiteSpeed Server Configuration section

点击第一个行 LiteSpeed SAPI App 的 ** Actions** 列中的 ** edit** 按钮,这将打开一个名为 ** lsphp** 的应用程序。滚动到 ** Command** 字段,将其值更改为 lsphp81/bin/lsphp(按照步骤 4中的命名惯例)。

使用绿色 Graceful Restart 按钮在右上方重新启动 Web 服务器。

Graceful Restart Button location

請確認您的伺服器現在正在使用指定的 PHP 版本,請前往「8088」端口的資訊頁面:

1http://your_server_ip:8088/phpinfo.php

在此步骤中,您配置了管理面板的凭据,并将其设置为使用所需的PHP版本,接下来,您将为您计划在这个Web服务器上托管的不同网站设置虚拟主机。

步骤6:设置虚拟主机

在此步骤中,您将为您的 Web 服务器设置虚拟主机。

虚拟主机允许您通过一个单一的Web服务器服务多个网站,通过独特的主机名称。OpenLiteSpeed可以服务多个虚拟主机,然后将其绘制到倾听者;然后将倾听者绘制到特定端口。OpenLiteSpeed允许虚拟主机拥有自定义的重定向规则,并且可以为每个虚拟主机配置不同的PHP版本。

仍然在 GUI 管理面板中,导航到 ** 虚拟主机** 部分. 在显示表的右上角,点击 ** +** 按钮添加一个新的虚拟主机。

然后,您可以添加您选择的虚拟主机名称,以设置虚拟主机根源和虚拟主机的配置文件的路径,使用变量,如 $SERVER_ROOT(指向OpenLiteSpeed Web Server的根目录)或 $VH_ROOT(指向虚拟主机的根目录)。

在设置虚拟主机时,请用您想要的值填写以下字段(下面的值为示例):

  • 虚拟主机名称: MyWebsite
  • 虚拟主机根: $SERVER_ROOT/MyWebsite/html/
  • 配置文件: conf/vhosts/MyWebsite/vhconf.conf
  • 启用脚本/ExtApps: Yes
  • 限制: Yes

<$>[注] 注: 如果配置文件不存在,则可能会收到错误。

启用脚本/ExtApps允许您在配置的外部应用程序部分中指定自定义的PHP解释器版本,如果您不打算配置自定义PHP版本,则可以关闭。

YesRestrained上阻止用户访问虚拟主机根目录中的文件,即使有符号链接指向虚拟主机根目录以外的文件。

Virtual Host Configuration

完成配置后,单击 ** 保存 ** 按钮在 ** 虚拟主机 ** 行的右侧。

管理面板可能会显示提示执行 Graceful Restart 以将更改应用于配置. 您可以在此时执行 Graceful Restart,因为它不会影响配置步骤。

配置虚拟主机后,您将配置 Listener . 导航到 ** Admin Panel** 的 ** Listeners** 部分. 点击 ** Default** 倾听器,然后点击 ** Virtual Host Mappings** 表的右上角的 ** +** 按钮。

虚拟主机字符串中选择您在虚拟主机配置中分配的虚拟主机名称

在域名文本框中,输入您将用来服务您配置的虚拟主机的完全合格和注册的域名。

Listener Configuration

点击 ** 保存 ** 在 ** 虚拟主机地图 ** 行右上方。

强烈建议您为您的网站启用 TLS 安全性。在普通设置中,更新安全选项到并将端口从8088更改为443用于服务 HTTPS 页面的倾听者

由于您在前提条件期间从证书授权机构生成的证书和密钥文件,您现在可以将其添加到您的 OpenLiteSpeed 设置中。在 Listener 配置的 SSL 部分中添加证书和密钥文件路径,点击 ** Edit** 图标在 ** SSL Private Key & Certificate** 行中。

TLS Configuration for Listener

如果您遇到任何问题,您可以查看 OpenLiteSpeed 文档中配置 OpenLiteSpeed for SSL 的指南(https://openlitespeed.org/kb/lets-encrypt-ssl-on-openlitespeed/)。

配置和保存这些设置后,请点击屏幕右上角的绿色 Graceful Restart 按钮来应用更改。

您现在已经配置了一个虚拟主机,并为您的网站的所有流量设置了 TLS 加密,然后将 DNS 配置到您的服务器的公共 IP 地址,您的网站将在您指定的域名上可访问。

<$>[note] [label Enable HTTP/3 over ** QUIC** ] 注: OpenLiteSpeed 是第一个将 HTTP3 协议嵌入 Quick UDP Internet Connections (QUIC) 协议的开源服务器之一。

要启用 HTTP3/QUIC,您必须为您的域设置 SSL,并通过 Admin Panel 配置证书和密钥。

如果您想使用 HTTP3,您还必须允许UDP流量将您的服务器的端口443

1sudo ufw allow 443/udp

美元

结论

在本教程中,您将设置一个 MariaDB 数据库服务器和一个 OpenLiteSpeed Web 服务器,可以为 PHP 应用程序提供指定的 PHP 版本,您现在可以在您的服务器上托管各种 PHP 应用程序和框架,如 WordPress, LaravelJoomla

如果您还没有,您可以在 Web 服务器上设置 TLS 安全性,并通过 QUIC 启用 HTTP/3 以最大限度地利用 OpenLiteSpeed Web 服务器。

Published At
Categories with 技术
comments powered by Disqus