当前位置:首页 > 虚拟主机 > 正文

阿里云虚拟主机 部署tp5

登录 阿里云控制台创建 虚拟主机,选择PHP环境;通过FTP工具上传ThinkPHP5项目文件至根目录,创建并绑定MySQL数据库;修改配置文件连接

前期准备

1 所需条件清单

项目 要求 备注
阿里云账号 已完成实名认证
域名 已备案且解析至虚拟主机IP 需提前完成DNS绑定
TP5源码 完整项目代码包 建议使用稳定版官方源码
FTP工具 FileZilla/WinSCP等 用于文件传输
浏览器 Chrome/Firefox最新版 调试必备

服务器环境配置

1 基础环境验证

PHP版本:≥7.0(登录阿里云控制台→左侧导航栏「站点信息」查看当前PHP版本)

️ 若低于7.0需联系客服升级

数据库支持:MySQL 5.6+(默认已集成)

扩展组件:确保以下扩展已启用(可通过phpinfo()查看):

阿里云虚拟主机 部署tp5 第1张

  • PDO_MYSQL
  • MBSTRING
  • CTYPE
  • JSON
  • TOKENIZER

2 伪静态配置

关键操作

  1. 登录阿里云控制台 → 选择目标虚拟主机 → 进入「高级环境设置」
  2. 找到「HTTP自动跳转https」关闭(暂不影响开发)
  3. 点击「设置伪静态」→ 选择「ThinkPHP」模板 → 保存生效

    提示:该操作会自动生成适配TP5的.htaccess文件

项目部署流程

1 文件上传方案

方法 适用场景 操作要点
FTP直接上传 小规模项目 保持目录结构一致,禁止覆盖系统文件
压缩包上传+解压 大型项目/频繁更新 右键解压时勾选「保留权限」
Git同步(可选) 团队协作开发 需额外配置SSH密钥

2 核心目录权限设置

必要权限调整

阿里云虚拟主机 部署tp5 第2张

  • /public/uploads → 755权限(允许上传)
  • /application/runtime → 777权限(运行时目录)
  • /think → 755权限(框架核心文件)

    ️ 警告:切勿给整站设置777权限,存在安全风险

数据库初始化

1 数据库创建步骤

  1. 控制台 → 数据库管理 → 创建新数据库(例:db_tp5)
  2. 创建同名数据库用户(例:user_tp5),设置强密码
  3. 将用户添加到数据库权限组
  4. 记录以下连接参数备用:
    • 主机:localhost
    • 端口:3306
    • 字符集:utf8mb4

2 SQL导入规范

最佳实践

阿里云虚拟主机 部署tp5 第3张

  • 使用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::

0