部署上线教程
部署上线教程
从零到能访问,一共就三步。
第一步:上传文件
方法一:面板文件管理(最省事)
- 登录主机面板 → 文件管理
- 进入网站根目录
wwwroot - 上传站点压缩包(如
jhp-studio-upload.zip) - 右键 zip → 解压
- 删掉 zip
解压后 wwwroot 里应该是:
index.php doc.php search.php config.php
lib/ assets/ admin/ docs/
play/ tools/
注意:不要多套一层文件夹。 如果解压后变成 wwwroot/jhp-studio/index.php,就把里面的文件全部上移一层。
方法二:FTP 工具(FileZilla)
主机信息(以你的实际面板为准):
| 项目 | 值 |
|---|---|
| FTP 地址 | 面板「主机信息」里给的地址 |
| 端口 | 21 |
| 账号 | 面板给的 FTP 账号 |
| 根目录 | /wwwroot |
坑点:FTP 密码常常和面板登录密码不是同一个,要去面板「基础设置」里单独设置或开启 FTP 功能。
方法三:自动脚本(可选)
项目里带了 deploy/deploy.py,填好 deploy/deploy-config.json 后执行即可自动上传,支持 FTP 和 SFTP 自动识别。
第二步:改管理密码(必须做)
默认密码是 jhp2026,任何人都能进你的后台。
在本机有 PHP 的情况下执行:
php -r "echo password_hash('你的新密码', PASSWORD_DEFAULT);"
会输出一串类似这样的东西:
$2y$10$6CmzU0yYv1ch0T45Wyn7yOs86LRVzLmSD6WrChHH40Qvov3CcrQ0S
把它整串复制,替换 config.php 里的:
$admin_password_hash = '粘贴到这里';
保存后重新上传 config.php。
本机没装 PHP?可以用在线的 bcrypt 生成工具,搜「bcrypt hash 在线生成」。
第三步:域名解析
在买域名的那家后台添加 DNS 记录。
主机面板会给你一个「解析地址」(形如 xxx.starzv.com),那就用 CNAME:
| 类型 | 主机记录 | 记录值 |
|---|---|---|
| CNAME | jhpx(或 @) |
面板给的解析地址 |
如果给的是 IP,就用 A 记录:
| 类型 | 主机记录 | 记录值 |
|---|---|---|
| A | @ |
主机 IP |
| A | www |
主机 IP |
同时别忘了在主机面板的「域名管理」里绑定这个域名,两头都要配。
生效时间:5~30 分钟。
怎么确认解析生效了
命令行执行:
nslookup 你的域名
能返回一个 IP 就成了。
上线后检查清单
- [ ] 打开域名,能看到渐变首页
- [ ] 左侧目录能展开,点文档能打开
- [ ] 每篇顶部显示「约 X 字 · 大约 X 分钟」
- [ ] 右侧「此页内容」目录随滚动高亮
- [ ]
Ctrl + K搜索能用 - [ ]
/admin/index.php能用新密码登录(后台样式正常 = 说明base_url()生效了) - [ ] 后台保存一篇文档,前台能看到
- [ ] 顶部「玩法」能进
/play/,八张卡片都在 - [ ]
/play/piano/能打开钢琴并出声 - [ ] 顶部「工具」能进
/tools/,四个卡片都在 - [ ]
/tools/qr-code/打开就能看到二维码(用的是本地库,不联网) - [ ] 默认密码已经改掉
以后更新网站怎么办(重要)
你的文章全部放在服务器的 docs/ 目录里,后台发的文章也写在那里。
本地压缩包是打包时那个时间点的照片——它不认识你之后在服务器上新发的文章。
换文件分两种情况:
| 换法 | 服务器上的新文章 | 服务器上改过的旧文章 |
|---|---|---|
| 直接解压覆盖(不清空目录) | ✅ 还在 | ⚠️ 如果本地包里也有同一篇,会被本地旧版覆盖 |
先清空 wwwroot 再解压 |
❌ 全丢 | ❌ 全丢 |
正确做法(换文件前先备份文章):
- 主机面板 → 文件管理 → 进入
wwwroot/docs - 把这个目录打包下载到本机(或用 FTP 整个拖下来)
- 用下载的
docs/覆盖本机项目里的docs/ - 重新打包、上传、解压
这样本地永远有服务器上的最新文章,换文件既不丢、也不会被旧版覆盖。
懒人办法:解压时选「覆盖」,千万别先清空目录;换完后去后台扫一眼文章列表,发现哪篇变旧了,就从下载的备份里恢复那一个文件。
出问题怎么办
| 现象 | 原因 | 解决 |
|---|---|---|
| 白屏 | PHP 版本不对 | 面板里切换 PHP 版本(7.4 / 8.x) |
| 500 错误 | 文件权限问题 | 目录改 755,PHP 文件改 644 |
| 中文乱码 | 文件编码不对 | 确认是 UTF-8 无 BOM |
| 404 | 根目录放错位置 | 确认文件在 wwwroot 下而不是子目录 |
| 样式全丢 | CSS 没传上去 | 检查 assets/style.css 是否在 |
| 后台保存失败 | docs/ 不可写 |
权限改成 755 或 777 |
| 玩法/工具页面样式全丢 | 根 assets/app.css 没传(所有静态页统一引用根目录这份样式) |
确认根目录 assets/app.css 在 |
| 二维码页空白 | 库文件没传 | 检查 tools/qr-code/assets/qrcode.js 是否在 |
| 玩法页面点了没声音 | 浏览器的自动播放限制 | 先点一下页面任意位置再玩(浏览器规定) |
jhp.studio