Windows Server网站数据迁移

由于一台服务器(A)下架,所以需要将之前的网站转移到另外一台服务器(B)当中。整个项目为PHP的项目,采用了Zkeys的集成化工具(PHP,MySQL,PhpMyAdmin)。

备份MySQL数据库文件

在MySQL中直接拷贝

在A中拷贝原有数据库文件,一般情况,MySQL的数据文件会在

mysql安装目录/data/对应的数据库名称

如果没有找到安装目录,则可以通过进入MySQL命令行的方式获取

mysql -u用户名 -p密码

进入mysql命令行控制台,输入下面语句即可查看

show global variables like ‘%datadir%’;

将数据库文件(一般为frm,MYD,MYI格式),拷贝B服务器中对应的数据库中(别忘了先在B中新建同名的服务器,然后再拷贝)。

通过mysqldump工具备份数据库文件(推荐)

比较推荐使用这种方式,方便快捷

mysqldump -u用户名 -p密码 数据库名 > 备份位置/文件名.sql

然后在B机器中,进入mysql的命令行执行以下操作

mysql -u用户名 -p密码
查看当前数据库所有DB

mysql> show databases;
如果没有对应的DB,则自己可以新建一个
mysql> create database xxx;
切换到当前DB
mysql> use xxx;
执行上面的sql文件,进行恢复
mysql> source 备份位置/文件名.sql
这样就完成了数据库的迁移。

备份网站源代码

在A中,找到对应网站的web访问目录,右键执行压缩操作。这里有一个值得注意的问题,尽量使用ZIP的方式打包,而不要使用RAR

我认为原因有下:

  • RAR不是一个通用格式,有专利,在国外也不算是很流行的一个文件交换格式。
  • ZIP是开放的压缩格式,对于跨平台支持良好,且格式透明,不容易出错

将打包好的文件,拷贝到B中的web访问目录,然后解压即可。

配置IIS

先需要在对应的网站上面添加一个网站(打开IIS-右键「网站」-「添加网站」),在这里输入网站名称以及网站Web目录

注意留意这里的权限问题

  • 测试一下目前的权限
  • 如果提示权限有问题,则需要对该网站指定一个隶属于ISS_IUSER的用户进行授权

为每个网站创建IIS用户(非常重要)

打开「计算机管理」-「本地用户和组」- 「用户」,在右侧空白出右键选择「新用户」,输入用户信息,建议采用user+网站名的方式。下方需要勾选「用户不能更改密码」和「密码永不过期」

双击刚刚新建的用户,切换到「隶属于」页,删除默认的用户,添加IIS_IUSER

当新建好这个用户后,在刚才的IIS对应的网站中,将该网站指定为这个用户连接。

设置IIS应用程序池

切换到IIS应用程序池列表,选中需要设置的应用,点击右侧「高级设置」,其中需要修改两个设置:

  • 启用32位应用程序 - True
  • 托管管道模式 - Classic

配置Web目录权限

右键选择对应网站的Web目录,切换到「安全」点击「编辑」将刚刚新建的用户添加进来,确认权限为「完全控制」。

测试

找到机器中Host所在地址

Windows : C:WindowsSystem32driversetc
Mac/Linux : /etc/hosts #注意这里需要sudo权限

打开Host,添加本地Host解析

B服务器IP 网站域名 #例如:114.114.144.144 www.baidu.com

在本地浏览器中访问网站域名,看是否正常。

以上。