我有宝塔专业版,正版的那种。但最近比较下来还是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.com
和www.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与服务器集成:
- 登录OpenLiteSpeed管理后台 (
https://服务器IP:7080
)。 - 在左侧菜单中,进入 “Server Configuration” -> “External App”。
- 你会看到一个名为
lsphp
的外部应用,点击其右边的 “Edit” 按钮。 - 在 “Command” 输入框中,你可以看到当前的PHP版本路径,例如
/usr/bin/lsphp82
代表PHP 8.2。 - 你可以在这里修改它,指向
lsphp74
(PHP 7.4) 或lsphp82
(PHP 8.2)。通常建议为默认虚拟主机设置一个版本(如PHP 8.2),然后为特定的虚拟主机(网站)按需选择PHP版本。 - 保存更改,并回到主页,点击 “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。
- 确保你的远程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;
- 在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创建虚拟主机
- 登录OpenLiteSpeed管理后台 (
https://服务器IP:7080
)。 - 左侧菜单,进入 “Virtual Hosts”。
- 点击 “Add” 按钮添加一个新的虚拟主机。
- Virtual Host Name:
rei3
- Virtual Host Root:
$SERVER_ROOT/rei3.com/
(这会被自动解析为/usr/local/lsws/rei3.com/
) - 其他设置可保持默认,点击 “Save”。
- Virtual Host Name:
- 在虚拟主机列表中,点击刚刚创建的
rei3
虚拟主机进行配置。 - 在 “General” 选项卡中,将 “Document Root” 设置为
$VH_ROOT/html/
。 - 在 “General” 选项卡中,找到 “External App” 下拉框,为这个虚拟主机选择之前配置好的PHP版本(例如
lsphp82
)。 - 在 “Index Files” 中,确保包含
index.php
。 - 点击 “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
,我们需要配置重写规则。
- 在OpenLiteSpeed管理后台,进入 “Virtual Hosts” -> “rei3” -> “Rewrite” 选项卡。
- 在 “Rewrite Rules” 文本框中,输入以下规则:
RewriteCond %{HTTP_HOST} ^rei3.com [NC] RewriteRule ^(.*)$ https://www.rei3.com/$1 [L,R=301]
这条规则的意思是:如果请求的域名是 rei3.com
(不区分大小写),则将其永久重定向(301)到 https://www.rei3.com/
后接相同的请求路径。
- 点击 “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.com
和 www.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
- 在OpenLiteSpeed管理后台,进入 “Listeners” -> “Default” Listener。
- 切换到 “SSL” 选项卡。
- 勾选 “Enable SSL” 和 “Enable HTTP/2”(HTTP/2可提升性能)。
- 设置证书和私钥文件路径:
- Private Key File:
/etc/letsencrypt/live/rei3.com/privkey.pem
- Certificate File:
/etc/letsencrypt/live/rei3.com/fullchain.pem
- Chained Certificate: 选择 “Yes”
- Private Key File:
- 点击 “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白名单规则
- 编辑OpenLiteSpeed的ModSecurity主配置文件或包含文件:
sudo nano /usr/local/lsws/conf/modsec.conf
- 在文件中添加以下规则(将
你的信任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规则引擎。
- 保存文件。
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
- 进入你的网站根目录:
cd /usr/local/lsws/rei3.com/html
- 下载最新版的WordPress并解压,清理压缩包:
sudo wget https://wordpress.org/latest.tar.gz sudo tar -xzf latest.tar.gz --strip-components=1 sudo rm latest.tar.gz
- 调整文件权限(重要!):确保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 {} \;
- 在浏览器中访问
https://www.rei3.com/wp-admin/install.php
,开始著名的WordPress “5分钟安装”。- 在数据库配置页面,填写之前准备的远程数据库信息:
- 数据库名:
openlitespeed
- 用户名:
openlitespeed
- 密码:
openlitespeed
- 数据库主机:
192.168.1.101
- 表前缀: 可以使用默认的
wp_
,但为了安全,建议改为更独特的前缀(如wp_rei3_
)。
- 数据库名:
- 在数据库配置页面,填写之前准备的远程数据库信息:
- 完成安装,设置网站标题、管理员账号、密码和邮箱。
9.2 配置WordPress固定链接(伪静态)
- 登录WordPress后台 (
https://www.rei3.com/wp-admin
)。 - 进入 “设置” -> “固定链接”。
- 不要选择 “朴素” 模式。推荐选择:
- “帖子名称”:
/%postname%/
(比较简洁) - 或者 “自定义结构”:
/%postname%.html
(看起来更像静态页面)。
- “帖子名称”:
- 点击 “保存更改”。
9.3 安装并配置WP Super Cache插件
WP Super Cache可以将动态的WordPress页面生成静态HTML文件,极大减轻服务器负担,提升访问速度。
- 在WordPress后台,进入 “插件” -> “安装插件”。
- 搜索 “WP Super Cache”,安装并激活它。
- 激活后,进入 “设置” -> “WP Super Cache”。
- 在 “简易” 选项卡中,勾选 “启用缓存”,然后点击 “更新状态”。
- 切换到 “高级” 选项卡:
- 勾选 “启用缓存以便加快访问。”。
- 对于OpenLiteSpeed,缓存交付方法建议优先尝试 “专家” 模式(如果可用),它利用重写规则提供最高性能。如果专家模式不工作,则选择 “传统” 或 “PHP” 模式,兼容性更好。
- 点击 “更新状态” 保存设置。
- WP Super Cache可能会提示你修改
.htaccess
文件。由于OpenLiteSpeed不完全兼容Apache的.htaccess
,更可靠的做法是将规则直接写入虚拟主机的重写配置中。
9.4 配置OpenLiteSpeed重写规则支持WP Super Cache
- 再次打开OpenLiteSpeed管理后台,进入 “Virtual Hosts” -> “rei3” -> “Rewrite” 选项卡。
- 在 “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官方文档。
- 点击 “Save” 保存。
- 最后,务必回到OpenLiteSpeed管理后台首页,点击 “Graceful Restart” 平滑重启服务!
十、最终测试与优化建议
完成所有配置后,请进行以下测试以确保万无一失:
- 访问测试:在浏览器中访问
http://rei3.com
,应自动 301重定向 到https://www.rei3.com
。 - SSL测试:检查浏览器地址栏的锁标志,确认SSL证书有效。
- 伪静态测试:在WordPress中发布一篇文章,访问其固定链接,确认URL是”干净”的伪静态形式,且能正常打开。
- 缓存测试:以未登录游客身份访问首页和文章页,查看网页源代码底部,通常会有
<!-- Cached page generated by WP-Super-Cache -->
类似的注释,说明缓存生效。 - 速度测试:使用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。
没有回复内容