前期准备
1 所需条件清单
| 项目 | 要求 | 备注 |
|---|---|---|
| 阿里云账号 | 已完成实名认证 | |
| 域名 | 已备案且解析至虚拟主机IP | 需提前完成DNS绑定 |
| TP5源码 | 完整项目代码包 | 建议使用稳定版官方源码 |
| FTP工具 | FileZilla/WinSCP等 | 用于文件传输 |
| 浏览器 | Chrome/Firefox最新版 | 调试必备 |
服务器环境配置
1 基础环境验证
✅ PHP版本:≥7.0(登录阿里云控制台→左侧导航栏「站点信息」查看当前PHP版本)
⚠️ 若低于7.0需联系客服升级
✅ 数据库支持:MySQL 5.6+(默认已集成)
✅ 扩展组件:确保以下扩展已启用(可通过phpinfo()查看):

- PDO_MYSQL
- MBSTRING
- CTYPE
- JSON
- TOKENIZER
2 伪静态配置
📌 关键操作:
- 登录阿里云控制台 → 选择目标虚拟主机 → 进入「高级环境设置」
- 找到「HTTP自动跳转https」关闭(暂不影响开发)
- 点击「设置伪静态」→ 选择「ThinkPHP」模板 → 保存生效
💡 提示:该操作会自动生成适配TP5的.htaccess文件
项目部署流程
1 文件上传方案
| 方法 | 适用场景 | 操作要点 |
|---|---|---|
| FTP直接上传 | 小规模项目 | 保持目录结构一致,禁止覆盖系统文件 |
| 压缩包上传+解压 | 大型项目/频繁更新 | 右键解压时勾选「保留权限」 |
| Git同步(可选) | 团队协作开发 | 需额外配置SSH密钥 |
2 核心目录权限设置
🔑 必要权限调整:
/public/uploads→ 755权限(允许上传)/application/runtime→ 777权限(运行时目录)/think→ 755权限(框架核心文件)
❗️ 警告:切勿给整站设置777权限,存在安全风险
数据库初始化
1 数据库创建步骤
- 控制台 → 数据库管理 → 创建新数据库(例:
db_tp5) - 创建同名数据库用户(例:
user_tp5),设置强密码 - 将用户添加到数据库权限组
- 记录以下连接参数备用:
- 主机:localhost
- 端口:3306
- 字符集:utf8mb4
2 SQL导入规范
📄 最佳实践:

- 使用Navicat等工具执行SQL文件
- 遇到
ERROR 1064错误时,检查SQL语句中的反引号`使用 - 大数据量导入建议分批次执行
配置文件修改
1 数据库连接配置
打开config/database.php,按以下格式修改:
return [
'default' => [
'type' => 'mysql',
'hostname' => 'localhost',
'database' => 'db_tp5', // 你创建的数据库名
'username' => 'user_tp5', // 数据库用户名
'password' => 'your_password', // 数据库密码
'hostport' => '3306',
'charset' => 'utf8mb4',
],
];
2 其他关键配置
| 文件路径 | 修改项 | 示例值 |
|---|---|---|
.env |
APP_DEBUG=false | 生产环境关闭调试模式 |
public/.htaccess |
RewriteBase | 根据实际部署路径调整 |
extend/Route.php |
自定义路由规则 | 按需添加API接口映射 |
测试与排错
1 首次访问测试
🔗 访问地址示例:http://你的域名/index.php
⚙️ 预期结果:看到TP5欢迎页面或自定义首页
❌ 常见错误处理:
Database connection failed→ 检查数据库配置+防火墙放行3306端口File not found→ 确认.htaccess生效+文件路径正确Permission denied→ 检查目录权限+SELinux状态
2 日志查看指南
| 日志类型 | 查看路径 | 作用说明 |
|---|---|---|
| PHP错误日志 | /logs/php_errors.log | 捕获程序运行错误 |
| Web访问日志 | /logs/access_log | 记录所有请求信息 |
| SQL慢查询日志 | /logs/mysql_slow_query.log | 优化数据库性能 |
相关问题与解答
Q1: 为什么数据库连接总是失败?
A: 请依次检查:①数据库名称/用户名/密码拼写错误;②数据库用户未授权访问该库;③防火墙拦截了3306端口;④PHP扩展未加载pdo_mysql,可通过telnet localhost 3306测试端口连通性。

Q2: 提交表单报”CSRF token mismatch”怎么办?
A: 这是TP5的安全机制触发,解决方案:①确保<form>标签中包含{:token()};②检查.env中是否开启REQUEST_FROM限制;③清除浏览器缓存后重试,若仍不行,可在config/middleware.php中暂时禁用`thinkmiddlewareCsrf::
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/105544.html