Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 22 章 架設 WWW 伺服器.

Similar presentations


Presentation on theme: "第 22 章 架設 WWW 伺服器."— Presentation transcript:

1 第 22 章 架設 WWW 伺服器

2 本章大綱 22-1 安裝與啟動 Apache 伺服器 22-2 維護系統首頁 22-3 設定使用者網頁空間
22-4 允許或拒絕某些網域存取網站 22-5 定期備份網頁

3 前言 WWW 網站的發展相當快速, 您可以透過 網頁購物、下單買賣股票、金融轉帳以及查詢資料等等。同時也有很多提供免費網站的公司, 讓人們可以放置自己建立的網頁, 以吸引廣大的群眾上網瀏覽。WWW 服務儼然已成為 Internet 上最受歡迎的功能。 由於 Linux 作業系統的穩定性高且成本低廉, 因此許多人都採用 Linux 系統, 再加上 Apache 網頁伺服軟體來建構網站。

4 安裝與啟動 Apache 伺服器 早期的 Apache 伺服器由 Apache Group 開發與維護, 直到 1999 年 6 月 30 日, Apache Software Foundation (Apache 軟體基金會, 簡稱 ASF) 成立, Apache 伺服器才由 ASF 接手。 目前有幾家主要的公司 (例如 IBM、 Sun Microsystems 與 Novell 等) 在背後支持後續的開發計劃, 使得Apache 伺服器可以持續的發展。

5 安裝與啟動 Apache 伺服器 Apache 伺服器是目前使用率最高, 也是 Linux 系統中最被廣泛使用的網頁伺服器, 幾乎各種 Linux 發行版中都會內附。且在 Apache 的官方網站 中, 可以下載各種作業系統版本的 Apache 套件 (也包括 Windows 版本)。 因此, 我們在 Linux 中學會架設 Apache 伺服器後, 即使將來使用其他系統, 也有 Apache 套件可以用。

6 啟動 Apache 伺服器 此 Linux 發行版中已經內附 Apache 伺服器 2.2 (正式名稱是 Apache HTTP 伺服器) 軟體套件。請檢查 /usr/sbin 目錄中, 是否有 httpd 檔案, 若有, 表示已安裝此套件。如果您已經安裝了, 請先依下列方式操作, 啟動 Apache 伺服器:

7 啟動 Apache 伺服器 Apache 伺服器啟動後, 就可以用網頁瀏 覽器連上去看看。如果您有申請類似像 這樣的網域名稱, 則可在網頁瀏覽器中直接輸入該名稱, 否則請使用 IP 位址當做網站的 URL。 如果電腦根本沒有固定的 IP, 也可以在本機上使用 或是 自我陶醉一番。以下是筆者從另外一台 Windows 電腦, 使用 IE 網頁瀏覽器連到剛啟動的伺服器所看到的內容:

8 啟動 Apache 伺服器

9 啟動 Apache 伺服器 如果您看到上圖的畫面, 即表示 Apache 伺服器已啟動, 您可以執行 ps aux | grep httpd 指令看到 httpd (http daemon) 程序在執行。

10 安裝 Apache 伺服器 如果您尚未安裝 Apache 伺服器, 則可從書附光碟 ( DVD 或 CD1 ) 中找到 httpd i386.rpm 檔, 然後用 rpm 指令安裝, 請如下操作:

11 如何取得新版的 Apache Apache 也如同 Linux 一樣會持續更新版本。新版本通常會修正一些錯誤或是增加新的功能, 您可參考 網站以得到最新的消息。若有需要可到下面的網址下載新版的 Apache 伺服器套件:

12 如何取得新版的 Apache 若要安裝新版的 Apache 伺服器, 其預設的安裝路徑可能會與本 Linux 發行版內附套件的預設路徑不同 (一般 tar.gz 版本的套件, 預設可能會安裝到 /usr/local/apache 目錄), 這是自行安裝要特別注意的地方。

13 重新啟動 Apache Apache 最主要的設定檔為 /etc/httpd/conf/httpd.conf, 現在我們要看看如何重新啟動 httpd。 在啟動 Apache 伺服器時, 會去讀取 httpd.conf 檔中的設定, 因此每當我們修改這個檔之後, 都需要重新啟動 httpd, 如此所做的改變才會有作用。通常我們在執行 httpd 之前, 會先使用 ps aux 指令查看一下目前 httpd 是否已在執行。若已執行, 則需先將其結束之後, 再啟動 httpd:

14 重新啟動 Apache ←結束 httpd ←啟動 httpd

15 開機時自動啟動 Apache 若想讓系統開機時自動執行 httpd, 我們只要執行 ntsysv 指令, 選取 httpd 服務即可。如此每次重開機時, 就會自動啟動 Apache 伺服器了。

16 維護系統首頁 本機首頁的位置是放在 /var/www/html 目錄下, 而擁有者是屬於 root。因此若是要更新系統預設的首頁, 必須以 root 身份登入才行。

17 如何上傳網頁 常見的情況是, 使用者在 Windows 做好了網頁, 卻不知該如何上傳到 Apache 伺服器。由於 /var/www/html 只能以 root 身份存取, 但偏偏 root 身份預設無法使用 ftp 上傳網頁, 因此筆者提供了以下幾個方法: 第 1 種方法:開放 ftp 讓 root 可以上傳網頁 第 2 種方法:使用 FileZilla上傳網頁 第 3 種方法:利用符號連結, 將系統首頁指向使用者個人網頁

18 開放 ftp 讓 root 可以上傳網頁 開放 root 帳號可以使用 ftp 登入。首先必須編輯 /etc/vsftpd/ftpusers 及 /etc/vsftpd/users_list , 將 root 帳號於名單中移除。 不過這個方法有安全上的顧慮, 故筆者不建議使用。

19 使用 FileZilla上傳網頁 由於 root 帳號預設不能使用 ftp 登入系統, 若您自行修改設定, 開放讓 root 可以使用 ftp, 則有可能會因為 ftp 在傳輸資料時沒有將資料加密, 而洩漏了 root 帳號的密碼。 解決方式可使用 FileZilla 工具來替代, 如此就可以放心的使用 root 帳號來上傳網頁。

20 利用符號連結, 將系統首頁指向使用者個人網頁
另一種狀況是系統管理者與網頁管理者為不同人時, 那麼這時就可以使用符號連結的方式, 將本機預設的首頁目錄 /var/www/html 連結到網頁管理者個人的網頁目錄 public_html 下。 您可依下列方式操作 (筆者以連結到 tony 使用者家目錄下的 public_html 為例):

21 利用符號連結, 將系統首頁指向使用者個人網頁

22 利用符號連結, 將系統首頁指向使用者個人網頁
如此, tony 只要將網頁上傳到自己家目錄下的 public_html 目錄中, 即完成本機預設首頁的更新。這樣的好處是 tony 不需知道 root 的密碼, 就可以更新本機的網頁。 而當 tony 卸除網頁管理者的職務時, root 只需將符號連結移除, 並建立新的符號連結到另一個網頁管理者的個人空間即可。

23 更改網頁預設顯示的語系 此 Linux 發行版內附的 Apache 伺服器, 預設顯示的語系並不是繁體中文 (Big5), 因此瀏覽者在瀏覽繁體中文 (Big5) 網頁時較不方便。即使我們在編寫網頁時, 於網頁原始檔指定使用者瀏覽時預設的編碼:

24 更改網頁預設顯示的語系 但是您會發現瀏覽網頁時, 還是無法以繁體中文(Big5)顯示網頁:

25 更改網頁預設顯示的語系 要解決這個問題, 請編輯 /etc/httpd/conf/httpd.conf 設定檔, 找到下列段落, 將網頁預設的語系改為繁體中文 (Big5):

26 更改網頁預設顯示的語系

27 更改網頁預設顯示的語系 修改完後, 請重新啟動 Apache, 讓設定生效, 網頁預設的語系即改為繁體中文 (Big5):

28 設定使用者網頁空間 除了預設的網站首頁, 系統貼心地讓每個使用者都可以擁有個人的網頁, 而其網頁需放在家目錄下的 public_html 目錄。

29 開放個人網站的功能 由於此功能預設並沒有開啟, 因此我們必須修改 Apache 的設定檔 (/etc/httpd/conf/httpd.conf), 開啟此項功能。請以文書編輯器開啟 /etc/httpd/conf/httpd.conf 檔, 找到下列的段落, 並做修改:

30 開放個人網站的功能

31 開放個人網站的功能 修改完後, 請重新啟動 Apache, 讓設定生效:

32 建立個人網站目錄 接著管理者可以為每個使用者建立存放個人網頁的目錄 public_html (如果使用者可以登入系統, 也可以讓使用者自行建立)。以下是為 tony 使用者建立網頁目錄的操作範例:

33 建立個人網站目錄

34 建立個人網站目錄 接下來, 使用者就可以將網頁資料傳送到自己的 public_html 目錄中 (首頁請命名為 index.html), 然後從網頁瀏覽器觀看結果:

35 建立個人網站目錄

36 建立個人網站目錄 如果您是使用網域名稱連線, 卻發生在另外一台電腦測試的時候, 始終都連不上的狀況, 那可能是因為您所使用的網址名稱並沒有註冊, 請改為使用 IP ( 如 連線。若是這樣仍然連不上, 請檢查您的 httpd.conf 檔中的 ServerName 那一行:

37 建立個人網站目錄 如果您的網站 IP 也是自己隨便給的, 那就沒辦法從其他台電腦正確地連到網頁伺服器了。此時您只能在本機使用 或 的方式來測試了。

38 個人網頁的網址一定 要有 "~" 嗎? 在網頁瀏覽器輸入使用者網頁的網址時, 需要在使用者帳號名稱前面加上 “~”, 例如要瀏覽 tony 使用者在 free.flag.com.tw 主機的網頁, 就要輸入 “ 。 如果您不想個人網頁的網址要加上煩人的 "~", 可利用下面方式取消網址的 "~" 符號。

39 個人網頁的網址一定 要有 "~" 嗎? 以下範例將以 tony 使用者的網頁網址為例, 請在 /etc/httpd/conf/httpd.conf 設定檔中加入下面的設定:

40 允許或拒絕某些網域存取 網站 Apache 伺服器有個過濾連線的功能, 它可讓您依使用者來源分類, 只有來自於所允許網域的使用者才可以瀏覽您的網頁。

41 適用的場合 一般而言若是架了網站, 大多是歡迎所有的人來參觀, 很少有拒人於千里之外的。不過仍有一些特殊的狀況, 您不希望所有的人都可以看到某些網頁: 公司內部的網頁, 只允許公司同仁觀看:若是公司對外的網頁伺服器與內部的網頁伺服器是同一台機器, 那麼別人就有可能瀏覽到公司內部的公告事項。您可以設定公司內部網的目錄只有公司內部的 IP 位址可瀏覽。

42 適用的場合 不同的部門, 依工作性質的不同, 而有不同的讀取權限:不同的部門間, 也可以設定只能瀏覽工作相關的網頁。
拒絕惡意份子讀取網頁:若是遇到惡意份子攻擊網頁伺服器, 或是用程式大量抓取網頁, 您也可以將其來源設為禁止瀏覽。 私密網頁, 只開放給某些人看:若您的網頁只是給親朋好友看的, 您可以開放他們常用的 IP 位址, 但拒絕其他位址的存取。

43 修改 httpd.conf 設定檔 要限制使用者存取網站目錄的權限, 需於 Apache 的設定檔裡設定。例如筆者想限制 /var/www/html/classmate 目錄的存取權限, 請以文書編輯器開啟/etc/httpd/conf/httpd.conf 檔, 於最後面加入下列的內容, 拒絕 、 *、*.giga.net.tw 及 *.cn 等 4 個來源位址讀取 /var/www/html/classmate 目錄:

44 修改 httpd.conf 設定檔 上述的 "Order" 設定項目是指定 "allow" 與 "deny" 的優先順序。

45 修改 httpd.conf 設定檔 例如以上範例將先讀取 “allow” 的設定內容, 再讀取 “deny” 的設定值, 如果兩項設定值抵觸, 將以後面的設定值優先。因此, 上述範例先利用 “Allow from all” 允許所有網域存取, 再使用 “Deny from giga.net.tw cn” 拒絕這 4 個網域的存取。

46 修改 httpd.conf 設定檔 因為 “allow” 與 “deny” 的優先順序是由 “Order” 所控制的, 所以下面寫法效果與前面相同:

47 修改 httpd.conf 設定檔 而以下的範例, 則只允許來自 的位址瀏覽網頁, 至於其他的來源均拒絕存取:

48 重新啟動 Apache 當設定好後, 請執行下列指令, 重新啟動 Apache:
此時設定就生效了, 若是拒絕名單中的主機存取了 /var/www/html/classmate 的網頁, 該使用者將會看到下列的網頁:

49 重新啟動 Apache

50 定期備份網頁 當學會 Apache 的安裝與設定, 了解如何去管理與維護網站之後, 您還必須知道怎樣備份網站內的各項資料, 以免發生意外時, 多年心血付之一炬。

51 備份系統網頁 要備份系統網頁, 您可使用 tar 指令來備份, 它是 Linux 系統上最常用的備份方式, 請執行下列指令備份 /var/www/html 目錄裡的所有檔案資料:

52 備份系統網頁 備份下來的檔案, 最好存放在不同的硬碟 分割區裡, 較為妥當。如能放置於其他硬碟或主機上, 則更有保障。您可參考 8-6 節所介紹過的排程指令來執行, 讓系統自動備份, 隨時確保資料完整無缺。請以 root 身份執行 crontab -e 指令, 加入以下內容: 以上指定每天早上 6 點及下午 6 點各備份一次系統網頁, 並將執行結果及錯誤訊息均導向到 /dev/null, 不寄送這些訊息。

53 備份使用者個人網頁 除了系統的網頁之外, 每個使用者可能也都有自己的網頁, 因此一個好的管理者也應備份每個使用者的網頁。不過由於使用者可能在他們的家目錄下儲存自己下載的檔案, 故我們不打算備份整個 /home 目錄, 以免造成檔案過大。

54 備份使用者個人網頁 由於每個使用者的網頁目錄 public_html 是分散在各自的家目錄下, 所以我們可以寫一個指令稿 (shell script 程式) 來處理這個問題。請在 /usr/local/bin 目錄下建立一個名為 backup-html.sh 的檔案, 內容如下:

55 備份使用者個人網頁 第一行 #!/bin/bash 設定指令稿執行時所用的 Shell。接著我們利用一個for 迴圈讀取 /home 目錄下有哪些使用者, 其中 “`” 為反引號, 兩個反引號之間的指令會被替換成執行結果, 如 `ls /home` 會被換成 tony vita ywwang wyw…(依您/home目錄裡的帳號而定)。

56 備份使用者個人網頁 而 ${i}_web 加上括號是為了避免 Shell 將變數 i 的名稱誤解為 i_web。`date + %Y%m%d` 會以系統當時的年、月、日來取代。因此壓縮之後, 檔名會類似:tony_web_ tgz。

57 備份使用者個人網頁 接著請執行 chmod 755 /usr/local/bin/backup-html.sh 指令, 將該檔案設定為可執行, 然後執行 mkdir /backup 指令, 建立一個目錄以存放備份檔。最後可以設定排程, 定時執行這個指令稿。請執行 crontab -e 指令, 加入下列內容:

58 22-5-2 備份使用者個人網頁 要還原備分網頁時, 只要將該檔案於使用者家目錄解開即可。例如要還原 tony 的網頁:


Download ppt "第 22 章 架設 WWW 伺服器."

Similar presentations


Ads by Google