一直以来本博客都是挂靠在朋友的国内主机,结果去年底被告知需要备案,还好@heysql再次收留了我的博客,不过@heysql的主机及其不靠谱,基本每天都要重启主机,所以又萌生了迁移主机的想法,最近终于腾出时间迁移博客了…顺便总结下自己的一些经验
Introduction
-
建议Region选择为Tokyo或者Singapore机房,有利于国内用户访问
-
Launch instances建议直接使用Community AMIs,大大节省环境部署安装时间
-
Elastic IP不绑定EC2主机,闲置,直接使用,都是要收费的…换言之,绑定不使用不收费
-
预装bitnami的AMI镜像主机,SSH的用户名是bitnami,而不是常见的ec2-user/ubuntu
Register EC2
参照网上泛滥成灾的各种注册教程,还是比较简单的注册aws.amazon.com帐号。
Choose Region
首先在左上角的Region选择一个速度较快的机房,我测试了US East California/Singapore/Tokyo的速度,相对而言感觉东京的机房速度还是快点,所以就选它了…值得一提的是EC2所有区域的主机不是互通的,Instance也是相对独立的。
Launch instances
网上搜到的大部分教程都是从“Quick Start”开始的,其实这个一点都不Quick,建议大家直接选择“Community AMIs”,这是网友上传已经部署环境的镜像文件,比如我需要的博客程序,直接搜索“wordpress”,Viewing选择“EBS Images”,然后挑一个wordpress版本最新的即可,比如我选择的就是ami-f68c3df7这个镜像文件…然后在Instance Details里面一定要记得选择instance Type: Micro (t1.micro,613MB),这个是免费一年的主机,其他都是要收费的,其他选项都默认,需要注意的是Configure Firewall一定要自己建立一个规则,开启SSH端口22,http端口80,SSL端口443,PPTP VPN端口1723….最后确认下果断Launch
Elastic IPs
每一个Instance都会获得一个Public DNS,譬如本博客ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com,但是很多网友测试Instance重启后这个Publick DNS会随机改变,这就需要我们使用Elastic IPs绑定一个静态IP,这样Instance重启后也不会改变Publick DNS。值得一提的是Elastic IPs只能绑定再EC2的主机上,如果不绑定或移作它用都会被Amazon惩罚性的收费。
Visit Web Page
由于我们选择的镜像文件是预装了bitnami,它非常贴心的默认安装了Wordpress,Apache,Mysql,Phpmyadmin等常用环境…直接使用Public DNS就能访问到默认的主页,加一个/wordpress/后缀就能看到预装的wordpress…是不是很贴心啊:)剩下的就是迁移数据了…不过在此之前我们还是绑定下域名了,看着那一长串的Public DNS太闹心了…
CNAME
besteric.com注册于Godaddy,所以我们还是去他的后台操作下吧,这里要注意的是我们建议直接使用CNAME绑定Publick DNS,而不是将A绑定到Elastic IP,因为Elastic IP是按需收费的,更关键的是同在EC2云里的主机使用Public DNS访问你的主机时,会直接得到Amazon分配给你的内网地址进行通讯,而不需要经过公网再绕回EC2的云里,网上有同学已经详细分析过这个问题了。但是如果不绑定A的话besteric.com就无法访问了,这个暂时想到的解决办法是绑定到第三方免费域名,再解析一次跳转回来….
后续的很多操作都需要SSH到EC2主机上进行命令行操作,简单介绍下Mac如何SSH,再终端使用命令“ssh -i /Users/besteric/.ssh/blogkey.pem bitnami@XX-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com”,其中密钥文件pem路径请自行选择,值得注意的是bitnami镜像的登录名是bitnami,而不是ec2上面写的ec2-user,抑或是网上说的ubuntu…这个地方我折腾了最久,还好是看了文档才找到解决办法。不过bitnami这个用户的权限并不是root权限,如何使用root权限请参照此文。
我也是第一次使用这个Mysql的数据库管理工具,不过我们还是先看看bitnami对于Phpmyadmin的说明,默认情况下只能再localhost访问Phpmyadmin,所以需要按照这个指示修改,在此不再赘述…修改完后访问路径是you-domain/phpmyadmin/,第一次登录需要网页认证,用户名和密码是administrator/bitnami,进去以后需要输入Mysql的用户名和密码,默认是root/bitnami…默认的wordpress数据库名是bitnami_wordpress,选择以后直接将你的sql后缀文件导入即可…我在这里没有遇到什么问题就不多说了。
Wordpress
首先使用FTP将备份的wordpress文件上传至/opt/bitnami/apps/wordpress/htdocs/ 文件夹下,Mac用户推荐使用Transmit,选择SFTP方式链接,密码直接选择PEM密钥文件,轻松搞定…然后尝试访问you-domain/wordpress/是否正常,如果遇到错误“Error establishing a database connection!”,那肯定就是数据库错误了,有几种可能:1 数据库损坏,需要修复,尝试下这个方法 2 数据库用户名/密码错误,需要修改/opt/bitnami/apps/wordpress/htdocs/wp-config.php 文件,至此解决上述问题终于可以看到我们可爱可亲的博客界面了…
Virtual Host
由于本人及其懒,所以想besteric.com直接链接到blog,而不是besteric.com/wordpress/这种笨挫逊的方式,这就需要用到Apache虚拟映射了,具体的请参考这里,修改/opt/bitnami/apache2/conf/httpd.conf 的时候最好顺手将AllowOverride None全局替换为AllowOverride All,为了后续操作.htacces文件提供方便….一切就绪后就可以直接访问besteric.com映射到blog了。
至此我们顺利的将博客迁移至Amazon EC2主机上,如果你还想利用它打探下处于水生火热的帝国主义国家的秘密的话,欢迎使用PPTP VPN教程
参考资料(太多了,简单列下我收藏的):