最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ThinkPHP跨服务器部署如何迁移 操作步骤说明
时间:2026-07-21 09:26:54 编辑:袖梨 来源:一聚教程网
ThinkPHP跨服务器迁移核心是环境一致性、入口路径正确、runtime目录可写、配置安全生效;需用mysqldump --no-definer --skip-triggers导出数据库并grep检查DEFINER,PHP须版本及扩展(openssl、mbstring等)严格对齐且mbstring.func_overload=0,Web服务器root必须指向public目录、伪静态规则适配、.env权限设为644并禁止Web访问,迁移后必须清空runtime目录。
ThinkPHP跨服务器迁移不是简单复制代码,核心是环境一致性、入口路径正确、运行时目录可写、配置安全生效。跳过任一环节,轻则白屏404,重则数据库连不上或缓存全错。
数据库导出要干净,避免DEFINER和触发器干扰
直接mysqldump可能带CREATE DEFINER语句,新服务器若无对应用户,导入会静默失败或跳过表。
- 用命令导出:mysqldump --no-definer --skip-triggers --single-transaction -u root -p your_db > backup.sql
- 导出后立刻检查:grep DEFINER backup.sql,结果应为空
- 如项目用了视图或存储过程,才加
--routines;多数情况不加,否则易因权限报错
PHP环境必须严格对齐
ThinkPHP对openssl、mbstring等扩展敏感,版本或配置偏差会导致验证码异常、Redis加密失败、JSON解析乱码。
- 旧服务器执行:php -v 和 php -m | grep -E '^(openssl|mbstring|pdo|pdo_mysql|curl)$',记下精确版本和启用状态
- 新服务器安装对应PHP版本(如8.2),并确认
mbstring.func_overload = 0(查php -i | grep func_overload) - 同时验证CLI与PHP-FPM版本一致:ps aux | grep php-fpm 找到进程路径,再用该路径执行
-v
Web服务器配置关键三件事
Nginx或Apache配置稍有偏差,就会出现“首页能打开,路由全404”这种半通状态,极难排查。
立即学习“PHP免费学习笔记(深入)”;
-
root必须指向public目录:Nginx设
root /var/www/myapp/public;,Apache DocumentRoot同理 -
伪静态规则不能混用:Nginx用
try_files $uri $uri/ /index.php?$query_string;;.htaccess对Nginx无效 -
.env权限与访问控制:上传后立刻
chmod 644 .env,并在Nginx配置中加location ~ /.env { deny all; }
runtime目录必须清空并确保可写
迁移后不清理runtime,缓存里仍存老数据库地址、旧时区设置,导致连接失败或日志时间错乱。
- 上传完代码、导入数据库、配好.env后,执行:rm -rf runtime/
- 确保Web进程用户(如www-data)和CLI用户(如deploy)都能写入:chown -R www-data:www-data runtime/
- 如果用Docker,runtime需单独挂载且UID对齐,避免容器内www-data无法写宿主机目录
相关文章
- 谷歌浏览器如何发送反馈 07-28
- 如何在excel表格里制作柱形动态图表 07-28
- 悟空浏览器怎么分享 07-28
- soundlock 怎样设置开机自启 07-28
- 腾讯视频自动播放模式的查看方法 07-28
- 星际护卫队好玩吗 星际护卫队深度玩法解析与玩家真实体验分享 07-28