Download presentation
Presentation is loading. Please wait.
1
第 26 章 架設 W W W 伺服器 著作權所有 © 旗標出版股份有限公司
2
前言 WWW 網站的發展相當快速, 可以透過網頁購物、下單買賣股票、金融轉帳以及查詢資料等等
同時也有很多提供免費網站的公司, 讓人們可以放置自己建立的網頁, 以吸引廣大的群眾上網瀏覽 WWW 服務儼然已成為 Internet 上最受歡迎的功能。 由於 Linux 作業系統的穩定性高且成本低廉, 因此許多人都採用 Linux 系統, 再加上 Apache 網頁伺服軟體來建構網站
3
本章提要 安裝與啟動 Apache 伺服器 維護系統首頁 設定使用者網頁空間 允許或拒絕某些網域存取網站 定期備份網頁
4
安裝與啟動 Apache 伺服器 早期的 Apache 伺服器由 Apache Group 開發與維護, 直到了 1999 年 6 月 30 日, Apache Software Foundation (Apache 軟體基金會, 簡稱 ASF) 成立, Apache 伺服器才由 ASF 接手 目前有幾家主要的公司 (例如 IBM、 Sun Microsystems 與 Oracle 等) 在背後支持後續的開發計劃, 使得 Apache 伺服器可以持續的發展
5
安裝與啟動 Apache 伺服器 Apache 伺服器是目前使用率最高, 也是 Linux 系統中最被廣泛使用的網頁伺服器, 幾乎各種 Linux 發行版中都會內附 Apache 的官方網站 中, 可以下載各種作業系統版本的 Apache 套件 (也包括 Windows 版本)
6
安裝與啟動 Apache 伺服器 啟動 Apache 伺服器 安裝 Apache 伺服器 如何取得新版的 Apache
7
啟動 Apache 伺服器 此 Linux 發行版中已經內附 Apache 伺服器 2.0 (正式名稱是 Apache HTTP 伺服器) 軟體套件 如果已經安裝了, 請先依下列方式操作, 啟動 Apache 伺服器:
8
啟動 Apache 伺服器 Apache 伺服器啟動後, 就可以用網頁瀏覽器連上去看看 (以下使用 IE 瀏覽器):
9
啟動 Apache 伺服器 出現上頁畫面, 表示 Apache 伺服器已啟動
可以執行 ps -aux | grep httpd 指令看到 httpd (http daemon) 的程序在執行 如果有申請像 這樣的網址, 則可在網頁瀏覽器中直接輸入該名稱, 否則請使用 IP 位址當做網站的 URL 如果電腦根本沒有固定的 IP, 也可以在本機上使用 或是 自我陶醉一番
10
安裝 Apache 伺服器 如果尚未安裝, 則可從書附第 1 片光碟的 /Fedora/RPMS 目錄中找到 httpd i386.rpm 檔, 然後用 rpm 指令安裝:
11
如何取得新版的 Apache Apache 也會持續更新版本, 可參考 http://www.apache.org 網站得到最新的消息
新版本通常會修正一些錯誤或是增加新的功能 以下網址可下載新版的 Apache 伺服器套件
12
如何取得新版的 Apache 安裝新版 Apache 伺服器時, 其預設的安裝路徑可能會與原來內附套件路徑不同
一般 tar.gz 版本的套件, 預設會安裝到 /usr/local/apache 目錄
13
重新啟動 Apache Apache 的主要設定檔為 /etc/httpd/conf/http.conf
因此每次修改這個檔之後, 都需要重新啟動 httpd, 如此所做的改變才會有作用 通常在執行 httpd 之前, 會先使用 ps aux 指令查看一下目前 httpd 是否已在執行 若已執行, 需先將其結束, 再啟動 httpd
14
重新啟動 Apache httpd 還可以加上 restart、reload、condrestart 與 status 等設定參數
加上 --help 指令可以看到其他更多的參數
15
開機時自動啟動 Apache 若想讓系統開機時自動執行 httpd, 只要執行 ntsysv 指令, 選取 httpd 服務即可
16
維護系統首頁 本機首頁的位置是放在 /var/www/html 目錄下, 擁有者是 root
如何上傳網頁 更改網頁預設顯示的語系
17
如何上傳網頁 常見的情況是, 使用者在 Windows 做好了網頁, 卻不知該如何上傳到 Apache 伺服器
由於 /var/www/html 只能以 root 身份存取, 但偏偏 root 身份預設無法使用 ftp 上傳網頁 因此提供以下幾個方法
18
如何上傳網頁 方法 1:開放 ftp 讓 root 可以上傳網頁
可編輯 /etc/vsftp.ftpusers 及 /etc/vsftp.users_list 檔, 將 root 帳號於名單中移除, 開放 root 帳號可以使用 ftp 登入 不過這個方法有安全上的顧慮, 故不建議使用
19
如何上傳網頁 方法 2:使用 WinSCP 上傳網頁 使用 WinSCP 工具, 就可以使用 root 帳號透過 SSH 上傳網頁
在 download.php 網頁, 點選 "WinSCP application" 連結, 即可下載 WinSCP342.exe 檔 下載後, 在 MS Windows 下直接執行即可使用 WinSCP 工具
20
如何上傳網頁 方法 3:利用符號連結, 將系統首頁指向使用者個人網頁
系統的管理者與網頁的管理者為不同人時, 可以使用符號連結的方式, 將本機預設的首頁目錄 /var/www/html 連結到網頁管理者個人的網頁目錄 public_html 下 以下以連結到 wyw 使用者家目錄下的 public_html 為例操作
21
如何上傳網頁
22
如何上傳網頁 如此, wyw 只要將網頁上傳到自己家目錄下的 public_html 目錄中, 即完成本機預設首頁的更新
這樣的好處是 wyw 不需知道 root 的密碼, 就可以更新本機的網頁 當 wyw 卸除網頁管理者的職務時, root 只需將符號連結移除, 並建立新的符號連結到另一個網頁管理者的個人空間即可
23
更改網頁預設顯示的語系 此 Linux 發行版內附的 Apache 伺服器, 預設顯示的語系並不是繁體中文
瀏覽者在瀏覽繁體中文網頁時較不方便 即使在編寫網頁時, 於網頁原始檔指定使用者瀏覽時預設的編碼:
24
更改網頁預設顯示的語系 仍會發現瀏覽網頁時, 還是不會以繁體中文顯示網頁:
25
更改網頁預設顯示的語系 請編輯 /etc/httpd/conf/httpd.conf 設定檔, 將網頁預設的語系改為繁體中文:
26
更改網頁預設顯示的語系 修改完後, 請重新啟動 Apache, 讓設定生效, 網頁預設的語系即改為繁體中文:
27
設定使用者網頁空間 除了預設的網站首頁, 每個使用者都可以擁有個人的網頁 使用者的個人網頁需放在家目錄下的 public_html 目錄
開放個人網站的功能 建立個人網站目錄
28
開放個人網站的功能 個人網站功能預設並沒有開啟 必須修改設定檔 /etc/httpd/conf/httpd.conf, 開啟此功能:
29
開放個人網站的功能 修改完後, 重新啟動 Apache 讓設定生效:
30
建立個人網站目錄 管理者可以為每個使用者建立存放個人網頁的目錄 public_html 如果使用者可以登入系統, 也可以由使用者自己去建立
31
建立個人網站目錄 以下為 wyw 使用者建立網頁目錄:
32
建立個人網站目錄 使用者將網頁傳送到自己的 public_ html 目錄中, 就可以從瀏覽器觀看結果:
33
建立個人網站目錄 如果使用網域名稱連線, 卻發生在另外一台電腦測試的時候, 始終都連不上的狀況
可能是因為所使用的網址名稱並沒有註冊 請改為使用 IP ( 連線 若仍然連不上, 請檢查的 httpd.conf 檔中的 ServerName 設定:
34
建立個人網站目錄 如果網站 IP 也是自己隨便給的, 那就沒辦法從其他台電腦正確地連到網頁伺服器了
此時只能在本機使用 或 / 的方式來測試了
35
個人網頁的網址 一定要有 "~" 嗎? 在網頁瀏覽器輸入使用者網頁的網址時, 需要在使用者帳號名稱前面加上 "~"
如果不想加上 "~",請在設定檔/etc/httpd/conf/httpd.conf 中加入下面的設定 (以 wyw 為例):
36
允許或拒絕某些網域存取網站 Apache 伺服器有個過濾瀏覽者的功能 可依使用者來源分類, 只有來自於所允許網域的使用者才可以瀏覽網頁
適用的場合 修改 httpd.conf 設定檔 重新啟動 Apache
37
適用的場合 公司內部的網頁, 只允許公司同仁觀看: 不同的部門, 依工作性質的不同, 而有不同的讀取權限:
若公司對外的網頁伺服器與內部的網頁伺服器是同一台機器, 可以設定公司內部網頁的目錄只有公司內部的 IP 位址可以瀏覽 不同的部門, 依工作性質的不同, 而有不同的讀取權限: 不同的部門間, 可以設定只能瀏覽工作相關的網頁
38
適用的場合 拒絕惡意份子讀取網頁: 私密網頁, 只開放給某些人看:
若是遇到惡意份子攻擊網頁伺服器, 或是用程式大量抓取網頁, 可以將其來源設為禁止瀏覽 私密網頁, 只開放給某些人看: 若網頁只是給親朋好友看的, 可以開放他們常用的 IP 位址, 但拒絕其他位址的存取
39
修改 httpd.conf 設定檔 要限制使用者存取網站目錄的權限, 需於 Apache 的設定檔裡設定
例如想限制 /var/www/html/classmate 目錄的存取權限, 拒絕 、 、*.giga.net.tw 及 *.cn 等 4 個來源位址讀取 /var/www/html/classmate 目錄, 可如下修改
40
修改 httpd.conf 設定檔 修改 /etc/httpd/conf/httpd.conf 檔:
41
修改 httpd.conf 設定檔 "Order" 設定項目用以指定 "allow" 與 "deny" 的優先順序
若兩項設定值抵觸, 將以後面的設定值優先 上述範例先用 "Allow from all" 允許所有網域存取, 再用 "Deny from giga.net.tw cn" 拒絕這 4 個網域的存取
42
修改 httpd.conf 設定檔 因為 "allow" 與 "deny" 的優先順序由 "Order" 控制, 所以下列 2 種寫法效果均相同:
43
修改 httpd.conf 設定檔 以下的範例, 只允許來自 的位址瀏覽網頁, 其他的來源均拒絕存取:
44
重新啟動 Apache 設定好後, 執行下列指令重新啟動 Apache, 設定就生效了:
此時若是拒絕名單中的主機存取了 /var/www/html/classmate 的網頁, 該使 用者將會看到如下網頁
45
重新啟動 Apache
46
定期備份網頁 學會 Apache 的安裝與設定, 了解如何去管理與維護網站之後, 還必須知道怎樣備份網站內的各項資料, 以免發生意外時, 多年心血付之一炬 備份系統網頁 備份使用者個人網頁
47
備份系統網頁 可使用 tar 指令來備份系統網頁 tar 指令是 Linux 系統上最常用的備份方式
請執行下列指令備份 /var/www/html 目錄裡的所有檔案資料:
48
備份系統網頁 備份下來的檔案, 最好存放在不同的硬碟分割區裡, 較為妥當 如能放置於其他硬碟或主機上, 則更有保障
也可使用 crond 定時器, 讓系統自動備份, 隨時確保資料完整無缺
49
備份系統網頁 請以 root 身份執行 crontab -e 指令, 加入以下內容:
以上指定每天早上 6 點及下午 6 點各備份一次系統網頁, 並將執行結果及錯誤訊息均導向到 /dev/null, 不寄送這些訊息
50
備份使用者個人網頁 一個好的管理者也應備份使用者的網頁 使用者可能在家目錄下儲存許多檔案, 故不備份整個 /home 目錄, 以免檔案過大
使用者的網頁目錄 public_html 是分散在各自的家目錄下, 所以可以寫一個指令稿 (shell script 程式) 來處理這個問題
51
備份使用者個人網頁 請在 /usr/local/bin 目錄下建立一個名為 backup-html.sh 的檔案, 內容如下:
52
備份使用者個人網頁 第一行 #!/bin/bash 指定指令稿執行時所用的 Shell
接著利用 for 迴圈讀取 /home 目錄下的使用者 其中 "`" 為反引號, 兩個反引號之間的指令會被替換成執行結果 如 `ls /home` 會被換成 tony vita ywwang wyw... (依 /home 目錄裡的帳號而定)
53
備份使用者個人網頁 而 ${i}_web 加上括號是為了避免 Shell 將變數 i 的名稱誤解為 i_web
`date + %Y%m%d` 會以系統當時的年、月、日來取代, 因此壓縮之後, 檔名會類似:wyw_web_ tgz
54
備份使用者個人網頁 接著請執行 chmod 755 /usr/local/bin/backup-html.sh 指令, 將該檔案設定為可執行
然後執行 mkdir /backup 指令, 建立一個目錄以存放備份檔 接著可設定 cron, 定時執行這個指令稿 請執行 crontab -e 指令, 加入下列內容:
55
還原備份網頁 還原備分網頁時, 只要將該檔案於使用者家目錄解開即可 (例如還原 wyw 的網頁):
Similar presentations