Ubuntu 22.04 一键安装OpenLiteSpeed环境:高性能Web服务器+双PHP+缓存优化+WordPress伪静态攻略

Ubuntu 22.04 一键安装OpenLiteSpeed环境:高性能Web服务器+双PHP+缓存优化+WordPress伪静态攻略

我有宝塔专业版,正版的那种。但最近比较下来还是OpenLiteSpeed最适合万事屋运行。所以在一个小服务和小站测试后写下教程,过几天给万事屋的服务器换上。

本文将手把手教你在Ubuntu 22.04系统上,从零开始搭建一套高性能OpenLiteSpeed Web服务器环境,集成PHP 7.4和PHP 8.2双版本,连接远程MariaDB数据库,并配置Redis、Memcached缓存优化,最后为WordPress网站完美设置伪静态和WP Super Cache缓存。无论你是新手还是老鸟,这篇教程都能帮你节省大量时间!

前期准备:系统与资源检查

在开始之前,你需要准备以下几样东西:

  • 一台Ubuntu 22.04服务器:建议内存不低于1GB,硬盘空间不少于20GB。
  • 一个sudo非root用户:确保你有执行sudo命令的权限。
  • 远程MariaDB 10.6数据库服务器:文中以IP 192.168.1.101,数据库名、用户名、密码均为 openlitespeed 为例。确保你的Ubuntu服务器能够通过网络访问到该数据库服务器(检查防火墙和安全组设置)。
  • 一个有效的域名:本文以 rei3.comwww.rei3.com 为例,用于SSL证书申请和网站配置。请确保域名已正确解析到你的Ubuntu服务器IP。

首先,更新你的系统软件包至最新状态,这能避免很多因软件版本过旧导致的奇怪问题:

sudo apt update && sudo apt upgrade -y sudo apt install wget curl software-properties-common -y 

一、OpenLiteSpeed Web服务器安装与配置

OpenLiteSpeed是一款高性能、轻量级的开源Web服务器,以其高效的事件驱动架构和对HTTP/3的早期支持而闻名。

1.1 安装OpenLiteSpeed

通过官方提供的仓库进行安装是最佳实践:

sudo wget -O - https://repo.litespeed.sh | sudo bash sudo apt update sudo apt install openlitespeed -y 

安装完成后,启动OpenLiteSpeed服务并设置开机自启:

sudo systemctl start lsws sudo systemctl enable lsws sudo systemctl status lsws # 检查服务状态,确认处于active (running) 

OpenLiteSpeed的管理后台默认使用7080端口,你需要确保防火墙放行该端口,以及HTTP(80)、HTTPS(443)端口:

sudo ufw allow 7080/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload 

1.2 设置管理员密码

OpenLiteSpeed安装后,需要为管理后台设置一个管理员账号密码:

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

按照提示输入用户名(默认为admin)和新的密码。请务必牢记这个密码,后续登录管理后台需要使用。

现在,你可以通过 https://你的服务器IP:7080 访问OpenLiteSpeed Admin Console,并使用刚才设置的账号密码登录。

二、安装多版本PHP及相关扩展

Ubuntu 22.04官方源默认只提供PHP 8.1,我们需要通过第三方PPA仓库来安装PHP 7.4和PHP 8.2。

2.1 添加PHP仓库并安装

Ondřej Surý 的PHP仓库提供了多个PHP版本的维护包,质量很高:

sudo add-apt-repository ppa:ondrej/php -y sudo apt update 

安装PHP 7.4及其常用扩展,包括缓存插件支持:

sudo apt install php7.4 php7.4-common php7.4-cli php7.4-curl php7.4-mysql php7.4-xml php7.4-mbstring php7.4-zip php7.4-gd php7.4-intl php7.4-redis php7.4-memcached -y 

安装PHP 8.2及其常用扩展:

sudo apt install php8.2 php8.2-common php8.2-cli php8.2-curl php8.2-mysql php8.2-xml php8.2-mbstring php8.2-zip php8.2-gd php8.2-intl php8.2-redis php8.2-memcached -y 

安装完成后,验证一下是否成功:

php7.4 -v php8.2 -v 

2.2 在OpenLiteSpeed中配置PHP版本

安装好的PHP需要通过OpenLiteSpeed的WebAdmin Console与服务器集成:

  1. 登录OpenLiteSpeed管理后台 (https://服务器IP:7080)。
  2. 在左侧菜单中,进入 “Server Configuration” -> “External App”
  3. 你会看到一个名为 lsphp 的外部应用,点击其右边的 “Edit” 按钮。
  4. “Command” 输入框中,你可以看到当前的PHP版本路径,例如 /usr/bin/lsphp82 代表PHP 8.2。
  5. 你可以在这里修改它,指向 lsphp74 (PHP 7.4) 或 lsphp82 (PHP 8.2)。通常建议为默认虚拟主机设置一个版本(如PHP 8.2),然后为特定的虚拟主机(网站)按需选择PHP版本。
  6. 保存更改,并回到主页,点击 “Graceful Restart” 平滑重启服务使更改生效。

提示:你可以在创建虚拟主机(网站)时,为其单独指定需要的PHP版本。

三、安装与配置Redis和Memcached缓存

缓存是提升网站性能和并发能力的利器。Redis和Memcached是最常用的两种内存键值存储。

3.1 安装与配置Redis

安装Redis服务器:

sudo apt install redis-server -y 

安装完成后,建议对Redis进行一些基本安全配置。编辑Redis配置文件:

sudo nano /etc/redis/redis.conf 

找到并修改以下行(如果找不到,就直接添加在合适的位置):

# 只允许本地回环地址访问,更安全。如果其他服务需要连接,可考虑设置密码并谨慎开放。 bind 127.0.0.1 # 设置一个强密码,替换 'your_very_strong_password_here' requirepass your_very_strong_password_here # 使用systemd来管理Redis supervised systemd 

保存退出后,重启Redis并启用开机自启:

sudo systemctl restart redis sudo systemctl status redis # 确认状态正常 sudo systemctl enable redis 

3.2 安装与配置Memcached

安装Memcached服务器:

sudo apt install memcached libmemcached-tools -y 

Memcached默认也只监听本地。编辑其配置文件进行确认或修改:

sudo nano /etc/memcached.conf 

确保有以下配置(默认通常已有):

# 只监听本地127.0.0.1 -l 127.0.0.1 # 可选:禁用UDP协议,减少潜在攻击面 -U 0 

保存退出后,重启Memcached并启用开机自启:

sudo systemctl restart memcached sudo systemctl status memcached # 确认状态正常 sudo systemctl enable memcached 

现在,你的服务器已经拥有了两个强大的内存缓存服务,之后可以在WordPress插件(如Redis Object Cache、Memcached Is Your Friend)或应用程序中配置使用它们。

四、配置远程MariaDB数据库连接

由于我们使用远程MariaDB服务器,无需在本地Web服务器上安装MySQL/MariaDB

  1. 确保你的远程MariaDB服务器(192.168.1.101)上已经创建了名为 openlitespeed 的数据库,并授权用户 openlitespeed(密码也为 openlitespeed)从你的Web服务器IP地址进行访问。这通常在远程数据库的命令行或phpMyAdmin中操作:
CREATE DATABASE openlitespeed; CREATE USER 'openlitespeed'@'你的Web服务器IP' IDENTIFIED BY 'openlitespeed'; GRANT ALL PRIVILEGES ON openlitespeed.* TO 'openlitespeed'@'你的Web服务器IP'; FLUSH PRIVILEGES; 
  1. 在Web服务器上,你可以安装MySQL客户端工具测试远程连接:
sudo apt install mysql-client-core-8.0 -y mysql -u openlitespeed -p -h 192.168.1.101 

输入密码 openlitespeed 后,如果能够成功连接到远程数据库,说明网络和权限配置正确。

五、创建rei3.com网站并配置虚拟主机

现在开始为我们的一级域名 rei3.com 创建网站。

5.1 创建网站目录结构

为网站创建根目录和日志目录,并设置合适的权限:

sudo mkdir -p /usr/local/lsws/rei3.com/{html,logs} sudo chown -R nobody:nogroup /usr/local/lsws/rei3.com # 将所有者设置为OpenLiteSpeed的运行用户 

5.2 通过WebAdmin创建虚拟主机

  1. 登录OpenLiteSpeed管理后台 (https://服务器IP:7080)。
  2. 左侧菜单,进入 “Virtual Hosts”
  3. 点击 “Add” 按钮添加一个新的虚拟主机。
    • Virtual Host Name: rei3
    • Virtual Host Root: $SERVER_ROOT/rei3.com/ (这会被自动解析为 /usr/local/lsws/rei3.com/
    • 其他设置可保持默认,点击 “Save”
  4. 在虚拟主机列表中,点击刚刚创建的 rei3 虚拟主机进行配置。
  5. “General” 选项卡中,将 “Document Root” 设置为 $VH_ROOT/html/
  6. “General” 选项卡中,找到 “External App” 下拉框,为这个虚拟主机选择之前配置好的PHP版本(例如 lsphp82)。
  7. “Index Files” 中,确保包含 index.php
  8. 点击 “Save” 保存配置。

5.3 创建测试文件

创建一个简单的PHP信息页,用于测试环境:

sudo nano /usr/local/lsws/rei3.com/html/index.php 

文件内容如下:

<?php phpinfo(); ?> 

保存退出。现在,你应该可以通过服务器的IP地址访问到这个phpinfo页面了(需要将IP绑定到临时域名或直接访问IP)。

六、设置rei3.com到www.rei3.com的重定向

为了实现 rei3.com 自动跳转到 www.rei3.com,我们需要配置重写规则。

  1. 在OpenLiteSpeed管理后台,进入 “Virtual Hosts” -> “rei3” -> “Rewrite” 选项卡。
  2. “Rewrite Rules” 文本框中,输入以下规则:
RewriteCond %{HTTP_HOST} ^rei3.com [NC] RewriteRule ^(.*)$ https://www.rei3.com/$1 [L,R=301] 

这条规则的意思是:如果请求的域名是 rei3.com(不区分大小写),则将其永久重定向(301)https://www.rei3.com/ 后接相同的请求路径。

  1. 点击 “Save” 保存。

注意:这个重定向需要在SSL证书配置完成后才能完全生效(因为包含了HTTPS)。

七、使用Let’s Encrypt配置自动SSL证书

为网站启用HTTPS加密是现代网站的标配,Let’s Encrypt提供了免费的SSL证书。

7.1 安装Certbot工具

Certbot是获取和续签Let’s Encrypt证书的官方推荐工具:

sudo apt install certbot -y 

7.2 获取SSL证书

使用Certbot的 --webroot 插件验证域名所有权并获取证书。确保你的域名 rei3.comwww.rei3.com 都已正确解析到当前服务器的IP地址

sudo certbot certonly --webroot -w /usr/local/lsws/rei3.com/html/ -d rei3.com -d www.rei3.com --agree-tos -m your-email@example.com 

your-email@example.com 替换为你自己的邮箱,用于接收证书到期提醒等重要通知。

执行成功后,证书文件通常会保存在 /etc/letsencrypt/live/rei3.com/ 目录下。

7.3 在OpenLiteSpeed中配置SSL

  1. 在OpenLiteSpeed管理后台,进入 “Listeners” -> “Default” Listener。
  2. 切换到 “SSL” 选项卡。
  3. 勾选 “Enable SSL”“Enable HTTP/2”(HTTP/2可提升性能)。
  4. 设置证书和私钥文件路径:
    • Private Key File: /etc/letsencrypt/live/rei3.com/privkey.pem
    • Certificate File: /etc/letsencrypt/live/rei3.com/fullchain.pem
    • Chained Certificate: 选择 “Yes”
  5. 点击 “Save” 保存。

7.4 设置证书自动续期

Let’s Encrypt证书有效期为90天,需要设置定时任务自动续期。

使用crontab创建一个定时任务,每天尝试续期一次(证书只有在到期前30天内才能成功续期,所以每天检查是安全的):

sudo crontab -e 

在打开的crontab文件中添加一行:

0 12 * * * /usr/bin/certbot renew --quiet --deploy-hook "/usr/bin/systemctl restart lsws" 

这行命令的意思是:每天中午12点检查并续期即将过期的证书,如果成功续期(--quiet 静默模式,只在有操作时输出),则执行 deploy-hook 后面的命令重启OpenLiteSpeed服务以加载新证书。

最后,别忘了回到OpenLiteSpeed管理后台首页,点击 “Graceful Restart” 平滑重启服务,使所有配置生效。

现在,你的网站应该已经可以通过 https://www.rei3.com 安全地访问了,并且 http://rei3.com 也会自动重定向到HTTPS的www版本。

八、为ModSecurity WAF设置IP白名单

ModSecurity是一个开源的Web应用防火墙(WAF),可以保护网站免受多种攻击。但有时它可能会误拦合法的请求(例如你自己的管理操作),因此需要设置IP白名单。

8.1 添加IP白名单规则

  1. 编辑OpenLiteSpeed的ModSecurity主配置文件或包含文件:
sudo nano /usr/local/lsws/conf/modsec.conf 
  1. 在文件中添加以下规则(将 你的信任IP 替换为你想加入白名单的实际IP地址,例如你的办公网络IP或家庭IP):
# 将特定IP加入白名单,绕过所有WAF规则检查 SecRule REMOTE_ADDR "@ipMatch 你的信任IP" "phase:1,id:1001,nolog,allow,ctl:ruleEngine=Off" # 如果需要白名单一个IP段,使用CIDR表示法 # SecRule REMOTE_ADDR "@ipMatch 192.168.1.0/24" "phase:1,id:1002,nolog,allow,ctl:ruleEngine=Off" 
  • @ipMatch:操作符,用于匹配IP或CIDR范围。
  • phase:1:在请求处理的早期阶段执行此规则。
  • id:1001:给规则一个唯一的ID号。
  • nolog:不记录此规则匹配的日志。
  • allow:允许请求通过。
  • ctl:ruleEngine=Off:对此IP来源的请求完全关闭ModSecurity规则引擎。
  1. 保存文件。

8.2 删除IP白名单

如果需要移除某个IP的白名单,只需编辑上述 modsec.conf 文件,注释掉(行首加#)或删除对应的 SecRule 行即可。

8.3 重启服务并测试

每次修改ModSecurity配置后,都需要重启OpenLiteSpeed服务:

sudo systemctl restart lsws 

测试时,可以从已加入白名单的IP访问网站,尝试触发一些WAF规则(如带可疑参数的URL),检查是否还会被拦截。

九、安装WordPress并配置WP Super Cache伪静态

现在是最后一步,安装WordPress并配置缓存和伪静态。

9.1 安装WordPress

  1. 进入你的网站根目录:
cd /usr/local/lsws/rei3.com/html 
  1. 下载最新版的WordPress并解压,清理压缩包:
sudo wget https://wordpress.org/latest.tar.gz sudo tar -xzf latest.tar.gz --strip-components=1 sudo rm latest.tar.gz 
  1. 调整文件权限(重要!):确保Web服务器用户(OpenLiteSpeed通常是 nobody)对文件有适当的读写权限。通常设置目录为755,文件为644,并且将所有权归为Web服务器用户:
sudo chown -R nobody:nogroup /usr/local/lsws/rei3.com/html sudo find /usr/local/lsws/rei3.com/html -type d -exec chmod 755 {} \; sudo find /usr/local/lsws/rei3.com/html -type f -exec chmod 644 {} \; 
  1. 在浏览器中访问 https://www.rei3.com/wp-admin/install.php,开始著名的WordPress “5分钟安装”
    • 在数据库配置页面,填写之前准备的远程数据库信息:
      • 数据库名: openlitespeed
      • 用户名: openlitespeed
      • 密码: openlitespeed
      • 数据库主机: 192.168.1.101
      • 表前缀: 可以使用默认的 wp_,但为了安全,建议改为更独特的前缀(如 wp_rei3_)。
  2. 完成安装,设置网站标题、管理员账号、密码和邮箱。

9.2 配置WordPress固定链接(伪静态)

  1. 登录WordPress后台 (https://www.rei3.com/wp-admin)。
  2. 进入 “设置” -> “固定链接”
  3. 不要选择 “朴素” 模式。推荐选择:
    • “帖子名称”/%postname%/ (比较简洁)
    • 或者 “自定义结构”/%postname%.html (看起来更像静态页面)。
  4. 点击 “保存更改”

9.3 安装并配置WP Super Cache插件

WP Super Cache可以将动态的WordPress页面生成静态HTML文件,极大减轻服务器负担,提升访问速度。

  1. 在WordPress后台,进入 “插件” -> “安装插件”
  2. 搜索 “WP Super Cache”,安装并激活它。
  3. 激活后,进入 “设置” -> “WP Super Cache”
  4. “简易” 选项卡中,勾选 “启用缓存”,然后点击 “更新状态”
  5. 切换到 “高级” 选项卡:
    • 勾选 “启用缓存以便加快访问。”
    • 对于OpenLiteSpeed,缓存交付方法建议优先尝试 “专家” 模式(如果可用),它利用重写规则提供最高性能。如果专家模式不工作,则选择 “传统”“PHP” 模式,兼容性更好。
    • 点击 “更新状态” 保存设置。
  6. WP Super Cache可能会提示你修改 .htaccess 文件。由于OpenLiteSpeed不完全兼容Apache的.htaccess,更可靠的做法是将规则直接写入虚拟主机的重写配置中。

9.4 配置OpenLiteSpeed重写规则支持WP Super Cache

  1. 再次打开OpenLiteSpeed管理后台,进入 “Virtual Hosts” -> “rei3” -> “Rewrite” 选项卡。
  2. “Rewrite Rules” 中,在之前设置的重定向规则之下,添加WP Super Cache专家模式所需的规则和WordPress核心重写规则:
# BEGIN WP Super Cache (专家模式规则) RewriteCond %{REQUEST_METHOD} !POST RewriteCond %{QUERY_STRING} ="" RewriteCond %{REQUEST_URI} !^/(wp-admin|wp-login\.php|wp-cron\.php|wp-.*\.php|feed|index\.php|sitemap\.xml)(.*)$ RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress_logged_in|wp-postpass_).*$ RewriteCond /usr/local/lsws/rei3.com/html/wp-content/cache/supercache/%{HTTP_HOST}/%{REQUEST_URI}/index.html -f RewriteRule ^(.*)$ /wp-content/cache/supercache/%{HTTP_HOST}/%{REQUEST_URI}/index.html [L] # END WP Super Cache # BEGIN WordPress (核心重写规则) RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress 

重要提示:OpenLiteSpeed的重写规则语法与Apache极度相似,但仍有细微差别。如果遇到问题,请查阅OpenLiteSpeed官方文档。

  1. 点击 “Save” 保存。
  2. 最后,务必回到OpenLiteSpeed管理后台首页,点击 “Graceful Restart” 平滑重启服务!

十、最终测试与优化建议

完成所有配置后,请进行以下测试以确保万无一失:

  1. 访问测试:在浏览器中访问 http://rei3.com,应自动 301重定向https://www.rei3.com
  2. SSL测试:检查浏览器地址栏的锁标志,确认SSL证书有效。
  3. 伪静态测试:在WordPress中发布一篇文章,访问其固定链接,确认URL是”干净”的伪静态形式,且能正常打开。
  4. 缓存测试:以未登录游客身份访问首页和文章页,查看网页源代码底部,通常会有 <!-- Cached page generated by WP-Super-Cache --> 类似的注释,说明缓存生效。
  5. 速度测试:使用GTmetrix、Google PageSpeed Insights等工具测试网站速度,享受优化后的成果!

一些额外的优化建议:

  • 数据库优化:定期优化WordPress数据库,可以使用插件如WP-Optimize。
  • 图片优化:确保上传的图片经过压缩,可以使用插件如Imagify或ShortPixel,或服务端工具。
  • CDN加速:如果面向全球用户,可以考虑使用Cloudflare等CDN服务来进一步提升访问速度。
  • 定期备份:务必定期备份你的网站文件和数据库!可以使用插件如UpdraftPlus,或直接通过服务器命令行进行备份。

恭喜你!你已经成功在Ubuntu 22.04服务器上搭建了一个基于OpenLiteSpeed的高性能、高安全性Web服务器环境,并部署了优化后的WordPress网站。这套环境兼具了OpenLiteSpeed的性能双PHP版本的灵活性缓存系统带来的速度提升以及WAF和SSL提供的安全保障


版权声明: 本文由 万事屋 原创发布,转载请注明出处,并保留原文链接:https://www.rei3.com

请登录后发表评论

    没有回复内容

万事屋新帖