php代码如何传输到另一台服务器,有哪些方法?

PHP项目从一台服务器搬到另一台服务器,核心就两步:代码文件打包传输加数据库导出导入,其中代码用压缩包方式传最稳,数据库用mysqldump或phpMyAdmin导出再导入。

很多朋友第一次做服务器迁移,心里没底,怕搞丢数据,其实这个操作比想象中简单,只要按顺序走,每一步盯紧结果,基本不会出大问题,下面从准备工作、传输方法、数据库迁移到环境检查,完整拆开讲清楚。

FileZilla连接与使用
加载中
FileZilla连接与使用

传输前先确认这三件事

动手之前,花五分钟把新旧两台服务器的信息理清楚,能省掉后面一半的麻烦。

  • 确认PHP版本:老服务器是PHP 7.2,新服务器要是默认PHP 8.0,代码里有些老语法可能直接报错,登录新服务器跑一句php -v,版本差距太大就提前查兼容性。
  • 确认扩展组件:phpinfo里看有没有装mysqli、curl、gd库这类常用扩展,代码里用到某个函数,新服务器没装对应扩展,页面白屏都找不到原因。
  • 确认绝对路径:项目里写死的/home/wwwroot/xxx这种绝对路径,换服务器后目录名不同,代码就会崩,用命令pwd看一下新环境根目录,之后改配置时心里有数。

这些信息确认好了,再往下走,事半功倍。

php网站搬家到新服务器怎么做:三种主流传输方式对比

传输方式没有绝对好坏,主要看项目大小、手头工具和网络环境,直接看表格对比:

方式 适合场景 优点 缺点 是否需要安装
宝塔面板打包 小网站搬家、新手用户 全图形界面,点鼠标就行 大文件打包时间长 无需安装,宝塔自带
scp/rsync命令 大项目、服务器间互传 文件越大优势越明显,支持断点续传 需要懂点Linux命令 服务器基本自带
Git拉取 代码有版本管理习惯 增量上传,只传改动部分 新服务器需装Git环境 需安装git包

宝塔面板打包传输:适合不太熟悉命令行的朋友

如果你两边服务器都装了宝塔面板,这是最简单的路。

  1. 老服务器宝塔后台打开文件菜单,找到站点根目录,右键选择压缩,格式选zip。
  2. 压缩完成后,在同目录下找到这个zip文件,点击下载到本地电脑。
  3. php代码如何传输到另一台服务器,有哪些方法?

  4. 新服务器宝塔后台同样打开文件菜单,进入新站点的根目录,点击上传,把zip传上去,再右键解压。

整个过程中,注意上传时别选错目录,站点根目录一般在/www/wwwroot/下面,每个站点一个独立文件夹,传错了位置后面改nginx配置更麻烦。

命令行scp和rsync:处理大文件更顺手

项目代码好几个G,压缩包传得慢还容易断,用命令行走ssh通道更靠谱。

scp是简单的单次传输,适合项目文件不多、传一次就完事的场景。

scp /www/wwwroot/old_project.zip root@192.168.1.100:/www/wwwroot/

这条命令把老服务器的压缩包直接推到新服务器的指定目录,输入新服务器密码就开始传。

rsync的精髓在于断点续传和增量同步,如果你已经传过一次,又改了几个文件,rsync只传改动的部分,业内专家指出,对于频繁更新的线上项目,rsync同步比反复打包上传效率高不少。

rsync -avzP /www/wwwroot/old_project/ root@192.168.1.100:/www/wwwroot/new_project/

加P参数就支持断点续传,传的过程中断网了,重新执行同样的命令,它会接着传剩下的部分,不用从头再来。

php源码怎么迁移到服务器上:如果你用Git管理代码

代码本来就放在Git仓库里管理,那传起来更快,连压缩包都不用打。

  1. 新服务器上安装Git环境:yum install -y git(CentOS系)或apt install -y git(Ubuntu系)。
  2. 进入新站点根目录,git clone你的远程仓库地址。
  3. 代码拉取完成后,composer install安装一下PHP依赖(项目用了Composer的话)。
  4. .env文件或配置文件里的数据库连接信息,改成新服务器的对应值。

这种方式的好处是,后续代码有更新,直接回到目录里git pull一下,增量下来,不用反复打包上传。

数据库迁移:从旧服务器完整搬到新服务器

PHP项目几乎都离不开MySQL数据库,代码传完了,数据库落下来,网站等于还缺一条腿。

小数据库直接用phpMyAdmin图形操作

数据量不大(几百MB以内),phpMyAdmin最直观。

老服务器phpMyAdmin里选中要导出的数据库,点击导出,格式选SQL,下载到本地,然后去新服务器phpMyAdmin里,创建一个同名数据库(排序规则选

php代码如何传输到另一台服务器,有哪些方法?

utf8mb4_general_ci),点击导入,选择刚才下载的SQL文件,执行完成即可。

大数据库用mysqldump命令更稳定

几千上万条记录的表,用网页导入容易超时卡死,命令行方式更稳。

老服务器上执行:

mysqldump -u用户名 -p 数据库名 > backup.sql

输入密码后,数据库被完整导出为一个SQL文件。

新服务器上执行:

mysql -u用户名 -p 数据库名 < backup.sql

这样就完成了导入,整个过程中,SQL文件要先通过scp或宝塔上传到新服务器某个目录,再执行导入命令。

数据库传输两次容易漏掉的操作

SQL文件导入完成后,不少人以为就结束了,这里单独提醒两个容易遗漏的地方:

  • 数据库账号权限:新服务器上要新建一个和代码配置文件里对应的数据库账号,并授权给这个库,直接复制粘贴GRANT ALL PRIVILEGES ON 数据库名. TO '用户名'@'localhost' IDENTIFIED BY '密码';,然后FLUSH PRIVILEGES;刷新权限。
  • 字符集不一致:导入后前台页面出现乱码,基本是字符集设置问题,建库建表时统一用utf8mb4,导入SQL文件之前确认文件头部有没有SET NAMES utf8mb4;,没有就手动补上。

传完了不等于完事:环境配置要逐个核对

代码和数据库都到位了,接下来才是考验耐心的环节,下面几项配置不对,网站照样打不开。

站点配置和伪静态规则

打开新服务器上的nginx或Apache配置(宝塔用户直接在网站列表里点击伪静态),把老服务器上的伪静态规则复制过来,ThinkPHP、Laravel这类框架,少了伪静态规则,访问除首页外的任何页面都会404。

目录权限调整

PHP需要写入缓存和日志的目录,权限不足会直接白屏或报错,比如Laravel的storage目录、ThinkPHP的runtime目录,设置权限为755或775:

chmod -R 775 storage
chmod -R 775 runtime

同时确认这些目录的属主是PHP运行用户(宝塔一般是www),否则有了权限但不是你的身份,效果一样。

配置文件里的绝对路径和域名

打开项目里的config.php、.env文件,把里面的site_url、base_url

php代码如何传输到另一台服务器,有哪些方法?

改成新服务器对应的域名或IP,模板文件里有写死旧域名链接的,也得全局搜一遍替换掉,否则页面图片和跳转链接全部指向旧服务器,等于没搬干净。

切换到新环境后,经常遇到的两类问题,这里把排查思路也一并列出来。

PHP环境和数据库链接的排查顺序

网站打不开,先别急着怀疑代码本身,跟你之前部署流程每一步反向倒查。

页面报500或直接空白。
先看新环境PHP错误日志,宝塔用户直接在日志菜单里看,普通环境执行tail -f /var/log/php-fpm/error.log,检查一下代码项目入口文件(比如public/index.php)第1行前后有没有输出过空格或字符,这会直接导致HTTP头输出失败,页面白屏,如果扩展缺失,日志里会明确显示某个函数未定义,装对应扩展即可。

连接数据库失败报错。
这个最常见的原因是账号密码或网络权限不一致,确认代码配置文件里的服务器地址是localhost还是实际的数据库IP,MySQL默认只监听本机,远程数据库要单独开权限给新服务器的IP地址。

上传大SQL文件超时中断。
一些用户在phpMyAdmin里分多次导入,结果导入到一半报错中断,数据库残留了部分表记录,排查思路是,先在新服务器里删除掉这个新库,重新新建一遍,然后改用命令行的mysql导入方式,避免网页超时问题。

最后一步:切换域名解析前的检查单

一切配置完毕,别急着改域名解析,把下面几条全部核对一遍,再动DNS,就能做到无缝切换不丢数据:

  • 检查后台登录页,能否正常显示和验证码加载;
  • 打开网站首页,F12看浏览器控制台,有没有报错JS或加载失败的静态资源;
  • 发布一条测试内容,确认前台更新后正常显示;
  • 确认邮件通知、定时任务(crontab)里设置的访问脚本地址已经更新为新服务器的域名或IP。

域名解析生效时间有快有慢,生效之前,可以临时改本机hosts文件指向新服务器IP,提前预览效果,确认没问题再改正式解析,避免解析切过去之后才发现问题,又得紧急回滚,来回折腾数据库里新增的数据大概率会丢失。

PHP传输到另一台服务器,整体思路就是代码文件和数据库双线并行,文件传输方式按数据量和操作习惯选,数据库导入完成后一定检查账号权限和字符集,走完这套流程,绝大多数迁移场景都能覆盖到。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/php%e4%bb%a3%e7%a0%81%e5%a6%82%e4%bd%95%e4%bc%a0%e8%be%93%e5%88%b0%e5%8f%a6%e4%b8%80%e5%8f%b0%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%8c%e6%9c%89%e5%93%aa%e4%ba%9b%e6%96%b9%e6%b3%95%ef%bc%9f/

赞 (0)
加速服务器一台多少钱,哪个牌子性价比最高?
上一篇 2026年9月21日 09:50
com为何稳居第一,新顶级域名还有哪些值得注册?
下一篇 2026年9月21日 10:07

相关推荐

  • 服务器BGP租用价格是多少?服务器BGP租用价格行情及费用明细

    服务器BGP租用价格并非固定值,而是由网络质量、带宽规格、服务商资质及服务条款共同决定的动态变量,主流市场中,单节点BGP租用月费区间为800元至8000元,双节点及以上起租价通常在2000元以上,价格差异背后是网络稳定性、延迟控制与多运营商接入能力的真实体现,以下从五大维度拆解影响因素,助您精准评估成本与价值……

    程序编程 2026年4月17日
    11300
  • 深圳大带宽服务器适合直播吗,大带宽服务器直播怎么选

    深圳大带宽服务器是直播业务高效运行的基石,选择持牌自营机房能从根本上保障延迟与稳定性,简米科技与酷番云这类具备多年行业资质的IDC服务商,在合规与基础设施层面能提供可靠支撑,直播业务对服务器带宽的核心要求视频流的实时性与带宽消耗直播本质上是对实时视频流进行编码、传输与解码的过程,高清直播(1080P)需要至少6……

    2026年7月26日
    1400
  • 苹果6s连接服务器时出现问题怎么解决,是什么原因?

    苹果6s连接服务器时出现问题,多数情况是网络设置、系统时间或DNS配置导致的临时故障,按顺序重置网络并校准时间即可解决,苹果6s连不上服务器怎么办?先做这两步排查每次遇到连接服务器报错,先别急着刷机,很多所谓“服务器故障”其实是手机自己闹脾气,你在Wi-Fi满格的状态下刷不出App Store,或者提示“无法连……

    2026年8月17日
    2600
  • 服务器ip地址查询命令是什么?如何用命令行查看服务器公网IP

    如何精准获取服务器IP地址?核心方法一文讲清在运维、网络诊断或安全排查中,服务器IP地址查询命令是基础却关键的操作,掌握正确方法,不仅能快速定位目标主机,还能避免因IP变更、NAT映射或DNS缓存导致的误判,本文基于实战经验,系统梳理主流操作系统下的权威查询路径,确保信息准确、可复现,Linux/Unix系统……

    程序编程 2026年4月18日
    9900
  • Access数据如何导出Excel?access数据导出excel教程

    Access数据导出Excel最稳定且高效的方式是使用内置的“外部数据”选项卡或VBA宏,前者适合单次操作,后者适合批量自动化处理,能完美保留格式并避免乱码问题,很多职场人在处理Access数据库时,常遇到导出Excel后格式错乱、日期变成数字或长文本被截断的痛点,这通常不是软件故障,而是缺乏对数据映射规则的理……

    2026年7月6日
    7000
  • 戴尔r630服务器密码忘了怎么解决,如何重置系统密码?

    戴尔R630服务器密码忘了,先别慌——绝大多数情况下,你只需要一个跳线帽或一根网线就能解决;关键是先分清是BIOS密码、iDRAC密码还是操作系统登录密码,三种密码的处理路径完全不同,先判断你忘的是哪把锁戴尔R630作为一款经典的机架式服务器,身上至少有四道“锁”,很多人以为密码只有一个,结果拆开机箱发现无从下……

    2026年10月9日
    000
  • 服务器ip地址怎么查,Windows系统查询服务器IP的方法

    查询服务器IP地址的核心方法取决于您的操作系统环境与使用场景,最直接且通用的方案是利用命令行工具(Windows下的CMD或Linux下的Terminal)执行特定指令,或通过第三方在线工具进行反向解析,掌握“命令行查询”与“在线工具检测”这两大核心技能,即可覆盖90%以上的IP地址查询需求,不仅效率高,而且获……

    2026年4月3日
    8800
  • LOL聊天服务器登陆不上怎么解决,是什么原因导致的?

    当LOL聊天服务器登录不上时,大部分情况下问题出在本地网络环境或客户端组件损坏,真正遭遇全区聊天服务器宕机的概率极低,按顺序自查修复通常能在几分钟内解决,LOL聊天服务器连接失败:先分清是“你掉线”还是“大家掉线”聊天服务器和游戏服务器是两套独立系统,就算你能正常排队进对局,好友列表可能照样转圈圈,英雄联盟的聊……

    程序编程 2026年10月21日
    100
  • win11时间校准服务器如何改,服务器地址怎么填?

    Win11时间校准服务器怎么改?核心答案:进入“设置→时间和语言→日期和时间→附加设置→立即同步”,或通过控制面板的“Internet时间”选项卡修改服务器地址为time.windows.com或ntp.aliyun.com,然后点击“立即更新”即可完成校准,Win11时间同步失败时,先明确服务器地址的作用Wi……

    2026年8月30日
    500
  • Windows服务器补丁更新节奏如何把握,补丁更新失败怎么办

    Windows服务器补丁更新的正确节奏是:紧急安全补丁立即打,重要补丁按月度批次打,非安全更新按季度统一打,这个节奏不是拍脑袋定的,而是基于微软补丁发布机制和真实业务环境的权衡,下面把每个环节拆开讲清楚,为什么不能所有补丁都第一时间打很多运维人员一开始都有这个误区,觉得补丁越早打越安全,但实际拦你的是业务连续性……

    程序编程 2026年10月23日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注