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


關鍵詞:

1.新建aws ec2實例

2.使用putty連接到aws ec2 實例(SSH協議)

3.使用filezilla連接到aws ec2實例(SFTP協議)

4.在aws ec2上部署apache服務器(lamp)

5.配置安全組使aws ec2實例能被外網訪問

6.彈性IP(EIP)

 

  朋友想搭一個境外網站,找我幫忙,希望服務器、域名都在境外。我沒有在境外建站的經歷,只能先嘗試。於是上網搜索了一下境外服務器,大家比較常用的是Digital Ocean和AWS,我索性打開這兩家的官網,打算自己比較一下,后來選擇AWS,是因為他的官網打開的比Digital Ocean快,就這一點,我義無反顧地選擇了AWS。

  簡單介紹一下,AWS即Amazon Web Services,是Amazon提供的建站平台,在上面可以購買空間、數據庫、雲計算等服務,官網地址https://aws.amazon.com/。要使用它的服務首先要注冊一個賬號,注冊的過程中會需要用到信用卡,還會接到一個電話要求輸入網站上提供的PIN碼用於驗證你填的手機號,跟隨指引,基本上很簡單就能完成。

 

第一部分 新建EC2例

  注冊完成后登錄管理控制台,控制台首頁可以看到幾個選項卡:

  很好理解,第一個就是構建虛擬機,以我的經驗,建站的空間就在這里申請。點一下啟動虛擬機,進入如下界面

  這是我首次接觸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 ec2、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實例的過程,逐步將網站建起來,學習過程中的經驗也會拿出來分享。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM