宝塔面板部署教程

从零开始,12步完成易网SaaS免费版的完整部署。适合零基础用户,图文清晰,每一步都可操作。

📖 预计耗时 20-30 分钟
1

安装宝塔面板

服务器要求

项目要求
操作系统CentOS 7.x / Ubuntu 20.04+ / Debian 10+(推荐 Ubuntu 22.04)
内存至少 1GB(推荐 2GB+)
硬盘至少 20GB
开放端口8888(宝塔面板)、80(HTTP)、443(HTTPS)

安装命令

根据你的操作系统选择对应命令,SSH连接服务器后执行:

CentOS
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
Ubuntu / Deepin
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
Debian
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec

安装完成后终端会显示面板地址、初始账号和密码。

⚠️
请立即记录面板地址、账号和密码!首次登录后建议修改面板入口和密码。
2

安装LNMP环境

安装套件

首次登录宝塔面板会弹出「推荐安装套件」,选择 LNMP

组件推荐版本说明
Nginx1.24+Web服务器
MySQL5.7 或 8.05.7更稳定,8.0性能更好
PHP7.4 或 8.0必须 ≥ 7.4,推荐 8.0
phpMyAdmin最新版数据库管理工具(可选)

点击「极速安装」,等待5-15分钟完成。

💡
如果错过了首次弹窗,可在左侧菜单 → 软件商店 → 运行环境 中逐一安装。

安装PHP扩展

PHP安装完成后,需开启必要扩展:

  1. 左侧菜单 → 软件商店 → 找到已安装的PHP版本 → 点击「设置」
  2. 切换到「安装扩展」标签页
  3. 确保以下扩展已安装并启用:
扩展名级别说明
pdo_mysql必须数据库连接(核心)
openssl必须知岁OS加密通信
curl必须API请求
mbstring必须中文字符处理
json必须JSON数据处理
gd推荐图片处理
fileinfo推荐文件上传检测
session必须会话管理(默认已开)

调整PHP Session配置

教务数据使用SESSION缓存(生命周期8天),必须调整PHP的session配置:

1

PHP设置 → 「配置修改」标签页

2

找到 session.gc_maxlifetime 改为 691200(8天 = 86400 × 8)

3

找到 session.cookie_lifetime 改为 691200

4

点击「保存」

php.ini
session.gc_maxlifetime = 691200 session.cookie_lifetime = 691200
💡
项目 config.php 中也有 ini_set 设置,双重保障。但如果PHP全局配置更小,SESSION可能提前过期,所以必须同时修改PHP配置。
3

创建网站

添加站点

1

左侧菜单 → 网站 → 点击「添加站点」

2

填写域名、根目录、PHP版本

3

选择「创建数据库」,填写数据库名、用户名、密码

4

点击「提交」

项目填写内容
域名你的域名,如 yike.example.com(暂无域名填服务器IP)
根目录默认路径,保持不变即可
PHP版本选择已安装的PHP版本
数据库名yike_saas
数据库用户名yike_saas
数据库密码点击「生成」按钮自动创建,请记录下来

上传项目文件

1

左侧菜单 → 网站 → 找到站点 → 点击「根目录」

2

删除根目录下的默认文件(index.html404.html等)

3

点击「上传」按钮,将项目所有文件上传到根目录

上传后目录结构应如下:

/www/wwwroot/yike.example.com/ ├── config.php # 配置文件 ├── database.sql # 数据库初始化脚本 ├── index.php # 前台首页 ├── api/ # API接口 ├── admin/ # 后台管理 ├── css/ # 样式文件 ├── includes/ # 公共组件 ├── js/ # JavaScript ├── pages/ # 功能页面 ├── image/ # 静态图片 └── uploads/ # 用户上传(需可写)
4

导入数据库

方法一:宝塔面板导入(推荐新手)

1

左侧菜单 → 数据库 → 找到 yike_saas → 点击「管理」

2

进入 phpMyAdmin → 点击顶部「导入」标签

3

选择文件 → 浏览选择项目中的 database.sql → 点击「执行」

4

左侧应能看到已创建的表:admin_userssettingspopupsusers

方法二:命令行导入

Bash
cd /www/wwwroot/yike.example.com mysql -u yike_saas -p yike_saas < database.sql

输入第三步创建的数据库密码。

5

修改配置文件

编辑 config.php

1

宝塔面板 → 文件 → 进入网站根目录

2

找到 config.php → 点击「编辑」

3

修改以下配置项:

PHP — config.php
// 数据库配置 define('DB_HOST', 'localhost'); define('DB_USER', 'yike_saas'); // 你的数据库用户名 define('DB_PASS', '你的数据库密码'); // 你的数据库密码 define('DB_NAME', 'yike_saas'); // 数据库名 // 站点配置 define('SITE_URL', 'http://yike.example.com'); // 你的域名或IP // 知岁OS API 配置 define('ZSOS_UUID', '你的服务商UUID'); define('ZSOS_SECRET_KEY', '你的服务商密钥'); // 微信公众号配置 define('WECHAT_APPID', '你的公众号AppID'); define('WECHAT_SECRET', '你的公众号密钥'); define('WECHAT_ENABLED', '1'); // 启用微信登录 // 调试模式(生产环境务必设为 false) define('DEBUG', false);
⚠️
生产环境 DEBUG 必须设为 false,否则会暴露敏感错误信息!

同步数据库中的站点配置

database.sql 已导入默认配置,但 site_url 需要更新为你的实际域名:

SQL
UPDATE settings SET value = 'http://yike.example.com' WHERE group_name = 'site' AND key_name = 'site_url';
💡
也可以在后台管理面板中修改站点配置,更方便。
6

设置文件权限

宝塔面板操作

1

左侧菜单 → 文件 → 进入网站根目录

2

选中整个项目文件夹 → 点击「权限」

3

权限 755,所有者 www,勾选「递归」

4

点击「确定」

特殊目录

目录权限说明
uploads/755文件上传(头像、群二维码等)
7

配置SSL证书(可选但推荐)

免费SSL — Let's Encrypt

1

网站 → 点击站点名称 → 「SSL」标签

2

选择「Let's Encrypt」→ 勾选域名 → 点击「申请」

3

申请成功后,开启「强制HTTPS」

⚠️
如果使用微信公众号登录,必须配置HTTPS!微信要求HTTPS回调地址。配置SSL后,记得把 config.phpsettings 表中的 SITE_URL 改为 https:// 开头。
8

访问与测试

访问前台

浏览器打开:http://你的域名/index.php

正常应看到:首页加载 → 功能菜单显示 → 今日课表区域

访问后台管理

浏览器打开:http://你的域名/admin/login.php

项目默认值
账号admin
密码admin123
⚠️
登录后请立即修改管理员密码! 在后台 → 系统配置 中修改。默认密码 admin123 太弱。

测试知岁OS同步

1

在前台注册/登录一个测试账号

2

进入「导入知岁OS数据」页面

3

输入知岁OS数据密钥(需先从知岁OS小程序获取)

4

同步课表/成绩等数据,验证页面是否正常显示

9

常见问题排查

页面空白 / 500错误

  • 检查 config.php 数据库配置是否正确
  • 检查PHP版本 ≥ 7.4
  • 检查 pdo_mysql 扩展是否启用
  • 宝塔面板 → 网站 → 你的站点 → 日志,查看错误日志

数据库连接失败

  • 确认 config.php 中 DB_USER/DB_PASS/DB_NAME 与宝塔创建的数据库一致
  • 确认数据库用户有访问权限(宝塔 → 数据库 → 点击权限 → 选择「所有人」或指定IP)

SESSION数据丢失 / 同步后刷新丢失

  • 检查PHP session.gc_maxlifetime 是否 ≥ 691200
  • 检查 config.php 中 SESSION 配置是否生效
  • 宝塔面板 → PHP设置 → 配置修改 → 检查session配置
  • 检查 /tmp 或 session存储目录权限

微信登录不工作

  • 确认已配置HTTPS(微信回调必须HTTPS)
  • 确认 WECHAT_APPIDWECHAT_SECRET 正确
  • 确认公众号回调地址:https://你的域名/pages/wechat-callback.php
  • 检查公众号是否已认证(未认证的订阅号无网页授权能力)

知岁OS同步返回203

⚠️
HTTP 203 表示该院校未获得知岁OS授权,需联系知岁OS平台获取授权。

Nginx伪静态问题

如果URL访问异常,配置Nginx伪静态:

Nginx
location / { try_files $uri $uri/ /index.php?$query_string; }

在 网站 → 你的站点 → 「伪静态」标签中填入并保存。

10

安全加固

项目操作重要性
修改宝塔面板入口面板设置 → 修改「面板入口」和密码,不要用默认路径必须
修改管理员密码后台 → 系统配置 → 修改密码(默认 admin123 太弱)必须
关闭DEBUG模式config.phpDEBUG 设为 false(已默认关闭)必须
防火墙设置宝塔 → 安全 → 只开放 80、443、8888 端口推荐
11

数据说明

数据类型存储方式生命周期说明
用户信息数据库永久注册、微信绑定等
系统配置数据库(settings表)永久站点、学期、知岁OS等
课表数据SESSION8天每次同步知岁OS刷新
成绩数据SESSION8天每次同步知岁OS刷新
学业进度SESSION8天每次同步知岁OS刷新
空教室SESSION8天每次同步知岁OS刷新
考试安排SESSION8天每次同步知岁OS刷新
自定义课程SESSION8天用户手动添加
💡
超过8天未同步,教务数据会过期丢失,页面顶部显示黄色提示。建议每周同步一次知岁OS。
12

后续维护

维护项频率操作路径
数据库备份每日/每周宝塔 → 计划任务 → 添加数据库备份
知岁OS数据同步每周前台 → 导入知岁OS数据
PHP/MySQL更新按需宝塔 → 软件商店 → 更新
日志排查定期网站 → 日志 → 查看错误日志
🎉
部署完成后,你的校园助手就上线了! 如有问题,请查看项目README或联系开发者。