DO 博客迁移 - aispin/mamboer.github.io GitHub Wiki
http://www.androiddev.net/migrate-from-bluehost-to-digitalocean/
最近,把自己的几个网站从Bluehost上迁移到了Digital Ocean的VPS上,因为涉及 页面文件,数据库, WordPress等几个方面的迁移,写个日志记录下来整个过程,如果以后再次迁移的话,也是个很好参考。
进入Digital Ocean 网站,注册后,会进入后台控制台。DigitalOcean的虚拟机被称为 Droplet, 点击”Create”, 选择plan, location, OS等。我选的是最便宜的512M的plan, San Francisco的机房, CentOS 32bit的操作系统 。 需要注意的是:目前 DigitalOcean的自动备份只能在创建Droplet的时候选择是否enable, 创建后就不能改动了!当然这个Backup的功能并不是免费的,需要付额外20%的费用。我个人建议一般用户应该选中那个 “Backup”的选项,让DigitalOcean给你自动进行异地备份。 当然如果你有多个服务器,并可以通过rsync, Bacula等脚本或工具自动备份到你另外的服务器上,也可以完全自己来实现 realtime的backup.
Droplet创建成功后,你会收到一封带有root用户密码的邮件。 通过SSH [email protected]登录就可以了。
登录后就是修改root的password, 增加新的sudoer, 命令基本就是这几个:
2.1 设置Swap
缺省的情况下,DigitalOcean的VPS中是没有设置swap的。
用df查看的话,可以看到整个VPS上只有一个20G的分区
用free查看的话, Swap的大小是0
设置Swap命令如下:
这时用 free 和swapon -s 就可以查看到有个1G的swap
缺省的情况下,DigitalOcean的服务器上,Apache, MySql, PHP都是没有安装的。
3.1 安装Apache
安装完毕后,在你的浏览器中输入服务器的ip地址,会出现 “Apache 2 Test page”的页面, 就算成功了
3.2 安装Mysql
安装完毕后,需要设置mysql root的密码并做相应的安全方面的设置,
这个程序会让你设置root的密码, 移除anonymous用户, 设置是否允许root远程登录, 删除test这个数据库等操作。
3.3 安装PHP
3.4 测试
在/var/www/html中新建一个test.php的文件, 内容如下
然后重启apache使刚才所有的设置生效
在自己的浏览器上输入 http://111.111.111.111/test.php, 看看显示的信息是否正确。
至此, LAMP全部安装完成。
4.1 从原网站导出Web文件和Mysql数据
用FileZilla连接Bluehost的空间, 把整个Web目录都下载到本地。
登录Bluehost的cPanel, 使用其PhpMyAdmin把数据库数据导出到本地
4.2 上传数据到新的DigitalOcean服务器
上传数据方法有: scp, ftp(vsftp), sftp, rsync等方法。
1 |
scp -r localDir [email protected]:~ |
如果使用sftp, sftp有个问题:无法传送目录,最简单的解决方法就是使用FileZilla, FileZilla 完美支持sftp (SSH协议)
所有数据都上传后,把数据移动到/var/www下面
mv mywebsite /var/www
4.2 设置并导入mysql数据
查看网站php源文件,找到相应的DbName, DbUser, Password等数据。
登录mysql:
创建新的用户, 数据库,并赋予权限
1 |
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; |
2 |
CREATE DATABASE mydb; |
3 |
GRANT ALL PRIVILEGES ON mydb.* to 'user'@'localhost'; |
导入数据:
导入数据完毕后,可以用show tables; select 语句等进行验证。
4.3 配置Apache的virtual host
因为是多个网站放在一个Server上,下一步重点就是配置Apache,尤其是VirtualHost
vhosts的内容基本如下:(注意,最好是把virtual host的配置放到/etc/httpd/conf.d中的一个单独的文件中,不要放在主 http.conf中)
1 |
NameVirtualHost *:80 |
2 |
3 |
<VirtualHost *:80> |
4 |
ServerAdmin [email protected]
|
5 |
DocumentRoot /var/www/aaa
|
6 |
ServerName www.aaa.com
|
7 |
ServerAlias aaaa.com
|
8 |
ErrorLog /var/www/aaa/error_log
|
9 |
CustomLog /var/www/aaa/access_log common
|
10 |
</VirtualHost> |
11 |
12 |
<VirtualHost *:80> |
13 |
DocumentRoot /var/www/bbb
|
14 |
ServerName www.bbb.com
|
15 |
ServerAlias bbbe.com
|
16 |
ErrorLog /var/www/bbb/bbb_error_log
|
17 |
CustomLog /var/www/bbb/bbb_access_log common
|
18 |
</VirtualHost> |
关于CentOS 服务器的安全等问题,在下一篇文章中再写吧。