我在文章开头先说两个经常被忽略的前提,省得后面反复排查。
第一,PHP 版本不要追新。WordPress 6.x 对 PHP 8.1 和 8.2 支持很好,但部分老插件或主题在 PHP 8.3 上会报错。选版本前先查一下你用的主题和插件的兼容性说明,不确定就选 8.2,这是目前兼容性和性能的平衡点。
第二,域名 DNS 要提前解析。Let's Encrypt 申请 SSL 需要从外部验证你的域名,如果 DNS 还没有指向 VPS,SSL 一定申请失败。建议先把 DNS 改好,等解析生效后再做 SSL,省去反复排查的时间。
最短路径: 创建网站 → 建数据库 → 安装 WordPress → DNS 解析 → SSL → 开启缓存 → 完成。
建站前需要准备什么
| 项目 | 要求 |
|---|---|
| VPS 内存 | 最低 2 GB,WooCommerce 建议 4 GB |
| aaPanel 状态 | 已安装并能登录面板 |
| LNMP 环境 | Nginx + MySQL + PHP 已安装 |
| 域名 | 已购买,准备做 DNS 解析 |
| PHP 版本 | 推荐 8.2 |
aaPanel 的安装过程和 LNMP 环境配置在单独的教程里,这篇从面板登录之后开始。
第一步:在 aaPanel 里创建网站
登录面板,左侧菜单点击"Website"→"Add Site"。
需要填写的字段:
Domain(域名): 填你的域名,比如 example.com。如果需要同时支持 www,加一行 www.example.com。
Root Directory(网站根目录): 保持默认即可,aaPanel 会自动生成 /www/wwwroot/example.com。
PHP Version: 选择之前安装好的版本,推荐 8.2。
Database: 选"Create Database",填写数据库名、用户名、密码,这三个信息后面配置 WordPress 时要用,记下来。
创建完成后,aaPanel 会自动生成 Nginx 配置文件,网站目录也会建好。
第二步:配置 DNS
在你的域名注册商或者 DNS 服务商(推荐用 Cloudflare)添加以下解析记录:
A @ 你的VPS公网IP
A www 你的VPS公网IP
如果用 Cloudflare,建议先把云朵(代理状态)关掉,设成 DNS only,等 SSL 配置好了再开启代理。原因是 Cloudflare 代理开启时 Let's Encrypt 的验证逻辑会发生变化,新手容易在这里卡住。
DNS 生效时间从几分钟到 48 小时不等,通常 30 分钟内生效。用以下命令确认解析是否正确:
nslookup example.com
输出的 IP 地址和你的 VPS IP 一致就说明解析已经生效。
第三步:安装 WordPress
aaPanel 提供两种安装方式。
方式一:一键安装(推荐新手)
在网站管理页面找到你的域名,点击右侧的"WordPress"按钮,填写:
- 管理员用户名
- 管理员密码
- 管理员邮箱
- 数据库信息(使用刚才创建的数据库)
点击安装,等待完成即可。安装完成后直接可以用域名访问 WordPress 后台。
方式二:手动安装(适合需要特定版本或自定义配置)
# 进入网站根目录
cd /www/wwwroot/example.com
# 下载 WordPress
wget https://wordpress.org/latest.tar.gz
# 解压并移动文件
tar -xzf latest.tar.gz
mv wordpress/* .
rm -rf wordpress latest.tar.gz
# 设置目录权限
chown -R www:www /www/wwwroot/example.com
chmod -R 755 /www/wwwroot/example.com
然后在浏览器访问你的域名,按照安装向导填写数据库信息:
- 数据库名:填之前创建的
- 用户名:填之前创建的
- 密码:填之前创建的
- 数据库主机:
localhost - 表前缀:保持默认
wp_或改成其他前缀(提高安全性)
完成安装,设置站点标题、管理员账号。
第四步:申请 SSL 证书
DNS 解析生效后,在 aaPanel 网站管理里点击对应域名的"SSL",选"Let's Encrypt",输入邮箱地址,点击申请。
申请成功后开启"Force HTTPS",所有 HTTP 请求会自动跳转到 HTTPS。
然后在 WordPress 后台的"Settings → General"里,把 WordPress Address 和 Site Address 都改成 https:// 开头的地址,避免混合内容问题。
第五步:设置固定链接
WordPress 后台进入"Settings → Permalinks",选"Post name",保存。
这会让你的 URL 变成 example.com/文章标题/ 而不是 example.com/?p=123,对 SEO 有帮助,也更易读。
保存后 aaPanel 会自动更新 Nginx 配置,如果访问页面出现 404,在 aaPanel 里重载 Nginx 服务:
nginx -s reload
第六步:配置缓存
aaPanel 默认用 Nginx,缓存需要在应用层配置。
对象缓存用 Redis。 如果安装 aaPanel 时已经装了 Redis,在 WordPress 里安装 Redis Object Cache 插件,激活后编辑 wp-config.php 加入:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
然后在插件设置里点击"Enable Object Cache"。对象缓存减少数据库查询次数,对 WooCommerce 效果尤其明显。
页面缓存用 WP Super Cache 或 W3 Total Cache。 这里要特别说一点:LiteSpeed Cache 插件在网上教程里出现频率很高,但它需要 LiteSpeed 或 OpenLiteSpeed 服务器才能发挥完整效果。aaPanel 默认用 Nginx,在 Nginx 环境下装 LiteSpeed Cache 插件,大部分核心缓存功能是不生效的。不要被插件名字误导。
OPcache 在 aaPanel 的 PHP 设置里确认已开启,这是 PHP 层面的字节码缓存,对所有 PHP 应用都有帮助,不需要额外配置。
常见报错排查
网站无法访问
按顺序检查:DNS 是否已解析 → VPS 防火墙是否放行 80/443 → 云安全组是否放行 → aaPanel 里网站状态是否正常 → Nginx 是否运行(systemctl status nginx)。
502 Bad Gateway
通常是 PHP-FPM 没有运行,或者 PHP 版本和 Nginx 配置不匹配。
# 查看 PHP-FPM 状态
systemctl status php8.2-fpm
# 重启 PHP-FPM
systemctl restart php8.2-fpm
在 aaPanel 面板里也可以直接重启 PHP 服务。
403 Forbidden
文件权限问题,运行:
chown -R www:www /www/wwwroot/example.com
chmod -R 755 /www/wwwroot/example.com
find /www/wwwroot/example.com -name "*.php" \
-exec chmod 644 {} \;
Error Establishing a Database Connection
检查 wp-config.php 里的数据库信息是否和 aaPanel 里创建的一致:
cat /www/wwwroot/example.com/wp-config.php \
| grep DB_
确认 DB_NAME、DB_USER、DB_PASSWORD 三项正确,然后确认 MySQL 服务在运行:
systemctl status mysql
SSL 申请失败
最常见原因是 DNS 还没生效,或者 80 端口被防火墙拦截。用 nslookup 确认域名解析正确,确认 80 端口放行,然后重试。如果用了 Cloudflare 代理,申请 SSL 时先把代理关掉改成 DNS only。
FAQ
aaPanel 适合跑 WordPress 吗?
适合。aaPanel 提供一键安装 WordPress 的功能,LNMP 环境配置自动完成,SSL 申请也在面板里操作,比手动配置省很多时间。对没有 Linux 运维经验的用户来说是目前最省事的免费方案之一。
2 GB 内存的 VPS 够跑 WordPress 吗?
够,个人博客和中小型内容站没问题。WooCommerce 商城在流量大时可能吃紧,建议 4 GB 起步。如果内存不够,可以设置 Swap 临时缓解,但不是长期方案。
WordPress 该用哪个 PHP 版本?
目前推荐 PHP 8.2,兼容性和性能都不错。避免用最新的 8.3,部分插件还没完全跟上。也不要用 7.x,官方已停止维护。
aaPanel 免费吗?
基础版完全免费,覆盖建站所需的绝大多数功能。Pro 版有额外功能,按需选择,不是必须的。
能在 aaPanel 上同时跑多个 WordPress 站吗?
可以,aaPanel 支持多站点管理,每个站独立域名、独立数据库、独立 PHP 配置,互不干扰。内存够用的话同时跑 3-5 个小站没问题。
aaPanel 比 cPanel 更适合 WordPress 吗?
对个人用户和小团队来说,aaPanel 免费这一点已经是很大的优势。cPanel 需要按月付费,功能更完整但对大多数 WordPress 站来说用不到那么多。如果预算有限,aaPanel 完全够用。
可以配合 Cloudflare 使用吗?
可以,而且推荐这样做。Cloudflare 提供免费 CDN、DDoS 防护和 SSL。配合使用时注意:在 aaPanel 申请 Let's Encrypt 证书时先把 Cloudflare 代理设为 DNS only,证书申请成功后再开启代理,Cloudflare 的 SSL 模式设为"Full (Strict)"。
aaPanel 安全吗?
面板本身安全性没有问题,但默认配置需要加固。必做的几项:修改默认面板端口、设置强密码、开启 2FA、配置 IP 白名单、禁止 root 密码登录改用 SSH Key。安装完面板就上线不做任何加固,是很多人服务器被入侵的原因。
推荐配置汇总
| 配置项 | 推荐选择 |
|---|---|
| Web 服务器 | Nginx |
| PHP 版本 | 8.2 |
| 数据库 | MySQL 8.0 |
| SSL | Let's Encrypt |
| 对象缓存 | Redis + Redis Object Cache 插件 |
| 页面缓存 | WP Super Cache 或 W3 Total Cache |
| DNS/CDN | Cloudflare |
| 备份 | aaPanel 定时备份 + 异地存储 |
| SSH | SSH Key 认证,禁止密码登录 |
推荐 VPS
不同场景适合不同服务商,按需参考:
DigitalOcean 适合开发者和中小型网站,界面友好,文档完善,按小时计费灵活。不适合预算极有限的用户,同等配置比 Hetzner 贵。
Vultr 节点覆盖最广,全球 30 多个城市,适合需要特定地区节点的业务。不适合只关注欧洲或价格敏感的用户。
Hetzner 欧洲服务商,性价比最高,同等预算配置更高。适合目标用户在欧洲或只需要开发机的场景。不适合需要亚太节点或对中国大陆访问有要求的用户。
Contabo 大内存大存储,价格低。适合需要高配置但预算有限的用户。不适合对客服响应速度有要求的场景。
Kamatera 配置自由组合,CPU、内存、磁盘可以按需搭配。适合对配置有特定要求的用户。在中文社区讨论度低,选购前自行评估。