Linux 伺服器系統管理第九章 伺服器管理  上一頁    

9-4 網頁伺服器 - httpd

內容:

  • 9-4-1 全球資訊網 - www

  • 9-4-2 網頁伺服器安裝 - apache

  • 9-4-3 上傳主網站網頁 - root

  • 9-4-4 個人網站設定

9-4-1 全球資訊網系統 - www

早期發展 Web 系統時,並沒有想到會有這麼大的發展空間,那時候只考慮到如何將文件可以在各種系統之間流通。因為當時各系統之間的文件格式並不相容(現在也一樣),譬如,在 AppleWindowsUnix、或其它系統所製作的文件,並無法直接在另一系統上顯示或修改處理。當時只希望建立一套系統,方便顯示不同系統之間的文字,其基本構想就是建立一套顯示平台,並可以安裝於各種不同的系統上。另外,由於作業系統之間的檔案結構也不盡相同,無法將一個系統所製作的文件儲存於磁碟片,再由另一系統將它讀出來,因此,共通平台的文件必須利用網路以 ASCII 格式互相傳輸。上述構想就是網頁系統的基本原理就,如由電腦 A 所製作出來的文件,能夠透過網路傳輸給電腦 B,並可在電腦 B 能如身歷其境般的顯示出來。

所謂示共通平台即是目前所稱的『瀏覽器』,而電腦之間就以 HTTP 協定來互相通訊。文件在瀏覽器上以一頁一頁為單位來顯示,所以瀏覽器上顯示的文件就稱為『網頁』(Web Page,又每一文件都有封面,其封面則稱為『首頁』(Home Page,而將提供網頁供瀏覽器下載的伺服器就稱為『網頁伺服器』(Web Server。至於文件要如何製作才能在瀏覽器上顯示出來?於是就制定了 HTML 標準,希望所有文件都能依此標準來製作,才能在不同系統上的瀏覽器顯示,網頁系統就是這麼簡單的概念之下產生。早期網頁只能顯示文字模式(如 Mosaic),萬萬沒想到數位訊號處理的技術,如火速般的發展,兩者一拍即合,很快地將影像及聲音的數位處理技術嵌入瀏覽器之中,多采多姿的全球資訊網世界就因此而誕生了。

(A) Web 系統架構

下圖為 Web 系統架構,是屬於主從式架構,伺服端(Web Server提供資源(HTML 文件)供客戶端(瀏覽器)下載,它們之間是以 HTTP 通訊協定來傳輸。伺服端使用 URL 的定址方式,客戶端可以依照 URL 位址找到所要的網站,所以 URL 又稱為『網址』。

(B) 瀏覽器

客戶端就是瀏覽器(如 IE Netscape),它的功能是由伺服端上接收 HTML 程式後,再將其執行並顯示成文件,此文件型態就稱為網頁(Web Page。所以,客戶端以顯示大量文件(或網頁)為主要工作。每一網頁上的文字或圖樣可以指向其它的相關頁來連結,頁和頁之間的連結可以無止境的延伸,此連結方法就稱為『超連結文件』(HyperText。不僅可以連結網頁,還可以在網頁上任何文字或圖樣設定連結到其它網站,稱之為『超連結』(Hyperlink)。因此,客戶端就可以行走全世界任何一個網站,觀看網站上所有的網頁,所以稱為『瀏覽器』(Browser

(C) 一致性資源定址

基本上,瀏覽器可以接受多種協定的傳輸,也可以處理不同語言所編寫的程式,但它如何判斷應以何種模式來工作,這必須由使用者命令它處理。然而使用者又應以何種模式和瀏覽器溝通?這就是『一致性資源定址』(Uniform Resource Locators, URL的制定目的。URL 包含以下三項資訊:(a) 連接該網站使用何種通訊協定(http ftp);(b) 網站位址在哪裡(主機的 DNS 名稱);(c) 該網頁的檔案名稱(或檔案格式),例如:

http://www.tsnien.idv.tw/index.html 

URL 三個部分是:通訊協定(http主機位址(www.tsnien.idv.tw網頁的檔案名稱(index.html。通訊協定有:http(超連結文件,HTML)、ftpFTP 檔案傳輸協定)、file(本地檔案)、news(新聞文章)、gopherGopher 文件協定)、mailto(傳送郵件協定)。檔案名稱的副檔名(如,.html)是用來標示,該檔案是由何種程式語言編寫而成,以啟動相對應的直譯程式(如,HTML 直譯程式)。

(D) 網頁伺服器

『網頁伺服器』(Web Server是用來儲存 HTML 文件,讓瀏覽器下載執行的伺服器。它和客戶端之間是以 HTTP 通訊協定溝通,又稱為HTTP 伺服器』(HTTP Server,傳輸埠口大多架設在 80/tcp 位置。網頁伺服器是目前最炙手可熱的設備,它也是一套非常複雜的系統。隨著網站需求的大量增加,一部網頁伺服器只能架設一個網站已漸不符所需了,我們希望在同一部網頁伺服器上建構更多的網站,才能符合經濟價值。因此,它必須透過虛擬主機技術,來建構許多虛擬網站,乃至個人網站。

9-4-2 網頁伺服器安裝 - Apache

Apache 幾乎與全球資訊網(World Wide Web, WWW)劃上等號,也就是說,大部分的商業站都使用 Apache 網站伺服器套件。Apache 是由 The Apache Software FoundationASF)所發展出來,也是免費自由軟體,官方網站是 http://www.apache.org;使用者不但可在官方網站上找到並下載最新版本,也可以找到其他系統上的 Apache 版本,如 Windows 版本。

(A) 套件查詢與安裝

Web Server 服務名稱為 httpd,可利用 # rpm –qa | grep httpd 命令查閱該套件是否已安裝,操作如下:

[root@tsnien ~]# rpm  -qa  | grep httpd

[root@tsnien ~]#

如果已安裝完成則會顯示所安裝套件的名稱與版本,如沒有安裝的話,可利用 # yum install httpd 命令來安裝,如下:

# yum  -y  install  httpd    [安裝 httpd 套件]

Loaded plugins: fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * base: ftp.tc.edu.tw

 * extras: ftp.tc.edu.tw

 * updates: ftp.tc.edu.tw

….

Complete!

#  rpm  -qa  |grep httpd     [查詢 httpd 套件]

httpd-tools-2.4.6-45.el7.centos.x86_64

httpd-2.4.6-45.el7.centos.x86_64

# systemctl start httpd   [啟動 httpd 服務]

# systemctl status httpd   [查詢 httpd 服務狀態]

httpd.service - The Apache HTTP Server

   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor pres>

   Active: active (running) since Tue 2021-05-18 22:10:19 CST; 9s ago

     Docs: man:httpd.service(8)

 Main PID: 4982 (httpd)

….

# systemctl enable httpd  [開機時自動啟動 httpd ]

Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service /usr/lib/systemd/system/httpd.service.

 (B) 組態設定項目

Httpd Server 組態管理檔案全部儲存於 /etc/httpd/ 目錄下,主要設定檔是 /etc/httpd/conf 檔,其中包含下列三個區段(Section 1 ~ Section 3)所組成:

  • 全域環境設定( Global Environment):針對整個網頁伺服器的環境設定,譬如 ServerTypeServerRoot……等等。

  • 主要伺服器設定(’Main’ server configuration):針對 Apache 預設(或主要)伺服器的環境設定,譬如 PortUser/GroupServerNameDocumentRootUserDir……等等。

  • 虛擬主機設定(Virtual Hosts):除了允許預設伺服器存在外,也可以增加其他虛擬主機,可設定成 NameVirtualHostVirtualHost 兩種虛擬主機模式。

除非有特殊變更或設定虛擬主機外,其他都採用預設值即可,讀者可以自行瀏覽看看。

(C) 主網站管理

可以由 /etc/httpd/conf/httpd.conf 設定檔指定預設網站的網頁文件之儲存位置,其變數項目為 DocumentRoot,預設位置是 /var/www/html 目錄,如下:(#vi /etc/httpd/conf/httpd.conf  節錄部分)

  •  選用預定埠口 80

  •  觀察主網頁文件儲存位置 (/var/www/html),管理者只要將網頁文件上傳到該目錄下,就可以建立主要(Main)網站。

  • 新增 index 網頁格式 (index.htmindex.php)

(D) 設定個人網站

系統的 httpd 服務程式啟動後,每一個帳戶(如 nien 帳戶)自動建立一個個人網頁網站,網站名稱為 IP/~login_name(如 http://120.118.165.191/~tsnien),該帳戶的網頁文件則儲存於家目錄上(/home/nien)。如要建立個人網頁網站,也是必須規劃 /etc/httpd/conf.d/userdir.conf 設定檔,由該檔案中尋找出 mod_userdir.c 設定段落,刪除掉 UserDir disable 功能(增加 # 記號),並增加 UserDir public_html 選項功能(移除 # 記號),其中也表示網頁文件是儲存於家目錄的 public_html 子目錄上(如 /home/tsnien/public_html,最好將該目錄權限設定成 $chmod 711會比較安全),本書範例如下:(執行 #vi /etc/httpd/conf.d/userdir.conf 進入修改)

除此之外,管理者(root)必須將個人網站的家目錄設定成他人都可以讀取與寫入的權限(輸入 # chmod  777  /home/student01)。,操作如下:

# ls -l /home    [觀察目錄權限]

總計 4

drwx------. 15 user01 user01 4096  5 18 21:39 user01

drwx------.  3 user02 user02   78  5 14 21:13 user02

# chmod 777 /home/user01   [設定目錄權限]

# ls -l /home   [觀察目錄權限]

總計 4

drwxrwxrwx. 15 user01 user01 4096  5 18 21:39 user01

drwx------.  3 user02 user02   78  5 14 21:13 user02

(E) 開啟防火牆 - httpd 埠口

開啟防火牆的 ftp 埠口,如下:

# firewall-cmd --add-service=http --permanent

success

# firewall-cmd --reload

success

(F) 重新啟動 httpd

設定完之後,必須重新啟動才有效,如下:

# systemctl  restart  httpd

# systemctl  is-active  httpd

active

# systemctl  enable  httpd  [開機時自動啟動 httpd]

(G) 驗證網站啟動

Apache 主網站架設後,可利用瀏覽器驗證網站是否安裝成功,如下:(http://192.168.86.35)

9-4-3 上傳主網站網頁 - root

(A) 上傳主網頁 - /var/www/html

Apache 安裝啟動後,會有兩種網站:主網站與個人網站,主網站網頁儲存於 /var/www/html 目錄下,需具有 root 權限者才可以上傳網頁。吾人利用 root 帳戶上傳(需先開啟 root FTP 登入功能,如:9-3-4 節介紹)上傳一個網頁如下:(請先建立一只 index.html 網頁)

(B) 瀏覽主網頁

         瀏覽主網站 (http://192.168.86.35) 如下:

9-4-4 個人網站操作

如果 /etc/httpd/conf.d/userdir.conf 設定檔內有規劃允許個人網站的話,則系統內每一個帳戶都允許開啟它的個人網頁,網頁儲存於該帳戶家目錄 (如:/home/student01) 內的 public_html 目錄下(如:/home/student01/public_html),設定步驟如下:

(A) 設定家目錄權限

必須將帳戶的家目錄設定允許他人讀取與執行,如下:( user01 帳戶為例)

[root@localhost ~]# ls -l /home

drwx------. 15 user01 user01  4096  4 16 10:14 user01

.....

[root@localhost ~]# chmod 755 /home/user01

[root@localhost ~]# ls -l /home

..

drwxr-xr-x. 15 user01 user01  4096  4 16 10:14 user01

....

 (B) 上傳網頁到個人網站

吾人利用 FileZalla user01 帳戶登入後,立即在家目錄產生 public_html 目錄(按右鍵產生),並上傳一只 index.htm 檔案到該目錄下。

再將所建立的首頁 (index.html) 上傳到 public_html 目錄下:

(C) 瀏覽個人網站

客戶可以利用瀏覽器開啟個人網站,如下:(http://192.168.1.107/~user01)

翻轉工作室:粘添壽

 

Linux 伺服器系統管理 - CentOS:

 

 

 

翻轉電子書系列: