欢迎来到奈特数据。这是这个博客的第一篇文章,记录它自己是怎么被搭建起来的——一台 RackNerd 的 VPS,一个 kejilion.sh 工具箱,加上一下午的折腾。
写在前面:这个博客的定位是记录我在部署、搭建和使用各种 IT 技术时的真实经验。踩过的坑、验证过的方案,都会原样写下来。长远一点的目标,是把这里做成一个能通过 Google AdSense 获得一点收益的技术博客。
一、方案选型:为什么没用免费主机
一开始我考虑过 alwaysdata 的免费套餐:1GB 磁盘、256MB 内存、0.25 核 CPU,跑个 WordPress 倒是勉强够。但研究下来有两个硬伤,直接劝退:
- 免费版只能用
xxx.alwaysdata.net二级域名,绑定自己的域名要付费。而 AdSense 审核基本不接受免费二级域名; - 免费版条款限定个人非盈利用途,挂广告赚钱本身就和条款冲突。
而我手里正好有现成的资源:一台 RackNerd 的 VPS(2 核 / 2.5GB 内存 / 45GB 磁盘,Ubuntu 24.04),加上 nettodata.com 这个域名。结论很明确:直接上 VPS + 自有域名,一步到位,免费主机只适合练手。
二、准备工作清单
- VPS:RackNerd,Ubuntu 24.04(上面已经装好了 kejilion.sh 工具箱,
k命令可用) - 域名:
nettodata.com,DNS 托管在 Cloudflare - 解析:
@和www两条 A 记录指向 VPS 的 IP,暂时用 DNS only 模式(灰色云),等证书签好再开代理 - 登录方式:SSH 公钥免密登录,不在任何地方传递 root 密码
三、部署实录
1. 安装 LDNMP 环境
kejilion.sh 里建站菜单是 10 LDNMP建站,但它的命令都支持非交互调用。先装环境:
k web env install full
这一步会装 Docker,然后拉起 Nginx、MySQL、PHP、Redis 四个容器。全程约 10 分钟,不需要人工干预。
2. 一键安装 WordPress
环境就绪后,一条命令建站(对应菜单里的 10 → 2 安装WordPress,是同一套流程):
k wp nettodata.com
脚本会自动完成:建数据库并授权、申请 Let’s Encrypt 证书、下载 WordPress 中文包、生成 Nginx 配置并重载。结束时直接告诉你”WordPress 搭建好了”。
3. 让 www 也能访问
脚本默认只给主域名签证书、Nginx 配置里也只有主域名的 server_name,所以 www.nettodata.com 打不开。手动补一下:
# 停掉 nginx(certbot standalone 需要占用 80 端口) docker stop nginx docker run --rm -p 80:80 -v /etc/letsencrypt/:/etc/letsencrypt \ certbot/certbot certonly --standalone \ -d nettodata.com -d www.nettodata.com \ --agree-tos --no-eff-email --force-renewal --key-type ecdsa # 证书拷到站点目录,nginx 配置加上 www cp /etc/letsencrypt/live/nettodata.com/fullchain.pem /home/web/certs/nettodata.com_cert.pem cp /etc/letsencrypt/live/nettodata.com/privkey.pem /home/web/certs/nettodata.com_key.pem sed -i "s/server_name nettodata.com;/server_name nettodata.com www.nettodata.com;/" \ /home/web/conf.d/nettodata.com.conf docker start nginx && docker exec nginx nginx -t
4. wp-cli 收尾
用 wp-cli 走完安装向导、做初始配置:
docker exec php php /var/www/html/wp-cli.phar core install \ --path=/var/www/html/nettodata.com/wordpress \ --url=https://nettodata.com --title=NettoData \ --admin_user=nettodata --admin_email=you@example.com --skip-email --allow-root # 中文、时区、固定链接 wp language core install zh_CN && wp site switch-language zh_CN wp option update timezone_string "Asia/Shanghai" wp option update permalink_structure "/%postname%/"
至此,https://nettodata.com 正常打开,后台 /wp-admin 可登录。
四、这次踩的四个坑
坑 1:k wp --help 会直接开始安装。我想先看下这个命令的用法,结果脚本不认 --help 参数,把它吞掉后直接启动了安装流程。教训:对不熟悉的一键脚本,先读源码的分发逻辑,别拿 --help 去探。
坑 2:脚本的换源逻辑有 bug,两次写坏 apt 源。它的镜像切换会把 noble-security 的地址写成 https:///ubuntu/(空变量),导致 apt update 报错。修法是删掉坏掉的段落,手动加回 https://security.ubuntu.com/ubuntu/。以后每次跑完它的安装类操作,都要检查一遍 /etc/apt/sources.list.d/ubuntu.sources。
坑 3:脚本自检”安装失败”是误报。LDNMP 装完最后一步自检报失败,吓我一跳,实际是 nginx 容器启动慢了一步,自检跑早了。直接 docker exec nginx nginx -t 加看 80/443 监听,环境是健康的。别迷信脚本自己的进度条。
坑 4:SSH 客户端找密钥的路径和 $HOME 不一致。执行环境里 shell 的 $HOME 是 /home/hatch,但 ssh 按系统用户取家目录(root → /root),所以 ssh config 得放在 /root/.ssh/config 才生效,折腾了一会儿才定位到。
五、成本小结
- VPS:RackNerd 年付套餐(已有)
- 域名:
nettodata.com(已有,每年续费几十块) - 证书:Let’s Encrypt 免费,自动续期已配置
- CDN:Cloudflare 免费版
增量成本几乎为零。服务器放海外,中文站也不用备案,省了不少事。
六、下一步
博客骨架有了,接下来是内容。计划先写 15–25 篇原创的部署实战记录,把”关于 / 联系 / 隐私政策”三个页面补齐,持续更新一个月左右再去申请 AdSense。被拒是常态,按拒信改就行。
下一篇预告:把这次建站过程里用到的 kejilion.sh 常用命令整理成一篇速查手册。
—— 写于博客上线当天,2026 年 10 月 12 日。