在亚马逊AWS服务器上搭建WordPress站点的基本教程
aws
aws (amazon web service)是亚马逊提供的云服务。它是当今最强大的云平台之一。近几年获得成功的多家网站,比如pinterest, foursquare, airbnb, spotify,都架设于该平台。aws的影响力可见一斑。
为了使用亚马逊云,需要有一个亚马逊账户。你可以使用已有的亚马逊购物账户,也可以重新注册。前往亚马逊aws官网:
上面的"my account / console"菜单中,我的账户(my account)主要包括各种账户和账单信息。管理面板(amazon management console)用于设置aws的云服务。
根据提示设置账户。你需要输入信用卡信息,并有一个电话用于验证。aws有一个免费的计划可以选择,可以先拿来试用:
上面的"my account / console"菜单中,我的账户(my account)主要包括各种账户和账单信息。管理面板(amazon management console)用于设置aws的云服务。
根据提示设置账户。你需要输入信用卡信息,并有一个电话用于验证。aws有一个免费的计划可以选择,可以先拿来试用:
注册完成后,依然从"my account / console"菜单,进入管理面板(amazon management console)。aws的大部分云服务都列在这里,包括我们后面要使用的ec2。
ec2实例(instance)
ec2(amazon elastic compute cloud)是亚马逊推出的“弹性云”服务。一个ec2的实例(instance)提供了一个虚拟主机。你可以像使用一台电脑或者一台服务器那样,使用这个虚拟主机。另一方面,ec2会根据你的实际消耗的计费,避免了主机的闲置耗费。随着网站的增长,ec2可以很容易的拓展,支持更多的来访。
对于新注册的用户,可以免费创建一个ec2实例
每月750小时主机时间
30g存储空间
2百万次io
1gb闪存
15gb带宽
收费细节可参考aws计价。
我们将创建一个ec2实例,并在该虚拟主机上架设wordpress。从管理面板进入ec2页面:
这个页面中,有四个标出的选项:
右上角的singapore。你可以根据用户的主要所在地,设置服务器地址。
左侧的instances。列出所有已经创建的实例。你可以进一步设置。
左侧的security groups。用于控制不同ip地址对某个实例的访问权限。
中间的launch instance按钮,新建实例
新建实例,并跟随指示设置。我选择的是:
操作系统为ubuntu 13.10, 64位
t1,micro的实例类型 (instance type),这是可以免费使用的实例类型。
使用默认的用户组 (security group),允许所有ip (0.0.0.0/0)访问22端口,即ssh端口。
创建新的键值对(key pair),该键值对用于ssh访问的加密。将生成的.pem文件保存为vamei.pem
启动实例
在ec2页面的菜单中选择instances,可以查看已经创建的所有实例及其相关属性。左键点击某个实例,可以从下面的窗口看到相关的信息,比如实例的域名和ip地址:
访问权限
这里主要说明security groups的访问权限设置。我们刚才在创建实例中,允许所有的ip访问ssh端口。由于我们的目的是架设一个wordpress的web站点,我们还需要开放80和3389端口。
在ec2页面选择security groups,选择实例所属的用户组。在下方的窗口中,选择inbound标签页,并增加规则,开放80和3389端口给所有人。
另一方面,我们的ssh端口依然是所有人都可以访问。这并不安全。可以增加关于22号端口的规则(rule),限定可访问的ip范围。
apply rule changes之后,这些规则就会生效。
你可以在security groups页面下,创建多个群组。回到instances页面中,右键点击相应实例,设置群组,让一个实例归属于多个群组。
wordpress建站
现在多个方面都已经准备好。使用保存的vamei.pem密钥,利用ssh登录到虚拟主机。在linux和mac下,可以直接使用ssh命令:
ssh -i vamei.pem ubuntu@ec2-54-254-225-107.ap-southeast-1.compute.amazonaws.com
对于ubuntu系统来说,用户名为ubuntu。对于amazon linux系统,用户名ec2-user。对于rhel5, 用户名可能是root,也可能是ec2-user。
在windows下,可以使用ssh软件登录,比如putty。
可参考使用ssh连接云。登录之后,你可以像使用单机linux那样使用亚马逊云。
架设wordpress博客的步骤,参考我上一篇文章wordpress快速建站。架设成功之后,可以根据实例的域名或者ip访问。我的实例的域名是http://ec2-54-254-225-107.ap-southeast-1.compute.amazonaws.com/
*** 图片上传的权限问题:
上传多媒体图片时,有可能出现无权建立文件夹的提示。这时,要登陆ec2,修改相应的母文件夹wp-content的权限,让apache的用户名拥有写入权限。apache服务器的用户名可以使用下面命令找到:
apache2ctl -s
我的apache的用户名为www-data,所在组为www-data。我的方式是将文件夹归属为www-data组,并让归属组拥有写入权限。
域名设置
aws提供的域名是一个次级域名。我想申请一个正常的,易于人记忆的域名,比如vamei.me。到godaddy上搜索,这个域名还没有人注册,申请账户并注册该域名。
(需要信用卡,每年支付十几美元的费用)
域名注册之后,需要将已经创建的实例和该域名连接。登录godaddy的账户,访问自己的账户。所有注册的域名都在“domain”一栏中列出。
点击vamei.me一行的launch按钮,进入vamei.me域名的详情页面。选择修改dns zone file。将一开始的a host的ip地址,改为实例的ip地址:
这一修改可能需要一些时间才能生效。生效后,可以通过vamei.me访问我的博客了。
上面的域名设置成功之后,wordpress可以通过两个域名访问,即原有的aws域名和godaddy注册的域名。如果你尝试点击博客的不同页面,会发现这些链接依然使用的是旧的域名。我们可以在wordpress中修改。
访问自己的博客,并登录。在dashboard -> setting -> general中,将wordpress address和site address两栏,修改为新的域名:
在修改过程中,可能不小心输错,导致无法再次登录博客。这种情况下,可以根据wordpress关于修改站点url的指导处理。
总结
aws云让曾经复杂而专业的服务器架设和管理变得简单。正如上面看到的,借用aws云和wordpress这样的神器,程序员可以十分钟的时间搞定一个网站,简单而迅速。
aws云是一个虚拟主机,当然不止架设博客这么简单的功能。你可以在aws云上设置其它语言的web框架,或者用作代理服务器,或者手机app的后端,或者进行数据的分析和运算。总之,创造变得*。
上一篇: 我是一个公主