WordPress搬家小记

2013-09-29

由于原来的VPS在新加坡,面对国内日益缓慢的访问速度,于是在昨天购买了美帝的VPS,测试了下移动的速度非常快,联通的一般,电信的比较烂,好在我用了安全宝加速,网站电信用户的访问速度不至于太慢,于是昨晚折腾了一宿,终于搬家完毕,本次搬家最小程度的做到了对原来数据的改动,现在做个总结。
<h2>配置LAMP</h2>
新购买的VPS默认是没有LAMP环境的,有点VPS服务商可以一键启用,我的没有,所以只能自己搭建,我的系统是 CentOS 6,仅作参考。
<h3>1. 安装和启动Apache</h3>
打开终端输入以下命令开始自动安装Apache,按照提示输入“Y”,确认

sudo yum install httpd
安装完成后,启动Apache服务
sudo service httpd start
<h3>2.安装MySQL</h3> 同样在终端使用yum安装MySQL服务
sudo yum install mysql-server
安装完成后,启动MySQL服务
sudo service mysqld start
启动服务以后,可以配置MySQL的root用户密码等其他选项
sudo /usr/bin/mysql_secure_installation
会提示输入密码,初次安装没有密码,直接Enter进入,后面按照提示设置,一般会出现以下几种提示:
Remove anonymous users? [Y/n] y ... Success! Disallow root login remotely? [Y/n] y ... Success! Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL!

<h3>3.安装PHP</h3>
继续在终端中,输入以下命令开始安装PHP

sudo yum install php php-mysql
后面带的是PHP Modules参数,上面的命令表示:安装PHP同时安装PHP连接MySQL组件 <h3>4.设置服务自启动</h3> 设置httpd和mysqld随服务自启动
sudo chkconfig httpd on sudo chkconfig mysqld on

最后再重启所有服务

sudo service httpd restart sudo service mysqld restart

到此,LAMP全部安装完成
<h2>传递数据</h2>
<h3>1.打包原站数据</h3>
使用ssh登录原站,然后使用tar打包站点根目录下所有数据

tar -czvf data.tar.gz *
暂时放在原站根目录,以便新站直接wget到数据,但是要注意数据安全,文件名称最好是一个随机的没有规则的名字 <h3>2.导出数据库数据</h3> 使用以下命令导出WordPress数据库
mysqldump -u 数据库用户名  -p 数据库名 > 备份文件名.sql
输入上面的命令之后,提示你输入数据库密码,输入之后就会把你的数据库备份到一个文件中,将导出的备份数据文件也放到站点根目录,导出的数据也同样注意数据安全 <h3>3.新站接收数据</h3> 使用ssh登录新站,使用wget获取原站数据和数据库数据
wget http://你的域名/data.tar.gz wget http://你的域名/备份文件名.sql

以上操作最好也是在新站的根目录,那样就不需要在移动文件
<h3>4.删除原站数据</h3>
操作完成删除原站根目录的data数据和备份sql文件
<h2>恢复数据</h2>
<h3>1.恢复网站数据</h3>
新站现在已经获得了data.tar.gz 和 备份文件名.sql 数据,这时候就要恢复原站数据到新站根目录,使用tar再解压data.tar.gz

tar -xzvf data.tar.gz
如果命令正确,这时候在根目录就会完全恢复原站的网站数据 <h3>2.创建新用户和新数据库</h3> 虽然网站数据恢复了, 但还没有数据库数据,先使用mysql创建和原网站同名的数据库和用户,原站的数据库名称,数据库用户名,数据库密码都可以在网站根目录wp_config.php 中找到
/* The name of the database for WordPress / define('DB_NAME', 'wordpress'); /* MySQL database username / define('DB_USER', 'wordpress'); /* MySQL database password / define('DB_PASSWORD', 'password'); /* MySQL hostname / define('DB_HOST', 'localhost'); /* Database Charset to use in creating database tables. / define('DB_CHARSET', 'utf8'); /* The Database Collate type. Don't change this if in doubt. / define('DB_COLLATE', '');

登录MySQL

mysql -u dbuser -p
按照提示输入密码即可进入 使用 mysql 创建新的网站数据库,建议和原站数据库同名
mysql > create database wordpress;
使用 mysql 创建新用户,建议和原站数据库用户同名,最小程度减少对原站的改动
mysql > CREATE USER wordpress IDENTIFIED BY 'password';
给新用户授权
mysql > GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY 'password';
每当调整权限后,通常需要执行以下语句刷新权限:
mysql > FLUSH PRIVILEGES;
再离开mysql
mysql > exit
<h3>3.恢复数据库数据</h3> 恢复数据库这个地方有好几种方式,我用了第一种方式发现没有起作用,后来用了另一种方式,其中原因我不太清楚为什么,我来分别介绍下 第一种方式:这个是大多数网站推荐的方式
mysqldump -u 数据库用户名 -p 数据库名 < 备份文件名.sql
按照其他网站的说法这时候,就应该导入成功,进入数据库查看数据也能发现数据,但是我没有成功,我使用的是下面的方式 第二种方式:使用mysql语句导入数据库 同样先登录MySQL数据库
mysql -u dbuser -p
按照提示输入密码即可进入
mysql > use wordpress;
使用我们之前创建的数据库,然后开始执行导入语句
mysql > source 备份文件名.sql;
等待执行完成,然后你再查看数据库,这时候应该就已经有数据了 <h3>4.删除新站根目录数据</h3> 操作完成同样需要删除新站根目录的data数据和备份sql文件 <h2>切换域名解析</h2> 这时候,理论上通过IP地址就可以访问了,而网站内的域名指向还没有改,所以通过域名访问的还是原站,所以登录域名提供商网站,修改域名解析 <h2>注意事项</h2> 在搬家过程中,我遇到几个小问题:第一个就是换了新的服务器以后,新的Apache并没有原来服务器中的哪些配置,所以需要手动调整Apache配置,这个是必须要注意的,否则有可能会出现文章或者分类页面不能打开的局面;第二个就是原来的二级域名跳转的配置也需要重新配置,否则也无法生效。   <h2>参考资料</h2> https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6 (LAMP的安装) http://blog.wpjam.com/article/ssh-wordpress/  (原文中有不少错误,仅供参考) http://www.imhdr.com/1158/ (MySQL相关的导入导出) http://www.libuchao.com/2013/04/06/mysql-user-and-privilege (创建用户和授权)

无回应:“WordPress搬家小记”

发表评论

电子邮件地址不会被公开。 必填项已用*标注