在过去的10年,架设一个大型网站是一个非常艰巨的任务,那可不是非专业人士可以完成的。现在好了,亚马逊开放了他们的服务器架构,一切都改变了。 计算机硬件被移动到了云端,普通站长和开发人员都可以利用亚马逊的硬件和网络资源来运行自己的应用。在本文中,我们将把WordPress博客安装到云端。
介绍
大多数博客和小型企业站点都托管在共享主机上面,通过固定的月租费用来获得预装软件和特定功能的使用。大多数情况下,共享主机是一个完美的解决方案,但是将你的博客安装在Amazon云端有很多好处是值得我们考虑的:
- 更容易升级更新. 在Amazon云端创建一个新服务器可以在数分钟内完成。使用该服务,你的网站将有能力应付突如其来的流量爆发,比如你的博客文章被推荐到了Digg或者Reddit的首页,你可以添加更多服务器并平衡负载。
- 经济有效的大规模服务能力. 如果你的站点吸引了大量的用户,并且最终超过了主机的正常伺服能力,Amazon Web Services 将给你一个经济有效的办法来设计一个符合你的需求的网站服务架构,而你并不需要去雇佣一个完整的网络运作团队来安装和管理网络。这也是许多 Facebook开发人员选择Amazon云服务器的原因。
- 完善的安装与设置. 在运行WordPress时,这一点可能不是太重要,但如果你想使用PHP和MySQL之外的一些东西来建设你的下一个项目,则没有必要请求主机公司的帮助,你可以就像在你自己的服务器上一样安装你所需要的软件。
是否把WordPress站点放到亚马逊云端由你的博客流量决定,并且你可以根据你的实际需求来决定服务器配置。通过下面的指南,你可以了解到怎样迅速的在Amazon Cloud上设置和运行服务器。
Step 1 – 创建 Amazon Web Services 账户
在使用亚马逊云服务之前,你需要在 Amazon Web Services (AWS) 创建一个账户, 去 aws.amazon.com 点击 “Sign Up Now” 注册。
如果以前使用过Amazon.com的服务,这里可以直接使用同样的电子邮件和密码来登陆AWS,当然你也可以选择“I am a new user.”创建一个新的用户。
在注册阶段,需要输入你的联系信息和信用卡信息,以便Amazon向你收取服务的费用。创建账户是免费的,不过使用其他的服务则都是需要花钱的。
定价模型很简单 - 以服务器运行的小时为标准来收费,不过因为选项的不同,价格的计算可能比要复杂得多。当你在Amazon上运行你得站点时,在让服务器运行之前,最好仔细并重复检查价格计算,免得在月底得时候被帐单吓到。
我们的WordPress安装不会超过一个小时,在我们完成前,我们会停止所有的服务,所以完成本指南不会花我们一分钱。
Step 2 – 开启你的第一台服务器
服务器安装包括两个部分:
- 托管在亚马逊EC2(Amazon’s Elastic Computing Cloud)上面的应用服务器,用来运行Apache和PHP,将WordPress安装在上面。
- MySQL 数据库将托管在亚马逊RDS(Amazon’s Relational Database Service)。
另由一个便宜,但更麻烦的方案,你可以手动安装MySQL服务器与PHP和Apache在同一个服务器。在本指南中,我决定使用亚马逊的关系数据库服务,因为这更容易使用,并且,亚马逊会考虑数据库的备份和维护,你没有必要担心附加的安全细节问题。
现在我们开始创建我们的第一个应用服务器实例。
在 AWS Management Console 点击EC2标签, 因为是第一次使用EC2服务,你需要另外注册该服务,点击 “Sign Up For Amazon EC2″ 按钮开始:
特别步骤,Amazon需要打电话给你来验证身份。整个过程自动进行:验证码输入正确后,会被重定向到下一个页面。
在注册过程完成后,返回到管理控制台和EC2标签。你将看到下面的页面,点击 “Launch Instance” 按钮。
网页会弹出一个 Amazon Machine Images (AMIs) 的列表.
AMIs 是正在运行的计算机的快照
多数计算机都包含了操作系统和其他一个基础软件,但是你还可以根据自己的需求创建更复杂的AMIs,甚至可以包含你的完整应用。
我们选择了最基本的选项:“Basic 32-bit Amazon Linux AMI 1.0.” 点击 “Select” 进入你选择的AMI。
选择了AMI之后,下一步就是选择需要的硬件类型。根据选择的32位或64位AMI,我们会看到不同的列表,32位的AMIs提供更便宜的选项。
作为测试,我们不需要太多的内存或处理能力,因此我们开了一个微实例。选择实例类型并点击 “Continue.”
下一屏,采用默认值就好,点击 “Continue.”
当你有多个不同规则的虚拟机后,你很容易会忘记每个机器的作用,你需要用大量的时间来查找正确的服务器。因此,对服务器的命名显得非常重要,当然在本指南中我们只运行一个实例,所以名字就显得不那么重要了。
下一步,你会被问到创建一个键值对文件来安全地连接到服务器。Key 代替了用SSH连接到机器的密码。命名你的Key Pair File,点击 “Create & Download your Key Pair.” 拷贝键值对文件到一个安全的位置 (如果你使用Mac OSX或者Linux,~/.ssh 是一个好位置)。拷贝文件后,修改文件权限到400:
chmod 400 wordpress_demo.pem
如果你使用Windows,你可以使用 PuTTY for SSH. PuTTY 使用它自己的键值格式(ppk),因此你需要使用Puttygen工具转换key到ppk格式。
Key pair 创建之后,你会被要求在你的新机器上配置防火墙。默认情况下,没有人被允许连接到该机器 - 所有端口都是关闭的。我们打开了端口22(SSH)端口80(HTTP),我们能够通过SSH配置机器并且从浏览器访问博客。
继续,检查配置,如果没有发现任何不对,点 “Launch.” 完成安装
回到Dashboard,你会注意到新建实例的状态显示为 “pending,”,过几分钟后会显示为 “running.” ,这就意味着服务器已经启动并开始运行 - 你可以开始使用了。
服务器运行后,你可以通过在防火墙中定义的端口来访问。下面我们将通过SSH连接到服务器进行Apache, PHP, MySQL的PHP扩展,以及WordPress。
Step 3 – 安装需要的服务器软件
在实例名称的右键菜单中,选择 “Connect” ,弹出一个包含SSH命令的页面窗口
登陆SSH的命令与下面的格式类似:
ssh -i wordpress_demo.pem root@ec2-….compute-1.amazonaws.com
如果你把pem key保存在~/.ssh,你需要在命令中包含路径。还有,你需要修改root用户为ec2-user,亚马逊不允许新的AMIs安装用root用户连接服务器。
登陆后,你就能像使用任何Linux主机一样使用虚拟机。安装软件,我们用Yum安装器来安装Apache服务器,输入下面的命令来安装Apache:
sudo yum install httpd
下一步,用以下命令安装PHP:
sudo yum install php
通过下面的命令安装php-mysql扩展:
sudo yum install php-mysql
好了,安装完成开始准备测试Apache。用下面的命令启动Apache(你可以用“stop”或“restart”来停止或重启Apache):
sudo /etc/init.d/httpd start
Web服务器启动后,拷贝机器的URL到浏览器测试:
Step 4 – 创建数据库机器
在安装WordPress之前,我们需要一个数据库。用RDS设置一个数据库很容易,在AWS控制台,点RDS标签,点 “Sign Up For Amazon RDS” 开始安装数据库机器。
安装完以后,回到AWS控制台的RDS标签,点击 “Launch DB Instance.” 启动数据库实例
在弹出窗口设置需要启动的数据库属性,比如服务器实例,分配的存储空间等。我们为数据库分配了5个G的空间,足够测试用了。为数据库服务器实例和根 用户命名,我们使用“wordpress-db”作为数据库服务器名,“root” / “rootpass”, 作为管理登陆。因为做测试,我们使用简单好记的登陆名,但如果要考虑更安全的登陆,建议采用较复杂的命名。
数据库服务器设置完成后,你会被要求在服务器上定义一个默认的数据库。数据库名我们设置为“wordpress”
点 Contiune 到下一步,你可以定义数据库的备份设置,保留默认值直接Continue进入下一步。
验证无误后,点 “Launch DB Instance.”
创建数据库实例的时间比创建EC2实例的时间稍长一些,大约5分钟左右以后,你就可以在instances标签看到状态为有效 “available” 了。
点击实例可以看到更多的数据信息,拷贝“endpoint”的值,这也就是我们用于wordpress安装的数据库服务器的URL。
在安装WordPress之前还有一个步骤就是我们还需要为数据库配置防火墙,以便应用服务器能够访问它。
回到RDS标签,点 “DB Security Groups.” ,在这儿你会看到没有任何授权的应用:
要让应用服务器访问数据库,我们需要授权它的安全组到数据库的安全组。从“No Authorizations”下面的下拉列表中选择 “EC2 Instance” ,并输入安全组的名称(“wordpress_app_server”)和你的Amazon Account ID
账户ID在AWS设置中是隐藏的,第一次点击“Account”链接,然后点 “Security Credentials” 就可以找到。
输入需要的信息然后点“Add”,你就可以看到安全组已经被授权了,现在可以开始安装WordPress了。
Step 5 – 安装WordPress
重新打开SSH连接到应用服务器,下载WordPress到服务器,默认情况下Apache配置HTML文件在 /var/www/html/目录
cd /var/www/html
sudo chown ec2-user
wget http://wordpress.org/latest.zip
unzip latest.zip
安装需要创建wp-config.php文件,用下面的命令修改wordpress目录属性:
chmod o+w wordpress
在浏览器输入URL路径开始安装wordpress
在wordpress数据库设置页面,我们的数据库名是“wordpress”,Database Host一项填写RDS实例的URL。
成功提交后,你的wordpress就成功安装在亚马逊云计算上了。
Step 6 - 停止所有服务
在本指南开始的时候我们提到过,AWS是按照使用的小时数来计费的,所以在测试完成后确认你不会有费用支出,确认停止所有的服务。
首先,停止EC2实例。如下图所示:
停止数据库也很容易,不过你不能重新恢复数据库。幸运的是你在停止数据库的时候,可以选择保存数据快照。你以后可以使用保存的快照数据重新创建数据库安装。
在RDS标签,右击数据库实例,选择“Delete”删除
好了,确定服务都关闭后,退出AWS控制台,你的WordPress博客已经无法访问了。