在過去的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博客已經無法訪問了。