Ubuntu 20.04 安装 OpenLiteSpeed 环境:多版本 PHP + Memcached + ModSecurity 全攻略 - 万事屋

Ubuntu 20.04 安装 OpenLiteSpeed 环境:多版本 PHP + Memcached + ModSecurity 全攻略

还在为 Web 服务器性能发愁?这份超详细的 OpenLiteSpeed 搭建指南能让你轻松搞定高性能环境搭建。

 

你是否已经受够了 Nginx 或 Apache 在某些情况下的性能瓶颈?想尝试一款高性能、资源占用低且功能强大的 Web 服务器?OpenLiteSpeed(OLS)作为 LiteSpeed Technologies 开发的免费开源 Web 服务器,以其轻量级、优化良好的特性而闻名,将安全性、简单性和速度结合到了一个包里。

今天,我们就来手把手教你在 Ubuntu 20.04 上安装和配置 OpenLiteSpeed,并集成 PHP 7.4 和 PHP 8.0LSMCD(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)。

  1. 登录 OpenLiteSpeed 管理控制台https://你的服务器IP:7080)。
  2. 进入 “服务器”“外部应用程序”
  3. 点击 “添加” 按钮,为 PHP 7.4 创建一个新的外部应用程序。
    • 名称: lsphp74
    • 地址: uds://tmp/lshttpd/lsphp74.sock (这里注意与默认的 sock 文件区分开)
    • 最大连接数: 100
    • 初始请求超时(秒): 60
    • 重试超时(秒): 0
    • 持久连接:
    • 命令: lsphp74/bin/lsphp
  4. 点击 “保存”
  5. 重复上述步骤,为 PHP 8.0 创建一个外部应用程序,名称设为 lsphp80,命令设为 lsphp80/bin/lsphp,地址可以设为 uds://tmp/lshttpd/lsphp80.sock
  6. 接下来,配置脚本处理器(Script Handler):进入 “服务器”“脚本处理器”
  7. 你可以看到默认的处理器(例如 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 

找到 SecRuleEngineSecAuditLogParts 配置项,并进行如下修改:

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 管理界面配置:

  1. 进入 “服务器”“安全”“ModSecurity”
  2. 启用 “ModSecurity 启用”
  3. “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. 通过管理界面创建虚拟主机

  1. 登录 OpenLiteSpeed 管理控制台
  2. 进入 “虚拟主机” → 点击 “添加” 按钮。
  3. 虚拟主机名称:输入 php74-site
  4. 虚拟主机根目录:设置为 /usr/local/lsws/php74-site
  5. 其他设置可以保持默认,点击 “保存”
  6. 重复上述步骤,创建另一个名为 php80-site 的虚拟主机,根目录指向 /usr/local/lsws/php80-site

3. 为虚拟主机配置脚本处理器

  1. “虚拟主机” 列表中,点击你刚创建的 php74-site 进入其配置。
  2. 找到 “脚本处理器” 部分。
  3. 点击 “添加” 按钮。
  4. 后缀:例如 php(表示处理所有 .php 文件)
  5. 处理器:从下拉菜单中选择你之前创建的 lsphp74
  6. 点击 “保存”
  7. 同样地,为 php80-site 虚拟主机添加一个脚本处理器,后缀设为 php,处理器选择 lsphp80

4. 配置监听器并分配虚拟主机

  1. 进入 “监听器”“Default” (或者为你新创建的虚拟主机新建一个监听器)。
  2. “虚拟主机映射” 部分,确保你的 php74-sitephp80-site 已经通过域名或上下文(Context)映射到了这个监听器。更常见的做法是:
    • 保留默认监听器处理主要流量,并通过域名来区分不同的虚拟主机。
    • 在各自的虚拟主机配置中,设置相应的域名

5. 更改默认 HTTP 端口(可选)

如果你希望直接使用端口 80 访问网站,而不是默认的 8088:

  1. 进入 “监听器”“Default”
  2. 点击地址设置旁的 “编辑” 图标。
  3. 端口8088 改为 80
  4. 点击 “保存”,然后重启 OpenLiteSpeed 服务。

六、 重启服务并验证安装

完成所有配置后,重启 OpenLiteSpeed 以使更改生效:

sudo systemctl restart lsws 

验证步骤:

  1. 访问网站:在浏览器中访问你的服务器 IP 或配置的域名,分别指向 PHP 7.4 和 PHP 8.0 的网站,查看 phpinfo() 页面,确认显示的 PHP 版本是否正确。
  2. 验证 Memcached:在你的网站目录创建一个 PHP 文件,使用类似前面提到的 Memcached 测试代码,检查 LSMCD 是否正常工作。
  3. 测试 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 运行。

请登录后发表评论

    没有回复内容

万事屋新帖