还在为 Web 服务器性能发愁?这份超详细的 OpenLiteSpeed 搭建指南能让你轻松搞定高性能环境搭建。
你是否已经受够了 Nginx 或 Apache 在某些情况下的性能瓶颈?想尝试一款高性能、资源占用低且功能强大的 Web 服务器?OpenLiteSpeed(OLS)作为 LiteSpeed Technologies 开发的免费开源 Web 服务器,以其轻量级、优化良好的特性而闻名,将安全性、简单性和速度结合到了一个包里。
今天,我们就来手把手教你在 Ubuntu 20.04 上安装和配置 OpenLiteSpeed,并集成 PHP 7.4 和 PHP 8.0、LSMCD(LiteSpeed Memcached) 以及 ModSecurity 和相关规则包。无论你是开发新手还是运维老鸟,这篇教程都能帮你轻松搭建高性能的 Web 服务环境。
一、 系统准备与 OpenLiteSpeed 安装
在开始之前,请确保你拥有一个 Ubuntu 20.04 系统,并已具备 sudo 权限。
首先,让我们更新系统并安装一些必要的依赖包:
sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install build-essential libexpat1-dev libgeoip-dev libpcre3-dev zlib1g-dev libssl-dev libxml2-dev rcs libpng-dev wget -y
接下来,添加 OpenLiteSpeed 的官方存储库并安装它:
wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash sudo apt-get install openlitespeed -y
安装完成后,启动 OpenLiteSpeed 服务并设置开机自启:
sudo systemctl start lsws sudo systemctl enable lsws
OpenLiteSpeed 的默认 HTTP 访问端口是 8088
,管理控制台端口是 7080
。你可以通过 http://你的服务器IP:8088
来访问默认页面。
首次访问管理控制台(https://你的服务器IP:7080
)时,你需要设置管理员账户和密码:
sudo /usr/local/lsws/admin/misc/admpass.sh
按照提示输入用户名和密码即可。
二、 PHP 7.4 和 PHP 8.0 安装与配置
OpenLiteSpeed 默认可能会安装某个版本的 PHP(如早期版本默认安装 PHP 7.3),但我们可以手动安装多版本 PHP。
1. 安装 PHP 7.4 及常用扩展
通过官方存储库安装 PHP 7.4 及其一系列常用扩展:
sudo apt-get install lsphp74 lsphp74-common lsphp74-curl lsphp74-mysql lsphp74-opcache lsphp74-imap lsphp74-json lsphp74-redis lsphp74-memcached -y
2. 安装 PHP 8.0 及常用扩展
同样地,安装 PHP 8.0 及其扩展:
sudo apt-get install lsphp80 lsphp80-common lsphp80-curl lsphp80-mysql lsphp80-opcache lsphp80-imap lsphp80-json lsphp80-redis lsphp80-memcached -y
3. 安装其他需要的 PHP 扩展
如果你想查看还有哪些可用的扩展,可以使用 apt search lsphp74-
或 apt search lsphp80-
命令。通常,你还需要安装一些诸如 gd、bcmath、mbstring、xml、zip 等扩展:
sudo apt-get install lsphp74-gd lsphp74-bcmath lsphp74-mbstring lsphp74-xml lsphp74-zip sudo apt-get install lsphp80-gd lsphp80-bcmath lsphp80-mbstring lsphp80-xml lsphp80-zip
4. 配置 OpenLiteSpeed 使用多版本 PHP
安装好 PHP 后,我们需要在 OpenLiteSpeed 的管理界面中配置外部应用程序(External Application)和脚本处理器(Script Handler)。
- 登录 OpenLiteSpeed 管理控制台(
https://你的服务器IP:7080
)。 - 进入 “服务器” → “外部应用程序”。
- 点击 “添加” 按钮,为 PHP 7.4 创建一个新的外部应用程序。
- 名称:
lsphp74
- 地址:
uds://tmp/lshttpd/lsphp74.sock
(这里注意与默认的 sock 文件区分开) - 最大连接数:
100
- 初始请求超时(秒):
60
- 重试超时(秒):
0
- 持久连接:
是
- 命令:
lsphp74/bin/lsphp
- 名称:
- 点击 “保存”。
- 重复上述步骤,为 PHP 8.0 创建一个外部应用程序,名称设为
lsphp80
,命令设为lsphp80/bin/lsphp
,地址可以设为uds://tmp/lshttpd/lsphp80.sock
。 - 接下来,配置脚本处理器(Script Handler):进入 “服务器” → “脚本处理器”。
- 你可以看到默认的处理器(例如
lsphp
可能指向某个默认 PHP 版本)。我们需要为不同的 PHP 后缀或虚拟主机指定不同的处理器,更常见的做法是在虚拟主机层面指定其使用的脚本处理器(这将在创建网站部分详述)。
三、 安装与配置 LiteSpeed Memcached (LSMCD)
LSMCD 是 LiteSpeed 开发的与 Memcached 兼容的守护进程,针对 LiteSpeed 服务器进行了优化。
安装 LSMCD 所需的依赖:
sudo apt-get install git build-essential zlib1g-dev libexpat1-dev openssl libssl-dev libsasl2-dev libpcre3-dev -y
下载并编译安装 LSMCD:
wget https://github.com/litespeedtech/lsmcd/archive/refs/heads/master.zip -O lsmcd-master.zip unzip lsmcd-master.zip cd lsmcd-master ./fixtimestamp.sh ./configure CFLAGS=" -O3" CXXFLAGS=" -O3" make sudo make install
配置 LSMCD,编辑其配置文件:
sudo nano /usr/local/lsmcd/conf/node.conf
关键的配置项可以参考(根据你的服务器配置调整):
User = nobody Group = nogroup CachedProcCnt = 2 # 根据你的 CPU 核心数调整
启动并启用 LSMCD 服务:
sudo systemctl start lsmcd sudo systemctl enable lsmcd
你可以使用 telnet
命令验证 LSMCD 是否正常运行:
telnet 127.0.0.1 11211
输入 stats
后如果返回一系列统计信息,说明安装成功。
四、 安装与配置 ModSecurity 及相关规则包
ModSecurity 是一个开源的 Web 应用程序防火墙(WAF),虽然 OpenLiteSpeed 可能并非 100% 兼容所有 Apache 的 ModSecurity 配置,但我们依然可以安装和使用它。
1. 安装 ModSecurity
我们可以通过安装 Apache 的 libapache2-mod-security2
包来获取 ModSecurity:
sudo apt-get install libapache2-mod-security2 -y
这个包主要是为 Apache 设计的,但 OpenLiteSpeed 可以兼容使用其中的 ModSecurity 核心组件和规则。
2. 配置 ModSecurity
备份并修改 ModSecurity 的主配置文件:
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf sudo nano /etc/modsecurity/modsecurity.conf
找到 SecRuleEngine
和 SecAuditLogParts
配置项,并进行如下修改:
SecRuleEngine On SecAuditLogParts ABCEFHJKZ
3. 下载 OWASP 核心规则集 (CRS)
OWASP ModSecurity 核心规则集(CRS)提供了保护 Web 应用程序免受各种攻击的规则。
wget https://github.com/coreruleset/coreruleset/archive/v3.3.0.tar.gz tar xvf v3.3.0.tar.gz sudo mkdir -p /etc/apache2/modsecurity-crs/ sudo mv coreruleset-3.3.0/ /etc/apache2/modsecurity-crs/ cd /etc/apache2/modsecurity-crs/coreruleset-3.3.0/ sudo mv crs-setup.conf.example crs-setup.conf
4. 配置 OpenLiteSpeed 启用 ModSecurity
你需要通过 OpenLiteSpeed 的 Web 管理界面或直接编辑其主配置文件来启用 ModSecurity。
通过 Web 管理界面配置:
- 进入 “服务器” → “安全” → “ModSecurity”。
- 启用 “ModSecurity 启用”。
- 在 “ModSecurity 规则” 中,添加规则文件路径,例如:
\n/etc/modsecurity/modsecurity.conf
\n/etc/apache2/modsecurity-crs/coreruleset-3.3.0/crs-setup.conf
\n/etc/apache2/modsecurity-crs/coreruleset-3.3.0/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
\n/etc/apache2/modsecurity-crs/coreruleset-3.3.0/rules/REQUEST-901-INITIALIZATION.conf
\n... (添加所有需要的规则文件) ...
注意:每个文件路径前加\n
表示换行添加一条新规则。也可以使用Include
指令。
通过编辑配置文件配置(更高效):
编辑 OpenLiteSpeed 的主配置文件:
sudo nano /usr/local/lsws/conf/httpd_config.conf
在文件末尾或合适的位置添加以下内容(使用绝对路径):
module mod_security { mod_security_rules file:/etc/modsecurity/modsecurity.conf mod_security_rules file:/etc/apache2/modsecurity-crs/coreruleset-3.3.0/crs-setup.conf mod_security_rules file:/etc/apache2/modsecurity-crs/coreruleset-3.3.0/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf mod_security_rules file:/etc/apache2/modsecurity-crs/coreruleset-3.3.0/rules/REQUEST-901-INITIALIZATION.conf # ... 根据需要添加更多规则文件 ... mod_security_rules file:/etc/apache2/modsecurity-crs/coreruleset-3.3.0/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf }
注意:这种配置方式可能需要你根据实际文件路径和 OpenLiteSpeed 的模块加载语法进行调整。OpenLiteSpeed 对 ModSecurity 的支持程度,请务必查阅其官方文档以获取最准确的信息。
五、 创建使用不同 PHP 版本的网站
现在,我们来创建两个虚拟主机,一个使用 PHP 7.4,另一个使用 PHP 8.0。
1. 创建网站目录
首先,为两个网站创建文档根目录并设置合适的权限:
sudo mkdir /usr/local/lsws/php74-site sudo mkdir /usr/local/lsws/php80-site sudo chown -R nobody:nogroup /usr/local/lsws/php74-site sudo chown -R nobody:nogroup /usr/local/lsws/php80-site
在每个目录中创建一个 index.php
测试文件:
sudo nano /usr/local/lsws/php74-site/index.php
内容如下:
<?php phpinfo(); ?>
同样地在 php80-site
目录下创建相同的文件。
2. 通过管理界面创建虚拟主机
- 登录 OpenLiteSpeed 管理控制台。
- 进入 “虚拟主机” → 点击 “添加” 按钮。
- 虚拟主机名称:输入
php74-site
。 - 虚拟主机根目录:设置为
/usr/local/lsws/php74-site
。 - 其他设置可以保持默认,点击 “保存”。
- 重复上述步骤,创建另一个名为
php80-site
的虚拟主机,根目录指向/usr/local/lsws/php80-site
。
3. 为虚拟主机配置脚本处理器
- 在 “虚拟主机” 列表中,点击你刚创建的
php74-site
进入其配置。 - 找到 “脚本处理器” 部分。
- 点击 “添加” 按钮。
- 后缀:例如
php
(表示处理所有.php
文件) - 处理器:从下拉菜单中选择你之前创建的
lsphp74
。 - 点击 “保存”。
- 同样地,为
php80-site
虚拟主机添加一个脚本处理器,后缀设为php
,处理器选择lsphp80
。
4. 配置监听器并分配虚拟主机
- 进入 “监听器” → “Default” (或者为你新创建的虚拟主机新建一个监听器)。
- 在 “虚拟主机映射” 部分,确保你的
php74-site
和php80-site
已经通过域名或上下文(Context)映射到了这个监听器。更常见的做法是:- 保留默认监听器处理主要流量,并通过域名来区分不同的虚拟主机。
- 在各自的虚拟主机配置中,设置相应的域名。
5. 更改默认 HTTP 端口(可选)
如果你希望直接使用端口 80 访问网站,而不是默认的 8088:
- 进入 “监听器” → “Default”。
- 点击地址设置旁的 “编辑” 图标。
- 将 端口 从
8088
改为80
。 - 点击 “保存”,然后重启 OpenLiteSpeed 服务。
六、 重启服务并验证安装
完成所有配置后,重启 OpenLiteSpeed 以使更改生效:
sudo systemctl restart lsws
验证步骤:
- 访问网站:在浏览器中访问你的服务器 IP 或配置的域名,分别指向 PHP 7.4 和 PHP 8.0 的网站,查看
phpinfo()
页面,确认显示的 PHP 版本是否正确。 - 验证 Memcached:在你的网站目录创建一个 PHP 文件,使用类似前面提到的 Memcached 测试代码,检查 LSMCD 是否正常工作。
- 测试 ModSecurity:尝试访问一个可疑的 URL,例如
http://你的域名/?exec=/bin/bash
,如果 ModSecurity 正常工作,你应该会收到一个 403 Forbidden 错误。
七、 故障排除与优化建议
- 权限问题:始终确保你的网站目录(如
/usr/local/lsws/php74-site
)的所有者和组是 OpenLiteSpeed 运行的用户(通常是nobody:nogroup
)。 - 查看日志:遇到问题时,第一件事就是查看日志。OpenLiteSpeed 的日志通常位于
/usr/local/lsws/logs/
,包括错误日志(error.log)和访问日志(access.log)。ModSecurity 的审计日志路径则在其配置文件中定义。 - 防火墙:确保你的防火墙开放了 80(HTTP)、443(HTTPS,如果你配置了 SSL)、7080(管理后台)等端口。
- 性能优化:根据你的服务器硬件配置(CPU、内存),适当调整 OpenLiteSpeed 的 工作进程数(Workers)和 最大连接数,以及 LSMCD 的 缓存大小 和 连接数。
- ModSecurity 规则调优:直接使用 OWASP CRS 默认规则可能会产生误报或影响性能,建议在生产环境中仔细配置排除规则(EXCLUSION RULES)。
结语
恭喜你!你已经成功在 Ubuntu 20.04 上搭建了一个功能强大的 OpenLiteSpeed Web 服务器环境,它支持多版本 PHP、配备了高性能的 LSMCD 缓存以及提供安全防护的 ModSecurity。这套环境无论是用于开发还是生产,都能提供出色的性能和安全性。
搭建过程中遇到问题很正常,多查阅官方文档和日志文件,你总能找到解决方案。
版权信息: 本文首发于万事屋,转载请保留出处。
SEO 关键词与描述
关键词: Ubuntu 20.04, OpenLiteSpeed, PHP 7.4, PHP 8.0, LSMCD, Memcached, ModSecurity, OWASP CRS, Web 服务器, 建站教程, 性能优化, 服务器配置, LiteSpeed 缓存, 多版本 PHP 环境
描述: 本文提供了一份详尽的在 Ubuntu 20.04 上安装和配置 OpenLiteSpeed、PHP 7.4、PHP 8.0、LSMCD (Memcached) 和 ModSecurity 的教程,帮助您搭建高性能、安全的 Web 服务器环境,并支持多版本 PHP 运行。
没有回复内容