上周帮同事迁移开发机,他的Phpask用了大半年,站点十几个,数据库少说二十来个库。新电脑上他原本打算重装整套php集成环境,再一个个配虚拟主机、导入数据库。我看了他一眼,直接说:不用这么折腾,Phpask这种自包含的PHP集成环境,是可以整体搬家的。后来半小时搞定,中间还包含了一次路径踩坑。这篇文章就把Phpask迁移的完整思路、操作步骤和我在实际迁移中遇到的坑拆开讲清楚,给需要换电脑、换服务器,或者想把开发环境复制一份给同事的读者做个参考。
1. 先弄懂Phpask的目录结构,迁移才不会跑偏
1.1 Phpask的自包含机制决定了“整体搬家”可行
Phpask这类PHP集成环境,本质上就是把Apache/Nginx、MySQL/MariaDB、PHP、phpMyAdmin、以及默认站点目录全部塞进同一个根目录。我在实际使用中看到的Phpask根目录结构一般是这样:
text复制D:\Phpask\
├── apache\ # Web服务器
├── mysql\ # 数据库
├── php\ # PHP解释器
├── phpmyadmin\ # 数据库管理面板
├── www\ # 默认站点根目录
├── panel\ # Phpask管理面板程序
├── start.bat # 启动脚本
└── stop.bat # 停止脚本
这种“自包含目录”的设计,是迁移可行的底层基础。它带来的第一个好处是:不需要在新机器上重装任何组件,PHP、MySQL这些运行程序的依赖都在各自目录里。第二个特点是:所有服务的配置信息都集中在根目录下,不存在系统盘里散落的注册表项或全局配置。所以Phpask迁移的核心,不是重新安装配置,而是把整个目录完整搬到目标机器,再解决三件事:路径改写、服务重新注册、数据验证。
有个很重要的认知要纠正:很多人把Phpask迁移理解成“数据库迁移”,或者“代码迁移”,其实都不全面。Phpask迁移是环境级迁移,数据库、站点文件、PHP扩展、虚拟主机配置、面板设置全都要一起搬。只导出数据库再重装环境,等于丢掉了所有环境配置,耗时且容易漏项。
1.2 迁移前必须先搞清的三个内部状态
我在实际操作中发现,正式动手之前,有三个方面不搞清楚,迁移过程中一定会卡壳。
第一,Phpask当前是“Windows服务方式”运行,还是“bat脚本方式”运行。 这两个运行模式在新机器上的处理方式完全不同。服务方式需要在目标机器重新注册服务;bat方式则只需要修改脚本里的相对路径。判断方法很简单:打开Windows服务管理器,看里面有没有名字类似phpask_apache、phpask_mysql的服务条目。我的经验是,Phpask默认安装时通常会注册服务,但有部分绿色版或手动解压版会直接用start.bat启动前台进程,这个差异直接决定后续是走服务迁移还是脚本迁移。
第二,MySQL的数据目录是否被改动过。 默认情况下MySQL数据在mysql\data目录下,整体复制就能带走。但有些场景下,数据目录会被挪到其他位置,比如C盘空间不足时,有人会把datadir改到独立数据盘。这种情况下,只复制Phpask根目录是不够的,数据目录也要单独复制,迁移后还需要同步修改my.ini里的datadir配置。
第三,是否存在自定义虚拟主机和额外站点。 Phpask默认只有www目录下一个站点,但实际开发中大多数人会配置多个虚拟主机,每个站点有独立域名或端口。这些配置写在apache的conf\extra\httpd-vhosts.conf或者其他自定义配置文件中,迁移时如果遗漏,新环境里访问不到任何站点。
这三个状态摸清之后,我建议先做一份迁移前记录表,格式供你参考:
| 记录项 | 内容示例 | 迁移时的用途 |
|---|---|---|
| Phpask安装版本 | Phpask v1.x | 目标机器安装对照版本 |
| Web端口 | 80 | 新机器检查端口冲突 |
| MySQL端口 | 3306 | 新机器检查端口冲突 |
| MySQL root密码 | 自定义 | 迁移后验证登录 |
| 服务注册方式 | Windows服务 / bat启动 | 决定服务处理方式 |
| 站点数量及域名 | localhost、test1.com | 迁移后逐一验证 |
| 数据库列表 | db1、db2、db3 | 迁移后逐一验证 |
| 自定义PHP扩展 | redis、gd | 确认配置文件完整 |
这份表不用花太多时间,十分钟就能填完,但迁移后的排查会省几个小时的冤枉功夫。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 迁移前备好四道保险:备份、记录、清理、环境核对
2.1 逻辑备份数据库,而不是只复制物理文件
很多人觉得,反正整个目录都复制过去,MySQL数据文件在里面,何必再多此一举导出SQL?这里我要说一个我踩过的最深的坑:直接复制数据文件的迁移方式,对版本高度敏感,而且极易出现“文件复制完整但数据无法识别”的情况。 MySQL的数据文件不是简单的“拷贝就能用”,它包含数据字典、undo log、redo log,如果源机器上MySQL正在运行,复制过程中文件处于不一致状态,目标机器启动时大概率报表损坏或者崩溃。
所以迁移前,无论物理文件是否要复制,我都强烈建议先做一次逻辑备份。逻辑备份就是通过mysqldump把所有数据导出成SQL文本文件。这是一道最可靠的数据保险,是整个迁移过程最后的退路。
命令行操作如下:
bash复制# 进入Phpask的mysql/bin目录
cd D:\Phpask\mysql\bin
# 导出所有数据库,包括系统库
mysqldump -u root -p --all-databases --default-character-set=utf8mb4 > D:\backup\phpask_all_databases.sql
执行后会提示输入MySQL root密码。导出完成后,检查一下SQL文件大小,确认不是0字节或者小得离谱。我自己习惯用全部数据库导出,因为虚拟主机、站点表结构之间可能存在关联,只导出业务库容易漏掉系统库中的部分状态。
提示:如果数据库比较大,导出时间长是正常的。SQL文件达到几GB也正常,关键是要确保导出过程没有报错。不要手滑关闭命令行窗口。
2.2 记录当前运行参数与端口状态
端口冲突是Phpask迁移后在目标机器上最常见的启动失败原因。目标机器上可能已经装了其他Web服务、数据库软件,占用了相同的端口。所以在迁移前,先在源机器上把当前网络监听状态摸清楚:
bash复制# 查看80端口的占用情况
netstat -ano | findstr :80
# 查看3306端口的占用情况
netstat -ano | findstr :3306
正常情况下,你能看到Phpask的Apache进程监听80端口,MySQL进程监听3306端口,记录下这个状态。同时从Phpask的配置文件里确认当前版本号,以及Apache和MySQL的具体小版本,比如Apache 2.4.54、MySQL 5.7.36。这个版本号在迁移后有实际意义:理想情况下,目标机器上的Phpask版本应尽量与源机器一致,至少主版本号一致,否则配置文件格式可能存在差异。
2.3 清理运行缓存与日志文件,缩小迁移体积
Phpask运行一段时间后,根目录下会积累大量日志文件、临时缓存、session文件。这些文件不清理,会导致两个问题:一是迁移体积膨胀,复制耗时增加;二是把当前机器上一些无意义的临时状态带到新环境,比如已经失效的session、超大错误日志等。
我在迁移前会做以下清理动作:
- 日志文件:清理apache\logs目录下超过一周的access/error日志;
- MySQL日志:如果开启了general_log或慢查询日志,且不需要保留,可以先清空;
- PHP session:清理php\session目录下过期session文件,这个目录存放本地调试时的登录状态,迁移后没有任何价值;
- 临时上传文件:清理php\uploadtmp等临时目录。
注意:不要动mysql\data目录下的文件,不要动www目录下的站点文件,不要动apache\conf下的配置文件。清理的目标只有运行痕迹,不是业务资产。
另外,如果Phpask根目录下有恰好叫backup、temp之类的目录,里面存放了旧备份或临时下载包,也可以一并清理或单独存放,避免加入迁移内容。
2.4 目标机器上装一个同版本Phpask作对照
这个技巧是让我后面省了很多事的关键做法。在目标机器上,先安装一份与源机器同版本的Phpask(可以用默认配置装到某个临时目录),然后不启动服务,或者启动后确认默认页面正常。 这样你手里就有一个“已知可以正常运行的配置参照物”。
为什么这么做?因为Phpask迁移后出现启动失败,很大概率的原因是配置文件里路径或参数被改错。当你有一个同版本、已知可用的Phpask在旁边时,你可以逐项对照它的默认配置,快速定位是哪一行配置出了问题。这比靠搜索引擎一条条查报错信息要高效得多。
而且,同一份目标机器上的默认Phpask,可以帮你快速确认“新机器环境是否支持Phpask运行”,比如VC运行库缺失、某个系统组件不兼容,这些是环境层面的问题,通过对照安装可以提前暴露。
3. 迁移实操:复制、改路径、注册服务、验证四步走
3.1 停服务后再整目录复制
这是整篇最核心的一条纪律:复制之前必须先停止Phpask的所有服务。无论是Apache、MySQL,还是管理面板进程,全部结束后再复制。否则会出现文件被占用、复制不完整、MySQL数据文件不一致等问题。
停止服务的方式取决于你前面的记录结果。Windows服务方式就在服务管理器里停止;bat方式就运行stop.bat。停止后最好用任务管理器确认进程确实不存在了。
复制时我不建议用鼠标右键的“复制-粘贴”,文件多、体积大时速度慢且容易中断。推荐用robocopy命令,这是Windows自带的多线程复制工具,稳定性和速度都更好:
bash复制# 将D盘Phpask目录完整复制到目标机器的E盘
robocopy D:\Phpask E:\Phpask /E /COPYALL /R:2 /W:2
参数说明:
/E:复制所有子目录,包括空目录;/COPYALL:复制所有文件属性,包括权限、时间戳等;/R:2 /W:2:失败重试2次,每次等待2秒,避免因个别文件占用而长时间卡住。
复制完成后,我建议在目标机器上对比一下目录总大小,或者抽查几个大文件,确认复制没有遗漏。另外一个细节:如果原本Phpask在D盘,迁移到新机器后安装盘符不同,路径改写是不可避免的。 如果盘符恰好一样,比如都是D盘,那部分配置可以直接沿用,但仍要检查一遍。
3.2 配置文件的路径批量替换,这是迁移成败的关键
Phpask的配置文件里,记录了大量基于安装时绝对路径的配置项。迁移到新目录后,这些路径如果不改,服务启动时还是会去找旧路径,导致直接失败。
需要重点检查的配置文件如下:
| 配置文件 | 需要关注的配置项 |
|---|---|
| apache\conf\httpd.conf | ServerRoot、DocumentRoot、Listen、LoadModule路径 |
| apache\conf\extra\httpd-vhosts.conf | 各虚拟主机的DocumentRoot、ErrorLog路径 |
| php\php.ini | extension_dir、session.save_path、upload_tmp_dir |
| mysql\my.ini | basedir、datadir、port |
| 管理面板相关配置 | 面板程序里记录的安装路径、站点根目录路径 |
| 启停脚本 | start.bat、stop.bat里的相对路径和命令路径 |
路径替换我最推荐的做法是用VS Code或者Notepad++打开配置文件,执行全局查找替换。以“D:\Phpask”迁移到“E:\Phpask”为例,需要把配置文件里的所有D:\Phpask替换为E:\Phpask。
这里有几个注意事项:
第一,注意路径分隔符的写法。 配置文件中有的地方用“D:/Phpask”,有的地方用“D:\Phpask”,Apache配置一般用正斜杠(/)或转义后的反斜杠,MySQL配置里习惯用反斜杠。替换时先把正反斜杠的两种形式都搜一遍,或者统一改成一种风格后再替换。
第二,不要盲目全部替换。 有些配置项,比如注释文字里出现的路径历史记录,替换了也无妨;但有些特殊场景下路径是不应该改的,比如日志文件位置如果用了相对路径,就不要画蛇添足去改。我的经验是:替换前先全局搜索一次“Phpask”关键词,看看有哪些路径出现,心里有个数,再动手。
第三,替换后做一个二次核对。 全局搜索一下旧路径关键词(比如D:\Phpask),确认没有遗漏。这一步虽然机械,但极其有效,能够拦截90%的路径类启动错误。
3.3 服务注册与前台启动验证
路径改完之后,先不要急着注册Windows服务。更稳妥的做法是用前台方式启动服务验证配置,确认无误后,再正式注册服务。
前台启动Apache验证配置,需要打开命令行,进入apache\bin目录:
bash复制cd E:\Phpask\apache\bin
# 检查配置文件语法(推荐)
httpd.exe -t
# 前台启动,便于看到报错信息
httpd.exe
输入httpd.exe -t之后,如果配置正确,会输出Syntax OK;如果路径有问题,会直接打印出错的行号和具体配置项。这个检查过程比直接启动服务后看错误日志要直观得多。
MySQL前台启动验证类似。进入mysql\bin目录:
bash复制cd E:\Phpask\mysql\bin
# 前台模式启动MySQL(Windows下输出错误信息后退出)
mysqld --console
如果MySQL配置和数据目录没问题,这个命令会保持前台运行,不会退出。看到命令行界面长时间无报错停留在那里,基本就说明MySQL能正常启动。此时再开另一个命令行窗口尝试登录MySQL,确认能正常访问。
如果前台验证都通过,再注册Windows服务:
bash复制# 注册Apache服务
cd E:\Phpask\apache\bin
httpd.exe -k install -n "phpask_apache"
# 注册MySQL服务
cd E:\Phpask\mysql\bin
mysqld --install "phpask_mysql"
提示:服务名称可以自行定义,但建议与你习惯的管理方式一致。如果之前是bat方式运行,不注册服务也可以,但需要修改start.bat/stop.bat里的绝对路径,保持脚本可正常运行。
3.4 逐一验证站点、数据库、面板
服务启动成功不代表迁移完成,还要做一轮系统性的功能验证。我习惯按从底到顶的顺序验证:
- MySQL登录验证:使用mysql -u root -p登录,执行
show databases;,确认所有业务库都在; - PHP解析验证:在站点根目录放一个phpinfo.php文件,通过浏览器访问,确认PHP解析正常,关键扩展(mysqli、pdo_mysql、redis等)都已启用;
- 站点访问验证:逐个访问虚拟主机配置的域名和端口,确认页面能打开,CSS、图片等静态资源正常加载;
- 数据库连接验证:打开一个带数据库操作的页面,确认业务能正常读写数据,这一步能同时验证Web端和MySQL之间的联动;
- phpMyAdmin验证:通过浏览器访问管理面板,确认数据库管理工具可用;
- Phpask管理面板验证:登录面板,确认能识别Phpask安装路径、服务状态正常。
每一轮验证通过后,再做下一个,这样任何一环出现问题,能立刻定位是环境问题还是业务配置问题。
4. 迁移后的故障排查:我遇到的五个典型问题
4.1 Apache启动即崩溃,httpd -t 提示路径不存在
这是我迁移时遇到最多的情况,基本上每次换路径迁移都会碰到。现象是:启动Apache服务时,瞬间启动失败,Windows事件查看器里能看到错误日志,但信息不够具体。这时候一定要用命令行排查:
bash复制cd E:\Phpask\apache\bin
httpd.exe -t
如果配置文件里某个路径不存在,输出会直接提示类似:
text复制Syntax error on line 123 of E:/Phpask/apache/conf/httpd.conf:
DocumentRoot path 'E:/Phpask/www' does not exist
我遇到的情况是,错误提示里显示的是E:/Phpask/www不存在,但实际目录存在。原因是我只替换了部分配置文件的路径,另有一处自定义配置文件中还写的是旧路径D:\Phpask\www。因为Apache在加载时是按顺序读多个配置文件的,任何一个文件出错都会整体失败。
排查思路是:全局搜索整个conf目录下所有配置文件中是否还有旧路径关键词。我在apache\conf和apache\conf\extra两个目录下逐个查找,最终在一个备份的虚拟主机配置文件里找到了残留的旧路径,删除或更新后Apache正常启动。
这个问题的核心教训是:Apache的配置不是只集中在httpd.conf里,虚拟主机配置文件、模块加载配置文件都可能包含绝对路径。 排查时不要偷懒只查主配置。
4.2 MySQL服务启动失败,错误日志指向datadir
MySQL迁移启动失败的概率比Apache更高,因为数据文件的问题更隐蔽。我在一次迁移中遇到的情况是:MySQL服务启动后立即停止,错误日志(在mysql\data目录下的*.err文件)中提示类似:
text复制[ERROR] InnoDB: Cannot open datafile './ibdata1'
[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
乍一看以为是数据文件损坏,但经过排查,真正的根因是my.ini中datadir配置路径没有改。当时配置文件里写的是D:\Phpask\mysql\data,而实际目录已经变成了E:\Phpask\mysql\data,MySQL启动时找不到正确数据目录,自然报错。
排查此类问题有两个关键步骤:
- 第一,打开mysql\data目录下最新的.err日志文件,看具体的错误定位;
- 第二,打开my.ini,检查basedir和datadir两个配置项是否指向新路径。
修复my.ini中的路径后,再执行mysqld --console前台启动,很快就恢复正常了。
另外还有一种情况需要特别警惕:Windows防火墙或杀毒软件拦截MySQL进程。前台启动MySQL时,如果提示无法创建socket或监听端口被拒绝,要检查防火墙是否放行mysql.exe。
4.3 端口被占用,网站和数据库都连不上
这个问题的典型表现是:Apache服务启动后,立即报错“无法绑定80端口”;或者MySQL启动时提示“3306端口被占用”。在目标机器上,这个概率不低,尤其是开发机上可能已经装了Nginx、IIS、其他版本的MySQL或SQL Server。
排查端口占用使用以下命令:
bash复制# 查看谁占用了80端口
netstat -ano | findstr :80
# 查看谁占用了3306端口
netstat -ano | findstr :3306
输出结果最后一列是进程PID,再用任务管理器找到对应进程,确认占用来源。
处理方案有两种思路。方案A:停掉占用端口的进程,比如关掉IIS;方案B:修改Phpask的端口配置。对于Web服务端口,修改Apache的Listen配置,以及虚拟主机里的<VirtualHost *:80>对应端口;对于MySQL端口,修改my.ini里的port参数,同时注意后续所有业务代码里的数据库连接串都要同步修改。
从实际操作体验来说,如果目标机器上已经有其他Web服务在正常运行,不建议强行停掉它们顶替端口——很容易影响其他线上项目。改Phpask端口是更稳妥的选择。
4.4 站点能打开但中文乱码,数据库读出来全是问号
这种问题经常发生在迁移后第一轮业务验证中。页面加载正常,但数据库内容中文字符显示为乱码或问号。很多人第一反应是业务代码问题,但如果是迁移前正常、迁移后才出现的乱码,大概率是MySQL字符集配置没有迁移或配置不一致。
排查链路是这样的:先看MySQL当前字符集配置:
sql复制SHOW VARIABLES LIKE 'character_set%';
如果输出中的character_set_server和character_set_database与你源机器上的配置不一致,问题就出在这里。修复方式是在my.ini的[mysqld]段中显式指定字符集:
ini复制[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
修改后重启MySQL服务,再验证数据库读取。如果还是乱码,则需要对已存在的数据表执行字符集转换,这种情况一般发生在源数据库本身使用了非标准字符集,迁移后连接字符串里的字符集参数不一致导致的。建议排查时把连接串里的charset参数与数据库实际字符集对齐。
还有一个容易忽略的细节:Apache或Nginx配置里如果没有指定默认字符集,页面响应头里可能出现编码声明与数据库不一致。在httpd.conf中增加AddDefaultCharset UTF-8(或根据站点需要设置为gbk),可以解决大部分页面乱码问题。
4.5 数据库能连上,但Phpask管理面板显示路径异常
面板是Phpask的“门面”,很多操作都依赖它。迁移后面板如果打不开,或者打开后提示路径错误,原因是面板程序在数据库中保存了旧安装路径。不同于配置文件,这种路径被保存在面板自己的数据表里,不会因为文件复制而自动更新。
解决办法是登录面板的数据库,找到面板配置表,把安装路径字段更新为新路径。不同版本的表名和字段名可能不同,我见过的是存在类似config或settings的表中。不熟悉数据库操作的读者,另一个简单办法是:把目标机器上对照版Phpask面板的初始配置,备份后再用初始值重新生成。
我的建议是:迁移前先记录面板的数据库连接信息和配置表结构,迁移后优先检查面板设置页显示的安装路径是否为最新。 这样遇到问题时不至于手忙脚乱。
5. 不同迁移场景怎么选策略
5.1 同版本换机器:目录整体复制最优
如果源机器和目标机器都是Windows系统,Phpask版本完全一致,或者主版本号一致,最推荐的策略就是本文第3章描述的“整体复制+路径替换”。这个方案速度快、配置完整、数据不丢,整个过程通常30分钟到1小时。
这个场景下最需要注意的是目标机器上不要预先安装同一端口号的Web服务或数据库,否则端口冲突会让启动验证环节多花不少时间。我建议在目标机器上先停掉可能冲突的服务,等Phpask验证完毕后再按需恢复。
5.2 跨版本升级迁移:搭新环境,再导入数据
有些时候迁移的“目标”不是新机器,而是新版Phpask。比如从老版本Phpask迁移到新版Phpask,这种场景不建议直接复制整个目录,因为不同版本之间的目录结构、配置文件格式、默认参数差异较大,直接覆盖容易引发一系列兼容性问题。
正确做法是:目标机器上先安装新版Phpask,确认默认环境正常后,再进行数据迁移。数据迁移分三部分,可以复用旧环境导出:
bash复制# 旧环境导出数据库
cd D:\Phpask\mysql\bin
mysqldump -u root -p --all-databases --default-character-set=utf8mb4 > D:\backup\all_databases.sql
# 新环境导入数据库
cd E:\PhpaskNew\mysql\bin
mysql -u root -p < D:\backup\all_databases.sql
站点文件直接复制到新版Phpask的www目录下,虚拟主机配置则参照新版默认模板重新写一遍。这个方案虽然步骤多一点,但每一步都可控,不会出现旧配置里的过时指令让新版本启动失败的问题。
5.3 Windows迁移到Linux:重搭环境,而不是复制目录
我曾经见过有人试图把Windows版Phpask整个目录复制到Linux服务器上运行,这基本是行不通的。Windows版Phpask里的Apache、PHP、MySQL二进制文件都是Windows格式,Linux环境无法直接运行。跨系统迁移不能用“目录复制”思路,应该按“从零搭建”的思路来:在Linux上安装Apache/Nginx、PHP、MySQL或MariaDB,然后把站点代码和数据库逻辑备份带过去。
跨平台迁移中,数据库导出命令和上一节一样,用mysqldump逻辑导出、在新环境执行导入。要注意的是SQL文件中的表引擎、字符集设置可能需要在导入前调整,比如Windows下MySQL的默认表引擎可能配置为InnoDB,Linux下也需同样配置,保证一致。
这个场景我需要特别提醒:代码里的路径分隔符、大小写敏感问题也要一并处理。Windows文件系统不区分大小写,Linux严格区分,迁移后可能出现图片加载失败、类文件引入失败等问题。
5.4 只迁移单个站点,也可以不用全量复制
有些情况下,你不需要迁移整个Phpask环境,只是要把其中一个站点从一台机器搬到另一台已经装好Phpask的机器上。这时候策略更轻量,只需要做三件事:
- 复制站点目录:将源机器上该站点的目录完整复制到目标机器上对应www目录下;
- 导出并导入该站点数据库:用mysqldump导出该站点对应的数据库,再到目标机器上导入;
- 配置虚拟主机:在目标机器的Apache虚拟主机配置文件中,新增该站点的虚拟主机规则。
这样做的好处是不影响目标机器上已有的其他环境。唯一要注意的是,站点代码中硬编码的数据库连接配置(通常是config.php、.env文件),里面的主机地址、数据库名、密码需要按目标机器的MySQL配置做相应修改。
这种单站点迁移的验证方式更明确,直接访问目标机器上该站点的地址,把功能流程走一遍即可。
6. 我的迁移经验总结与一个实用技巧
Phpask迁移这件事,做多了会发现它并没有想象中那么复杂,真正决定成败的往往是最基础的几步:停服务再复制、配置路径改干净、逐个验证功能。我在多次迁移后养成一个习惯——每次迁移前先把数据库逻辑备份做出来,并且把备份文件放在Phpask根目录之外。这不是因为物理文件不可靠,而是因为物理文件的一致性验证困难,逻辑备份给了自己一个兜底。前面提到的那些故障案例,除了端口冲突之外,其实都可以通过这个备份快速恢复。
最后分享一个小技巧,迁移完成后,我会在Phpask根目录里新建一个名为env_info的文本文件,记录当前环境的版本号、端口号、MySQL root密码、服务名称、站点列表、数据库列表。这个文件不参与业务运行,但下次再迁移、或者半年后自己忘了环境怎么配的,打开这个文件一眼就能看明白。环境管理这件事,最贵的不是迁移本身,而是排查“为什么忘了当初怎么配的”所花的时间。提前留好文档,是省时间最有效的方式。
