AWS EC2中部署Apache服务器(LAMP)

关键词:php

1.新建aws ec2实例java

2.使用putty链接到aws ec2 实例(SSH协议)mysql

3.使用filezilla链接到aws ec2实例(SFTP协议)linux

4.在aws ec2上部署apache服务器(lamp)c++

5.配置安全组使aws ec2实例能被外网访问git

6.弹性IP(EIP)web

 

  朋友想搭一个境外网站,找我帮忙,但愿服务器、域名都在境外。我没有在境外建站的经历,只能先尝试。因而上网搜索了一下境外服务器,你们比较经常使用的是Digital Ocean和AWS,我索性打开这两家的官网,打算本身比较一下,后来选择AWS,是由于他的官网打开的比Digital Ocean快,就这一点,我义无反顾地选择了AWS。sql

  简单介绍一下,AWS即Amazon Web Services,是Amazon提供的建站平台,在上面能够购买空间、数据库、云计算等服务,官网地址https://aws.amazon.com/。要使用它的服务首先要注册一个帐号,注册的过程当中会须要用到信用卡,还会接到一个电话要求输入网站上提供的PIN码用于验证你填的手机号,跟随指引,基本上很简单就能完成。数据库

 

第一部分 新建EC2例apache

  注册完成后登陆管理控制台,控制台首页能够看到几个选项卡:

  很好理解,第一个就是构建虚拟机,以个人经验,建站的空间就在这里申请。点一下启动虚拟机,进入以下界面

  这是我首次接触EC2这个概念,搜索了一下,它是指Elastic Compute Cloud,即弹性云计算,和国内的云虚拟主机的概念差很少,一个EC2实例就是一个云虚拟主机。接下来的步骤就是为这个实例命个名:

  而后选择操做系统,点击每一个操做系统会有简介,能够根据本身的技术方向选择,因为我一个都不熟,因而我打算选Amazon的亲儿子Amazon Linux AMI,这也是经验之谈,既然是Amazon的主机,用Amazon定制的Linux确定没毛病。

  而后选择实例类型,这是一个很人性化的界面,直接放了一个免费的类型,毫不会利用你看不懂就讹你钱,若是你是土豪而且有点文化能够选择更多选项,像我这种挣扎在温饱线的直接很HAPPY的选了免费型而后下一步

  而后就是建立秘钥,给这个秘钥命个名,而后下载秘钥文件后保存,这个秘钥文件(*.pem)很重要

  下载以后,点击建立实例,就OK了。

  而后返回控制台首页,能够看到最近访问的服务下面有个EC2,直接点击EC2,就进入到EC2控制面板,而后点击正在运行的实例

  能够看到咱们刚才建立的实例MyFirstInstance。

 

第二部分 使用PuTTY链接到实例(使用SSH协议)

  接下来的工做就是要想办法链接上这台主机,方便咱们在上面部署网站。右键点击实例,在菜单中选择链接,会显示链接方式

 

  这上面介绍了两种方式,一种是使用SSH客户端,一种是直接从浏览器链接,选择直接从浏览器链接时会提示使用Chrome是不行的,请使用Firefox或者IE9+,而且还要安装Java。

  java我已经很熟悉了实在懒得重复这个工做,并且仅仅为了连一下虚拟主机在我电脑上装java我以为不划算(虽然我仍是默默安装了个firefox),并且SSH客户端对我而言仍是个新事物我比较有好奇心,我坚决果断决定选择SSH客户端,而且选择了上面提到的PuTTY客户端。下面介绍下如何用PuTTY客户端链接到EC2实例。

  首先下载安装PuTTY的过程就不说了,和通常软件安装过程同样而且这个超级简单。而后咱们要作一些准备工做,在正在运行的实例列表中,选择刚才新建的实例,页面底部能够看到实例的详细信息,咱们要记住的是实例的Public DNS(IPv4)

 

 

   而后咱们要对刚才建立实例时下载的密钥文件进行格式转换,从PEM格式转成PPK格式才能在PuTTY上使用,PuTTY自带转换工具PuTTYgen,安装PuTTY后在开始菜单很容易找到PuTTYgen工具,启动它

  而后点击Load,加载刚才下载的私钥pem文件,默认状况下选择文件的界面那里文件类型是*。ppk,咱们要改为ALL FILES才能看到PEM文件

  而后Type of key to generate那里选择SSH-2 RSA,

 

  而后点击Save private key,就可保存为PPK文件了,这个PPK文件就是PuTTY能够用的密钥文件,在一下子的链接过程当中会用到。

  准备工做作完了,接下来启动PuTTY,在左边的目录中选择Session,通常状况下启动时默认就是Session界面,在HostName中输入user_name@public_dns_name

  username按以前选的操做系统有几种不一样的值:

 

  • 对于 Amazon Linux AMI,用户名为 ec2-user

  • 对于 RHEL AMI,用户名称是 ec2-user 或 root

  • 对于 Ubuntu AMI,用户名称是 ubuntu 或 root

  • 对于 Centos AMI,用户名称是 centos

  • 对于 Fedora AMI,用户名称是 ec2-user

  • 对于 SUSE,用户名称是 ec2-user 或 root

  public_dns_name就是前面提到的必需要记住的Public DNS

  而后Connection type选择SSH

 

  而后经过左边的目录切换到Conncetion——SSH——Auth,在右边点击Browse,选择前面生成的PPK文件,而后切换回Session页面,点击Save,能够保存这些配置以供下次直接使用,点击Open能够链接到EC2

 

  下面是链接成功后的界面,就是Linux系统的命令窗口,在这个窗口经过命令能够执行一切咱们但愿的操做,部署网站就靠它完成。

 

第三部分 使用FileZilla链接到实例(使用SFTP协议)

  这是一个题外话,但它介绍的内容也在后面的工做中承担了很重要的做用:从Windows上传文件到EC2实例中的Linux系统。使用PuTTY自带的工具PSCP(基于命令的工具),或者WinSCP(基于windows GUI的工具)也能够从windows上传文件到远程Linux,为何我选择了FileZilla?理由很简单,一是我刚好装了FileZilla而且用的比较熟练,二是我想试试FileZilla行不行,由于我之前一直用FTP协议链接远程服务器,今天忽然接触到SSH协议,而后我就专门查了一下FTP和SSH区别,查的过程当中别的没记住,却是记住了SFTP这样一个由两者结合的协议,而后之前用FileZilla的时候有印象在选择传输协议时有SFTP这个选项,因此想试试可不能够经过SFTP协议链接到EC2。

  我启动FileZilla,下面的一切都凭经验进行

  新建站点AWS,主机栏输入Public DNS,端口输22,协议选择SFTP,登陆类型选择密钥文件,用户前面解释过了填ec2-user,密钥文件选择以前转换成的PPK文件,其它的无论,点击链接,因为是境外服务器网络不稳定,通过屡次尝试后终于仍是链接成功了,而后我还上传了一个httpd-2.2.32.tar.gz文件,用于部署apache服务器的。

 

第四部分 部署Apache服务器

  在Linux部署Apache服务器的步骤,常见于LAMP环境搭建的教程里面。LAMP,即Linux + Apache + MySQL + PHP,有时候M也指MariaDB。搜索amazon ec二、lamp关键词,很容易就能找到在ec2上部署apache的教程,然而我一开始并不知道lamp这个概念,因而一直搜索在linux上部署apache的教程,查出来的教程至关复杂,并且我还各类没成功。后来总算让我找到了一篇,原来在ec2上部署apache是一件很是轻松的事情,只须要以下几行代码:

sudo yum update
sudo yum install gcc gcc-c++ make
sudo yum install apache mysql php php-mysql mysql-server

  上面第一行是更新系统环境,第2行是安装C++编译环境,第3行是安装apache、mysql、php等组件。上述代码运行完成后apache就成功安装了。

  测试apache是否成功安装的方法:

apachectl -v
httpd -v

  回显版本号表示已经安装成功

  安装完apache后,接下来启动apache web服务:

sudo service httpd start

  加sudo是为了以管理员权限运行该命令,通常状况下这条命令须要有sudo才会运行成功。

  在官方的API文档里面看的更清楚:

 

 

第五部分 测试Apache服务器

  在安装apache服务器并启动httpd服务后,接下来须要测试该服务器可否被正常访问。在浏览器中输入前面提到的Public DNS,应该就能够看到Apache测试页面了。但通常状况下,只作到这一步的话,还看不到测试页面,由于还需设置下安全组规则。在EC2控制面板切到安全组页面

  而后在右边选中MyFirstInstance实例后,右键单击它,在菜单中选择“编辑入站规则”:

  在“编辑入站规则”中添加下面这样一条规则:

  它的含义是容许任何地方经过HTTP协议80端口访问本实例,也就是经过网页方式访问本实例。这个时候基本上就大功告成了,在浏览器输入Public DNS或者公有IP就能看到Apache测试页了。

 

 第六部分 关于弹性IP(EIP,Elastic IP)

   一般状况下,咱们申请的EC2实例在每次重启以后,Public DNS和公有IP都会改变,若是是要作一个网站,服务器IP常常改变,那域名解析也要跟着变,这是个很麻烦的事情。这时候就须要申请EIP,并将EIP与EC2实例关联,这个EIP就能够做为这个实例的永久IP,除非咱们手动取消关联。关联以后,咱们能够在浏览器地址栏输入EIP来访问EC2实例。

  申请EIP的方法:在EC2控制面板找到“弹性IP”页面

  而后在右边选择“分配新地址”

 

  按照指引分配好新地址后,回到弹性IP页面,右键点击咱们刚才申请的EIP,选择关联地址,将前面的EC2实例关联上去

而后就大功告成。

 

以上是这两天的学习成果,不多,但学习过程也是十分繁琐复杂,查了很多资料走了很多弯路浪费了很多时间,因此才想写一篇笔记记下来,让之后少走弯路。后续将继续学习在ec2上运行php的过程,在amazon申请域名并绑定到ec2实例的过程,逐步将网站建起来,学习过程当中的经验也会拿出来分享。

相关文章
相关标签/搜索