安装部署 2
更新于 2026-10-13
安装与部署
一、环境要求
| 项目 | 最低要求 | 推荐 |
|---|---|---|
| PHP | 7.4 | 8.0+ |
| MySQL | 5.7 | 8.0 |
| Web 服务器 | Apache / Nginx | Nginx 1.20+ |
| 磁盘 | 200 MB | 1 GB+ |
必须开启的 PHP 扩展
pdo_mysql curl gd zip mbstring openssl fileinfo
可以用下面的命令自查:
php -m | grep -E "pdo_mysql|curl|gd|zip|mbstring|openssl|fileinfo"
二、上传程序
把程序包解压后,将 public/ 目录设为站点根目录(推荐),或直接指向程序根目录并配置好伪静态。
安全提示:
app/、config/、runtime/必须禁止直接访问。Apache 用户可直接使用程序自带的.htaccess;Nginx 用户请参考下方配置。
三、运行安装向导
浏览器访问:
http://你的域名/install/
向导共四步:
- 环境检测 —— 检查 PHP 版本、扩展与目录写权限
- 数据库配置 —— 填写主机、端口、库名、账号密码与表前缀
- 管理员设置 —— 设置后台账号与密码,建议同时填写站点名称
- 完成安装 —— 自动建表、导入演示数据并写入
install/install.lock
安装完成后请立即删除 /install/ 目录,或确认 install.lock 已生成(程序会自动锁定重装入口)。
四、Nginx 伪静态
server {
listen 80;
server_name example.com;
root /www/wenshu/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 禁止访问敏感目录
location ~ ^/(app|config|runtime|install/data)/ {
deny all;
}
}
注意
/docs与源码目录docs/同名。 上面的配置把站点根指向public/,docs/在 Web 根之外,不会有冲突。 但如果你直接以项目根目录作为站点根(不套一层public/),必须为/docs显式加一条路由规则,否则 Nginx 会把/docs当成真实目录 → 301 跳到/docs/→ 目录列表关闭 → 403。此时追加:# /docs 是应用路由(开发文档板块),优先交给入口脚本,避免被真实目录抢走 location ~ ^/docs(/.*)?$ { # docs/ 是源码目录:禁止直下其中的 .md 源文件 if ($request_filename ~* ^.*?/docs/.+\.(md|markdown)$) { return 403; } # ⚠ 不要写 try_files $uri /index.php$is_args$args; # 请求 /docs 时 $uri 恰好命中真实目录 站点根/docs/,Nginx 会按目录直出 # → 301 补斜杠 → autoindex off → 403(app 的 DocController 根本没被调用)。 # 必须内部重写,让 /docs、/docs/、/docs/xxx 统一走应用路由。 rewrite ^/docs(/.*)?$ /index.php last; }改完记得重载 Nginx(
nginx -s reload或面板点「重启」),否则规则不生效。 若一时无法重载,项目已在源码目录放了兜底入口docs/index.php:它会把/docs/交回应用前台,使开发文档在「未配伪静态」的环境下也能打开。 配好并重载后该文件不再被命中,可安全删除。
五、上线前检查清单
- [ ] 修改默认管理员密码(默认
admin / admin888)
- [ ] 关闭调试模式:
.env中APP_DEBUG = false
- [ ] 开启 HTTPS 并强制跳转
- [ ] 配置好伪静态规则,并确认
/list/1.html能正常打开
- [ ] 检查
runtime/、public/storage/目录可写
- [ ] 设置好计划任务(
php think cron:run或访问配置的定时接口)
- [ ] 定期备份数据库与上传目录
六、升级
- 备份数据库与
public/storage/上传目录
- 覆盖程序文件(不要覆盖
config/、public/storage/、theme/)
- 访问
/install/执行「升级」步骤
- 清理后台缓存:
系统 → 清理缓存