如何在Ubuntu 22.04上安装Linux、OpenLiteSpeed、MariaDB、PHP(LOMP Stack)?

简介

LOMP堆栈指的是Linux、OpenLiteSpeed、MariaDB和PHP的缩写。OpenLiteSpeed是LiteSpeed Web服务器的开源选项。LiteSpeed服务器以其快速性能而闻名,特别是在与与其LiteSpeed服务器应用程序编程接口(LSAPI)兼容的语言(如PHP)集成时。LiteSpeed PHP(LSPHP)解释器通过专有的LS-API更快地提供动态的PHP页面服务。该API与HTTP服务器集成,从而缩短服务器对请求的响应时间。OpenLiteSpeed正成为WordPress、Joomla和其他基于PHP的动态内容应用的首选。

在本教程中,您将在Ubuntu 22.04上建立一个运行LOMP服务器。目前的版本是PHP 8.1、MariaDB 10.7和OpenLiteSpeed 1.7。

先决条件

在您开始使用本指南之前,您需要准备以下物品:

  • One Ubuntu 22.04 server with a sudo non-root user, a firewall, and at least 1GB of RAM, which you can set up by following the Ubuntu 22.04 initial server setup guide
  • A fully-qualified domain name (required for SSL configuration and recommended for public websites). You can get a domain name on Namecheap, Freenom, or the domain registrar of your choice. Follow the DNS Quickstart to point the domain name to your server.
  • SSL certificates and keys for your domain. Follow How To Use Certbot Standalone Mode to Retrieve Let’s Encrypt SSL Certificates on Ubuntu 22.04 to obtain the certificate-key pair for your domain. In Step 2, open port 80 alongside port 443.

第一步 – 安装OpenLiteSpeed

在此步骤中,您将在导入所需的软件包存储库到服务器后安装OpenLiteSpeed Web服务器。如果这是您首次在SSH会话中使用sudo命令,您可能需要输入非root用户的密码。

首先开始更新软件包管理器缓存。

  1. sudo apt update

 

然后,运行以下命令来升级所需的软件包。

  1. sudo apt upgrade -y

 

Note

注意:如果提示更新内核,请输入“y”继续。如果提示重新启动,请运行命令“sudo reboot”来重新启动系统。

与Apache和Nginx不同,OpenLiteSpeed将其代码托管在自己的代码库中。使用以下命令将该代码库添加到apt软件包管理器的源列表中。

  1. sudo wget -O – https://repo.litespeed.sh | sudo bash

 

wget在OpenLiteSpeed服务器上获取远程存储库的shell脚本,并且使用-O标志将文件的内容打印到终端。|管道将内容传递给由sudo bash命令启动的新的bash shell。该bash终端执行从存储库获取的.sh文件(bash脚本)内容中提到的命令,并将存储库安装到本地APT存储库列表中。

你会看到类似这样的输出。

Output

Redirecting output to ‘wget-log’. –2022-09-08 08:27:42– http://rpms.litespeedtech.com/debian/lst_debian_repo.gpg Resolving rpms.litespeedtech.com (rpms.litespeedtech.com)… 52.55.120.73 Connecting to rpms.litespeedtech.com (rpms.litespeedtech.com)|52.55.120.73|:80… connected. HTTP request sent, awaiting response… 200 OK Length: 1198 (1.2K) [application/octet-stream] Saving to: ‘/etc/apt/trusted.gpg.d/lst_debian_repo.gpg’ /etc/apt/trusted.gpg.d/l 100%[==================================>] 1.17K –.-KB/s in 0s 2022-09-08 08:27:42 (139 MB/s) – ‘/etc/apt/trusted.gpg.d/lst_debian_repo.gpg’ saved [1198/1198] –2022-09-08 08:27:42– http://rpms.litespeedtech.com/debian/lst_repo.gpg Resolving rpms.litespeedtech.com (rpms.litespeedtech.com)… 52.55.120.73 Connecting to rpms.litespeedtech.com (rpms.litespeedtech.com)|52.55.120.73|:80… connected. HTTP request sent, awaiting response… 200 OK Length: 2336 (2.3K) [application/octet-stream] Saving to: ‘/etc/apt/trusted.gpg.d/lst_repo.gpg’ /etc/apt/trusted.gpg.d/l 100%[==================================>] 2.28K –.-KB/s in 0s 2022-09-08 08:27:42 (226 MB/s) – ‘/etc/apt/trusted.gpg.d/lst_repo.gpg’ saved [2336/2336] LiteSpeed repository has been setup!

更新存储库列表,以确保apt软件包管理器扫描新添加的存储库。

  1. sudo apt update

 

接下来,安装openlitespeed软件包。

  1. sudo apt install openlitespeed

 

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

安装完成后,请使用service命令检查OpenLiteSpeed的状态,确保它已正确安装并正常运行。

  1. sudo systemctl status lsws

 

systemctl status命令可获取由关键词识别的服务的状态。OpenLiteSpeed Web服务器服务的关键词是lsws。systemctl命令可以启用或禁用服务的自动启动,并手动启动或停止服务。

你将会收到以下的输出结果。

Output

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

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

使用OpenLiteSpeed网页服务器后,您可以更新防火墙并打开所需的端口,以允许用户访问网站。

第二步 – 更新防火墙

在这个步骤中,您将为您的服务器配置防火墙。您将允许TCP流量通过选定的端口进行GUI管理员面板和示例网站的访问,同时还需要允许80和443端口用于HTTP和HTTPS网站。

OpenLiteSpeed服务器附带一个基于图形界面的管理面板和一个示例网站。管理员面板是一个易于使用的界面,用于配置监听器、虚拟主机、SSL和监控日志。示例网站包含了一个示例CGI脚本、PHP脚本、错误页面和一个密码保护页面。该网站可以展示Web服务器的功能。

在默认配置中,基于图形用户界面的管理面板监听7080端口,而示例网站监听8088端口。您需要通过ufw防火墙允许TCP流量访问这些网站的端口。

为了提供访问权限,请执行以下命令:

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

 

之后,检查防火墙规则的状态。

  1. sudo ufw status

 

您的输出将会如下所示:

Output

Status: active To Action From — —— —- OpenSSH ALLOW Anywhere 80,443,7080,8088/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80,443,7080,8088/tcp (v6) ALLOW Anywhere (v6)

你可以通过8088端口查看示例网站。

http://your_server_ip:8088

它应该看起来像下方的屏幕截图一样。

Screencapture of the front page for the example website when viewed through port

你可以浏览示例网站,探索网络服务器提供的功能。

要查看基于图形用户界面的管理员面板,请访问端口7080。

http://your_server_ip:7080

在本教程的后续部分,您将使用 OpenLiteSpeed 的图形用户界面管理员面板来配置您的网页服务器。

您现在已经在您的Ubuntu实例上设置好了OpenLiteSpeed服务器,这将允许您基于不同的后端语言和框架提供各种网络应用程序。接下来,您将设置LOMP堆栈的其他服务。

第三步 – 安装MariaDB

通过在Linux上运行OpenLiteSpeed服务器,您现在可以设置MariaDB数据库服务器。数据库服务器将允许您在网站上存储、检索和管理数据。MariaDB是一种流行的数据库引擎,因为它提供SQL和NoSQL功能,并且可以集成多个数据库引擎,如MyISAM和InnoDB。

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

  1. sudo apt install mariadb-server

 

在提示确认时,请键入 Y 进行确认。

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

  1. sudo mysql_secure_installation

 

默认安装没有根密码,因此在提示时可以直接按回车键。

安装设置完成后,您将收到类似以下的输出结果。

Output

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we’ll need the current password for the root user. If you’ve just installed MariaDB, and you haven’t set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on…

然后会提示您启用套接字认证。当询问是否要切换到unix_socket认证时,请输入Y。

Output

Setting the root password or using the unix_socket ensures that nobody can log into the MariaDB root user without the proper authorisation. You already have your root account protected, so you can safely answer ‘n’. Switch to unix_socket authentication [Y/n] y Enabled successfully! Reloading privilege tables.. … Success!

当下一个提示问你是否要设置根密码时,请输入Y并输入两次你想要设置的根密码。

Output

You already have your root account protected, so you can safely answer ‘n’. Change the root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. … Success!

下一个提示问您是否想要删除匿名用户。对于此提示,请选择Y作为答案。

Output

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

除非你打算以 root 用户的身份从其它服务器或你的本地机器访问数据库,否则你也应该禁止远程登录 root。为了禁用远程机器的 root 登录,请在提示中回答 Y。

Output

Normally, root should only be allowed to connect from ‘localhost’. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y … Success!

您还可以通过在以下提示中键入Y来删除测试数据库和相关权限。

Output

By default, MariaDB comes with a database named ‘test’ that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment: Remove test database and access to it? [Y/n] y – Dropping test database… … Success! – Removing privileges on test database… … Success!

最后,您将确认重新加载权限表,以使上述所有更改应用到服务器上。

Output

Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y … Success! Cleaning up… All done! If you’ve completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!

你已经在你的 Ubuntu 实例上安装、配置和保护了一个 MariaDB 数据库服务器。数据库将在默认配置下监听端口 3306 上的 MySQL 连接。由于数据库将仅在内部访问(在大多数情况下为同一服务器),因此你不需要在防火墙中开放该端口以接受外部流量。

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

步骤4 — 安装特定版本的PHP

OpenLiteSpeed网页服务器内置了一个PHP版本,该版本可能不是最新的稳定版本。您可以使用预安装的PHP版本,或者您可以安装特定的实例。在这一步中,您将检查您的PHP安装版本,如有必要则更新,并安装所需的包。

要知道你的OpenLiteSpeed服务器预装的PHP版本,点击示例网站的“测试PHP”部分按钮或访问以下URL。

http://your_server_ip:8088/phpinfo.php

PHP版本将在信息页面上显示。

要在OpenLiteSpeed web服务器上安装特定版本的PHP,请在官方OpenLiteSpeed网站的入门页面上查看可用版本及其兼容性列表。可用版本的列表显示在安装标题下的LiteSpeed仓库部分。

Screencapture displaying the LiteSpeed PHP Versions in the Documentation

您还可以使用以下命令检查适用于Ubuntu的LSPHP(LiteSpeed PHP)软件包。

  1. sudo apt-cache search lsphp

 

从软件包列表中,您可以通过软件包名称的后缀来识别PHP版本。您将看到一个如下的软件包列表:

Output

… lsphp81 – server-side, HTML-embedded scripting language (LSAPI binary) …

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

要安装特定的lsphp软件包,请使用以下命令(将81替换为您偏好版本的后缀)。

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

 

输入Y确认安装。

你只安装了lsphp软件包,但你尚未配置OpenLiteSpeed以使用这个版本的PHP。示例网站将继续显示默认的PHP版本,直到你配置它使用新版本为止。在下一步中,你将配置OpenLiteSpeed来使用这个版本的PHP。

第五步 – 配置OpenLiteSpeed

在这一步中,您将配置用于OpenLiteSpeed网页服务器的基于GUI的管理员面板的凭据,并配置网页服务器以使用您选择的PHP版本。

要配置OpenLiteSpeedWeb服务器,请在端口7080上访问GUI管理面板。

http://your_server_ip:7080

在你的终端中,通过以下命令设置管理员账户的凭据。

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

 

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

你将会看到以下输出,它会提示你输入用户名和密码:

Output

Please specify the user name of administrator. This is the user name required to login the administration Web interface. User name [admin]: sammy Please specify the administrators password. This is the password required to login the administration Web interface. Password: Retype password: Administrators username/password is updated successfully!

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

通过 http://your_server_ip:7080,在管理员面板上登录(使用刚刚设置的凭据)并导航到服务器配置部分。然后,点击外部应用程序选项卡。

你将会看到下面的屏幕。

External App Screen of OpenLiteSpeed Server Configuration section

点击“动作”列中第一行 LiteSpeed SAPI 应用程序的编辑按钮,将会打开一个名为 lsphp 的应用。滚动到“命令”字段,将其值更改为 lsphp81/bin/lsphp(按照第4步的命名约定)。配置完这个值后,滚动到 LiteSpeed SAPI 应用程序部分,并点击右侧的保存按钮。

请使用右上角的优雅重启按钮来重新启动Web服务器。以下屏幕截图中,优雅重启按钮在右上角突出显示。

Graceful Restart Button location

通过访问端口8088上的信息页面,验证服务器是否正在使用指定的PHP版本。

http://your_server_ip:8088/phpinfo.php

页面现在将显示指定的版本号。

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

步骤6 – 设置虚拟主机

在这一步中,您将为您的网络服务器设置虚拟主机,并为您网站的所有流量配置TLS加密。

虚拟主机允许您通过单个网络服务器为多个网站提供服务,这些网站通过唯一的主机名进行标识。OpenLiteSpeed可以为多个虚拟主机提供服务,然后将其映射到监听器;然后将监听器映射到特定的端口。OpenLiteSpeed允许虚拟主机具有自定义的重定向规则,并且每个虚拟主机还可以配置不同的PHP版本。可以配置虚拟主机以作为其他网络服务器(如Node.JS)的反向代理连接。

在GUI管理面板中,仍然导航到虚拟主机部分。 在出现的表格的右上角,点击加号(+)按钮添加一个新的虚拟主机。

您可以选择一个虚拟主机名称,并设置虚拟主机的根路径以及配置文件的路径。您可以使用变量,如$SERVER_ROOT(用于引用OpenLiteSpeed Web服务器的根目录)或$VH_ROOT(用于引用虚拟主机的根目录)来设置。启用脚本/扩展应用程序,以确保PHP在虚拟主机上正常工作。

当设置虚拟主机时,请使用您所需的值填写以下字段(下面显示的值仅为示例)。

  • Virtual Host Name: MyWebsite
  • Virtual Host Root: $SERVER_ROOT/MyWebsite/html/
  • Config File: conf/vhosts/MyWebsite/vhconf.conf
  • Enable Scripts/ExtApps: Yes
  • Restrained: Yes

你可以将” MyWebsite” 替换为在先决条件中创建的域名。

Note

注意:如果配置文件在指定的路径上不存在,您可能会收到一个错误。点击错误消息中提到的链接,可以自动创建该文件。

在配置的“外部应用”部分,启用“启用脚本/扩展应用程序”可以让您指定自定义的PHP解释器版本。如果您不打算配置自定义的PHP版本,可以将其关闭。

为了安全起见,请在限制访问中启用此功能。启用后,即使符号链接指向虚拟主机根目录之外的文件,也阻止用户访问其他目录中的文件。

Virtual Host Configuration

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

管理面板可能会显示一个提示,以执行优雅重启以应用配置更改。您可以在此时执行优雅重启,因为它不会影响配置步骤。您也可以在完成侦听器配置更改后再执行优雅重启。

在配置虚拟主机之后,您将配置监听器。在管理员面板中导航到监听器部分。点击默认监听器,然后点击虚拟主机映射表右上角的加号(+)按钮。

在与虚拟主机对应的下拉菜单中,选择你在虚拟主机配置中指定的虚拟主机名称。在示例中,选择的虚拟主机是”MyWebsite”。

在域名文本框中,输入完全合格且已注册的域名,该域名将用于提供你已配置的虚拟主机。在下方的截图中,示例值已设置为mywebsite.com,请将其更新为你所使用的your_domain的值。

Listener Configuration

Note

注意:默认侦听器配置为侦听8088端口。用于您网站的HTTP流量的端口是80,如果启用了SSL/TLS加密,则您的HTTPS网站应该侦听443端口。您需要在侦听器配置的地址设置中更改端口,以更改侦听器侦听的端口。

点击虚拟主机映射行的右上角保存。

强烈建议您为您的网站启用TLS安全功能。在监听器的常规设置中,将安全选项更新为是,并将为支持HTTPS页面的监听器更改端口从8088改为443。 443是HTTPS的默认端口。保存更新后的地址设置。

由于您在预先条件中从证书颁发机构生成了证书和密钥文件,现在您可以将它们添加到您的OpenLiteSpeed设置中。通过单击SSL私钥和证书行中的编辑图标,在侦听器配置的SSL部分中添加证书和密钥文件的路径。

如果你按照前提中提到的指南进行操作,Let’s Encrypt生成的证书和密钥文件将会放在以下位置:

  • Private Key File: /etc/letsencrypt/live/your_domain.privkey.pem
  • Certificate File: /etc/letsencrypt/live/your_domain.fullchain.pem

根据OpenLiteSpeed官方文档配置Let’s Encrypt SSL时,针对由Let’s Encrypt生成的证书,您必须将”Chained Certificate”选项设置为是。

请参考下面的示例配置,在SSL部分的监听器配置中设置TLS证书和密钥文件(确保更新文件路径以符合您的域名):

TLS Configuration for Listener

如果你遇到任何问题,你可以在OpenLiteSpeed的官方文档中查阅《OpenLiteSpeed SSL配置指南》来解决。

在配置和保存这些设置之后,点击屏幕右上角的“优雅重启”按钮以应用更改。

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

Note

启用QUIC协议上的HTTP/3
注意:OpenLiteSpeed是最早将HTTP3协议与快速UDP互联网连接(QUIC)协议结合的开源服务器之一。
要启用HTTP3/QUIC,您必须为域名设置SSL,并通过管理面板配置证书和密钥。请返回到第6步进行设置。
如果您想使用HTTP3,还必须允许UDP流量通过服务器的443端口。要执行此操作,请运行以下命令:
sudo ufw allow 443/udp

结论

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

如果您还没有这样做,您可以在您的 Web 服务器上设置 TLS 安全,并启用 HTTP/3 over QUIC,以最大限度地利用 OpenLiteSpeed Web 服务器。请查阅有关在 OpenLiteSpeed 上设置 Let’s Encrypt SSL 的指南,然后参考该指南第6步中的启用 HTTP/3 over QUIC 部分。

发表回复 0

Your email address will not be published. Required fields are marked *


广告
将在 10 秒后关闭
bannerAds