这篇文章就写在你现在看到的这个网站上——对,本站本身就是一个下午从零上线的 WordPress 站。把过程和踩的坑完整记录下来,给同样想自建站的朋友参考。
最终架构
- 面板:服务器上已有宝塔,直接用它管理 nginx 多站点(不装第二个面板,避免混乱)
- PHP:8.2(WordPress 目前最舒服的版本)
- 数据库:Docker 容器跑独立 MySQL,端口只绑 127.0.0.1,与服务器上原有数据库完全隔离
- 证书:acme.sh 自动签发 Let’s Encrypt,配置了自动续期
- 静态化:固定链接 /%postname%/,nginx 配 try_files 伪静态
踩坑一:面板数据库的密码是加密的
想在命令行用服务器上现成的 MySQL,结果发现宝塔把 root 密码加密存在自己的库里,命令行读不出来。与其和它斗智斗勇,不如直接用 Docker 起一个独立数据库——反而更干净,资源占用也在可接受范围。
踩坑二:wp-cli 拒绝 root
自动化安装用 wp-cli 很顺手,但它检测到 root 用户会拒绝执行,报错信息还很戏剧化。所有命令加 --allow-root 即可,属于”知道了就永远忘不了”系列。
踩坑三:配置文件里的引号陷阱
用 shell 脚本拼接 wp-config.php 时,多层引号嵌套导致密码变量没有被代入,WordPress 报”建立数据库连接时出错”。排查了半天才发现文件里写的是字面量表达式。教训:复杂配置文件不要用 shell 拼,用脚本语言生成。
踩坑四:插件仓库也会抽风
通过 wp-cli 安装某个 SEO 插件时提示”找不到插件”,但插件明明在官方仓库里。不纠结,换同类的另一款插件,五分钟解决。自动化的世界里,”换个方式达成目标”比”死磕一个失败路径”更划算。
成本清单
服务器和域名都是现成的,本次建站新增成本为零:WordPress 开源、主题插件用免费版、证书免费、CDN 暂时没上(等流量起来再说)。真正投入的只有时间。
给新手的建议
- 先把站点跑起来再优化,别在选型上耗一周。
- 每改一步都验证一次,出错能立刻定位到那一小步。
- 证书和备份的自动化第一天就配好,它们是”忘了就会出事”的典型。
本站的后续折腾(CDN、速度优化、主题魔改)也会持续记录,欢迎收藏。