很早之前便购买了阿里云的ECS服务器,也在上面搭建过自己的网站,但是后来由于自己技术有限经常会遇到很多问题便又将网站搬迁到了虚拟主机上,想来服务器闲着也是闲着,决定用它搭建一个测试站,测试程序的同时更多地了解服务器方面的知识以备日后所需。虽然是测试站点,上面也须有些东西以方便查看效果,于是决定将本站迄今为止的内容迁移过去,同时记录下迁移的过程希望能够帮助到需要进行网站迁移的朋友。

网站数据库备份

网站迁移的实质其实就是将网站的数据信息,网页文件等迁移至一个新的地方。所以说在网站迁移之前我们需要将原网站的数据库信息、网站的网页文件及媒体文件等与网站相关的一切内容进行备份处理并下载或转存到新服务器上。

阿里云虚拟主机的后台控制面板提供数据备份与恢复的功能,我们可以通过这里将整站的数据进行备份。登录阿里云并进入虚拟主机管理控制台,点击“工具&服务/备份恢复/备份站点”开始备份网站数据。

将网页文件及MySQL数据库两项全部勾选上,然后填写当前备份的备注信息,点击确定按钮后既可以开始备份网站。根据网站的大小不同备份的时间有所不同,大家只要耐心等待网站备份完成即可。

备份完成后我们分别将网站的数据库文件及网页文件下载下来以备后用。除了手动备份,阿里云虚拟主机也会自动备份最近三天的网站数据信息,如果你不想手动备份也可以直接提取并下载自动备份的内容亦可。

 

配置服务器环境

云服务器类似于一台全新的计算机。要将网站搬迁到新的服务器上我们需要对新服务器配置运行环境,这里我是使用的阿里云推荐的一键安装包安装的服务器环境,具体流程大家可参照阿里云官方文档中 部署 Web 环境 的方式进行部署,同时也可参照我之前写过的 “阿里云Linux一键安装web环境”安装WordPress删除PHPWind方法 的这篇文章自定义网站的迁移位置。这里我是将数据库管理程序 phpmyadmin 移至 www 文件夹下了,并且在 www 文件夹下新建了个名为 wordpress 的文件夹用于存放此次网站迁移的网页文件。

网站迁移开始

通过 Xftp 上传网页文件

我们将网站数据库备份中下载下来的网站备份文件解压并通过 Xftp 工具上传至“/alidata/www/wordpress”文件夹中,注意从虚拟主机下载下来的文件加压后文件夹为网站根目录的 htdocs 文件夹,我们只需要上传该文件夹内的内容至服务器 wordpress 文件夹中即可。

上传完网站文件,我们还需要去 /alidata/server/httpd-2.4.10/conf/vhosts 里配置一下服务器中虚拟主机的信息,这里我新建了一个 wordpress.conf 文件,并在其中添加如下代码然后直接丢在 vhosts 文件夹中即可。这里我是这样理解的,每一个服务器上可以配置多个网站,而每一个网站实现的机理就是通过虚拟主机,vhosts 文件夹中每一个文件(个人习惯独立建立对应文件,其实也可以把内容写在同一个文件中)指向 /alidata/www 中的每一个独立网站的文件夹来实现不同域名解析到不同网站上。

<DirectoryMatch "/alidata/www/wordpress/(attachment|html|data)">
<Files ~ ".php">
Order allow,deny
Deny from all
</Files>
</DirectoryMatch>

<VirtualHost *:80>
	DocumentRoot /alidata/www/wordpress/
	ServerName test.quietguoguo.com
	ServerAlias localhost
	<Directory "/alidata/www/wordpress/">
	    Options FollowSymLinks
	    AllowOverride all
	    Order allow,deny
	    Allow from all
	</Directory>
	<IfModule mod_rewrite.c>
		RewriteEngine On
		RewriteRule ^(.*)-htm-(.*)$ .php?
		RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ /simple/index.php?
	</IfModule>
	ErrorLog "/alidata/log/httpd/wordpress-error.log"
	CustomLog "/alidata/log/httpd/wordpress.log" common
</VirtualHost>

上面代码中的 ServerName 用来设置绑定的虚拟主机域名及端口,这里我设置了一个测试域名 test.quietguoguo.com ;ServerAlias用来设置其他别名,比如你的网站需要解析多个域名就可以将其他域名填写到这里。如果想了解这两个参数的具体信息可查看官方文档:

ServerName:http://httpd.apache.org/docs/2.4/mod/core.html#servername

ServerAlias:http://httpd.apache.org/docs/2.4/mod/core.html#serveralias

配置完上述内容后我们需要重启Apache服务才可生效,正规来说可以使用 service httpd restart 命令进行重启,当然你也可以简单粗暴一点直接登录阿里云ECS服务器后台直接重启ECS服务器。

上传数据库信息

一个网站完整的迁移不仅仅是网站文件的迁移,我们还需要把网站的数据库文件一同进行迁移。通过一键安装包安装的服务器环境使用 phpMyAdmin 进行数据库管理,我们需要登录这个数据库进行数据表的创建并导入原网站的数据库备份文件。

登录 phpMyAdmin 并点击左侧的 New 即可创建一个新的数据库,数据库名自定义,我这里设置为 QuietGuoGuoTest 这个名要记住后面会用到,编码方式选择 utf8_general_ci 即可。

创建完数据库后我们选中新创建的数据库然后点击导入选项,设置好上传的文件、字符集、格式等信息即可开始导入原网站的数据表信息。

由于网站迁移可能会出现很多意想不到的问题,这里建议大家网站迁移时保留原网站正常访问并测试迁移后的网站一段时间后再完全移除原网站。上传完成后我们找打数据表的 wp_options 这个数据表并定位到 siteurl 与 home 这两项,修改其中的地址分别为测试域名的地址,这里我将其修改为 http://test.quietguoguo.com/wordpress 与 http://test.quietguoguo.com/ (我习惯于将WordPress安装在站点的子目录wordpress下方便于日后管理)

将数据库信息导入新数据库后,我们需要修改 wp-config.php 文件中的数据库配置迁移后的网站才能正常调取网页信息。一般只需要修改下面几项就可以了,这里推荐大家看一下我之前写的这篇文章方便理解>>> WordPress基础配置文件wp-config.php详解 。

/** WordPress数据库的名称 */
define('DB_NAME', '你的数据库名比如我上面设置的QuietGuoGuoTest');
/** MySQL数据库用户名 */
define('DB_USER', '登录PHPMyAdmin的用户名');
/** MySQL数据库密码 */
define('DB_PASSWORD', '登录PHPMyAdmin的密码');
/** MySQL主机 */
define('DB_HOST', 'localhost');
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');
/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');

设置域名解析

完成上述步骤后我们还需要在 DNS 服务商处设置域名解析,将域名解析到服务器的 IP 地址上,然后服务器会根据我们的域名通过上面设置的 vhost 文件夹中的文件信息内容确定具体要将域名解析到那个文件夹上。这里我们是要建立一个测试站点,并且对于新迁移的网站博主也建议新建一个测试域名先解析上测试一段时间测试没什么问题后在将域名解析过来。这里我是将 test.quietguoguo.com 解析过来的,稍等一会儿等解析生效后通过访问该域名即可看到下面这种效果。

至此,网站完整迁移完毕。如果你还有什么不理解的地方欢迎留言哦~~~