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實例的過程,逐步將網站建起來,學習過程當中的經驗也會拿出來分享。

相關文章
相關標籤/搜索