摘要:摘 要: 隨著互聯網技術和云服務器的飛速發展,互聯網的準入門檻越來越低,更多的公司和個人將業務向互聯網延伸。手動部署 Web 網站環境存在速度慢、難度大等問題,急需使用一鍵
摘 要: 隨著互聯網技術和云服務器的飛速發展,互聯網的準入門檻越來越低,更多的公司和個人將業務向互聯網延伸。手動部署 Web 網站環境存在速度慢、難度大等問題,急需使用一鍵安裝包來提高工作效率,開發一種能夠簡化環境部署過程的一鍵 Web 安裝包顯得尤為重要。Linux 系統較 Windows 系統具有更好的穩定性,采用 Linux 系統的服務器,部署 Web 網站中的 JAVA 環境和 PHP 環境,測試證明,一鍵 Web 安裝包能滿足云服務器的需求,有效節省用戶的運行時間,提高云服務器的運行效率。

關鍵詞: 云服務器; 一鍵安裝 Web; Linux; JAVA; PHP
目前,國內外各大云服務器廠商的崛起,使得公司以超低價位擁有一臺自己的云服務器成為可能,公司不需再額外購買昂貴的實體服務器,只需在網站源碼到位的情況下,與一鍵安裝 Web 環境工具包相結合,便能在極短的時間內實現自己的業務在服務器上線。近年來,基于云服務器的自動化開發工具非常火爆,除了一線運維人員編寫的各類開發工具外,各大云服務器廠商也在嘗試大型開發,并形成了一批運行穩定的云服務器產品。因各云服務器廠商使用的標準體系不同,造成一些實用性很強的工具與云服務器的兼容性較差,限制了一鍵安裝工具的傳播。同時,各大云服務器廠商之間的競爭,在短時間內難以形成一個標準的云服務器體系規范,一些開發者需重復地對服務器環境開發和設配,造成了人力資源極大浪費。針對上述問題,本文設計了一鍵安裝 Web 環境工具包,提供了多種架構和多版本軟件供用戶選擇,能滿足互聯網上各大云服務器的需求,改善了兼容性差的問題,減少了開發人員的重復勞動。
1 Web 服務器簡介
Web 服 務 器 也 稱 為 WWW ( WORLD WIDEWEB) 服 務 器,主要功能是提供網上信息瀏覽服務[1]。Linux 嵌入式系統與 Web 瀏覽器通信方式: 底層 采 用 TCP /IP 協 議,頂 層 采 用 HTTP 協 議。 WWW 瀏覽器使用 Script 解析器來解析瀏覽器腳本,通過 HTML 解析器來解析 HTML 語言[2]。Web 服務器的工作原理可分為 4 個步驟: 連接過程、請求過程、應答過程及關閉過程。所謂連接過程是指 Web 服務器和客戶端之間在數據交互之前建立起來一種連接。如用戶想查看連接是否連接成功,需找到 socket 套接字文件。請求過程是利用 socket 套接字文件向服務器提交各種請求。應答過程是通過 HTTP 協議把之前請求過程中的請求內容傳輸到 Web 服務器上或運用 HTTP 協議將內容返回給客戶端,服務器接到請求后進行處理。關閉過程是將服務器與客戶端斷開連接。Web 服務器的 4 個實施步驟具有較強的邏輯性,能夠支持多個進程、線程以及混用的技術。原理如圖 1 所示。
2 服務器的分類
目前 Linux 和 Unix 操作系統使用最多的是 Apache 和 Nginx 服務器,Windows 操作系統通常使用的是 IIS 服務器。用戶在選用 Web 服務器時,首先從服務器本身的性能、安全性、虛擬主機、緩沖服務和集成應用程序等方面考慮,然后考慮服務器是否適合自己的業務類型和需求。
2.1 IIS
IIS ( Internet Information Services) 是 微 軟 基 于 Windows 系統研發的一款 Web 服務器產品,IIS 的安全脆弱性曾長時間被業內詬病,一旦 IIS 出現遠程執行漏洞威脅將會非常嚴重[3]。由于 Windows 系統有窗口界面可視化的優勢,加之微軟的大力推廣和投入研發,IIS 服務器在 Web 服務器領域占有一席之地。
2.2 Apache
Apache 是世界使用排名第一的 Web 服務器軟件,它可以運行在幾乎所有廣泛使用的計算機平臺上[4]。Apache 服務器市場占有率高達 60%,是最流行的 Web 服務器端軟件之一。世界上許多知名的網站都是 Apache 的產物,Apache 采用開放性源代碼,可以支持多種跨平臺應用,可移植性強。
2.3 Nginx
Nginx 是一款輕量級的 Web 服務器/反向代理服務器及電子郵件( IMAP /POP3) 代理服務器,并在一個 BSD-like 協議下發行[5]。其特點是占有內存少,并 發 能 力 強,國內的一些大型站點都使用了 Nginx,淘寶還在 Nginx 的基礎上二次開發,推出產品 tengine,并把相關技術的源碼開放到互聯網中。
2.4 Tomcat
Tomcat 服務器是一個免費的開放源代碼的 Web 應用服務器,屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試 JSP 程序的首選[6]。Tomcat 是基于 JAVA 的 Web 應用軟件容器,隨著 Catalina Servlet 引擎的出現,Tomcat 第四版號的性能得到提升,使得它成為一個被大眾接受的 Servlet /JSP 容器,目前許多 Web 服務器采用 Tomcat [7 -8]。
3 一鍵安裝 Web 環境工具包的設計
一鍵安裝 Web 環境工具包主要實現在 Linux 服務器上快捷部署 Web 環境,支撐 Web 網站的運行。為使用戶在 Linux 系統服務器上部署 Web 環境簡便、快捷,本文設計的工具包采用以下運行原則:
( 1) 自動安裝各個軟件的腳本要保持一定的獨立性;
( 2) 軟件的多個版本的安裝腳本要保持一定的獨立性;
( 3) 在安裝軟件時采用編譯安裝;
( 4) 設置獨立的用戶管理權限。一鍵安裝 Web 環境工具包運行環境分為 JAVA 運行環 境 和 PHP 運 行 環 境[9]。用 戶 首 先 從 IIS、 Nginx、Apache 和 Tomcat 中選擇 Web 服務器類型,然后自己的工作需求選擇運行環境,在運行環境中選定軟件運行版本,選擇邏輯圖如圖 2 所示。
4 一鍵安裝 Web 環境工具包的實現
4.1 安裝 Apache
一鍵安裝工具包提供了多個軟件版本供用戶選擇,本文以其中一個版本為例進行說明。Apache 自動安裝腳本的運行步驟如下。
( 1) 首先從網上下載對應版本的源碼包,本文通過 wget 命令來實現;
( 2) 源碼包下載完成后解壓縮,然后進行編譯安裝;
( 3) 創建控制腳本并賦予可執行權限;
( 4) 修改配置文件;
( 5) 生成虛擬主機配置文件;
( 6) 啟動服務。
4.2 安裝 Tomcat
Tomcat 自動安裝腳本的步驟如下。
( 1) 首先從網上下載對應版本的源碼包,本文通過 wget 命令來實現。
( 2) 源碼包下載完成后解壓縮,然后進行編譯安裝;
( 3) 創建 WWW 用戶和控制腳本并賦予可執行權限;
( 4) 添加 rc.local 文件;
( 5) 啟動服務。
4.3 安裝 Nginx
Nginx 的安裝分為兩種組合,一 種 是 Nginx + PHP 組合,另一種是 Nginx+Tomcat 組合,安裝步驟雷同,運行步驟如下。
( 1) 首先從網上下載對應版本的源碼包,本文通過 wget 命令來實現;
( 2) 源碼包下載完成后解壓縮,然后進行編譯安裝;
( 3) 創建用戶和控制腳本并賦予可執行權限;
( 4) 移動安裝目錄;
( 5) 啟動服務后,在 Linux 系統下安裝 ftp 的工具,根據腳本安裝的 Mysql 版本,創建用戶并生成隨機密碼。
4.4 安裝 JDK
JDK 是整個 JAVA 開發的核心,JDK 的運行腳本如下。
#! /bin /bash / /shell 腳本選用 bin-bash 的運行環境rm -rf jdk1.7.0_55
if [! -f jdk-7u55-linux-x64.tar.gz ]; then
wget http: / /t-down. oss-cn-hangzhou. aliyuncs. com/jdk- 7u55-linux-x64.tar.gz
fi / /下載 jdk 源碼包
tarzxvf jdk-7u55-linux-x64.tar.gz
mv jdk1.7.0_55 /* /alidata /server/java
/ /解壓并安裝
5 一鍵安裝 Web 環境工具包的測試
5.1 工具包安裝
面向多服務器的一鍵安裝工具包解決方案其實并不是非常困難的問題,首先把一鍵安裝工具上傳到服務器上,本文使用 xshell 軟件與 xftp 軟件相結合的方式,然后根據每個操作系統相關編程的不同情況,如系統進程和線程應用、關于進程和線程內存的分配和處理情況及各操作系統的編程所應用的字符編碼位數的區別等[10]。最后使用 xshell 軟件通過 ssh 協議遠程登錄服務器,如圖 3 所示。
在 xshell 界面中選擇 xftp,將一鍵安裝包sh-1.5.5 拖拽到服務器的 root 用戶的根目錄中,如圖 4 所示。
在服務器的 root 用戶家目錄使用 ls 命令查看工具包,chmod-R 777 sh-1.5.5 給予工具包 777 權限,cd sh-1.5.5 目錄下執行 install.sh 腳本,如圖 5 所示。
安裝 JAVA 運行環境和 PHP 運行環境,為防止一鍵安裝工具與服務器的連接,新打開一個 shell 窗口,在窗口標簽欄右擊,選擇“復制”,在新打開的界面中,輸入“top”命令,可以看到一直在跳動的系統資源統計,表示已經安裝完成,效果如圖 6 所示。
5.2 一鍵工具包運行測試
解析服務器的請求,netstat-tnulp 查看端口啟動是否正常。首先解析 php9000 端口,mysql3306 端口,httpd 或者 nginx 的 80 端口,ftp21 端口,在運行窗口能顯示出來,表示安裝成功,如圖 7 所示。然后查看 JAVA 運行環境的服務啟動情況,在工具包的目錄下使用 cat acconut.log 命令查看自動安裝默認生成的 mysql 和 ftp 賬號密碼,服務啟動正常時,在瀏覽器中能訪問到公網 ip 地址,表示測試成功,如圖 8 所示。
首先解析協議 HTTP 請求行,得到請求方法、 URI 和 HTTP 版 本。然后根據狀態機( 上 面 結 構state 字段) 來跟蹤解析進度,循環讀 ringq_t 隊列中報文數據,解析請求頭域,將其內容存儲在上面結構對應的字段中,解析實體部分。當出現圖 9 所示的界面時表示安裝完成。
但是安裝完成并不代表安裝成功,通過以下操作進行檢查。使用 netstat -tnulp 查看端口啟動是否正常。
從圖 10 可以看到 php9000 端口,mysql3306 端口,httpd 或者 nginx 的 80 端口,ftp21 端口啟動正常,表示已經安裝成功。
端口啟動正常的話就說明安裝成功,需要注意的是,Apache 沒有 9000 端口。再測試選擇 JAVA 運行環境的服務啟動情況,如圖 11 所示。
6、結語
雖然現在一些開源站點的服務器提供了一些自己編寫的腳本程序,也能實現一鍵安裝 Web 環境,但因為個人使用習慣和技術偏重的緣故,這些一鍵安裝 Web 環境的功能單一,沒有給用戶提供各種運行環境的選擇,更沒有讓用戶自己選擇架構和軟件版本的功能。本文設計出一款能夠適應大多數系統的版本,能提供常見環境、架構、運行穩定的軟件,能夠提升網站部署環境的效率,為用戶提供了重要保障,促進了互聯網行業的發展,幫助傳統企業和小微企業向互聯網區域轉變或者延伸。
推薦閱讀:如何做好學校服務器的安全維護