web server 架設

48
1 Web Server 架架

Upload: garrett-rivas

Post on 30-Dec-2015

46 views

Category:

Documents


2 download

DESCRIPTION

Web Server 架設. Outline. 簡介 Apache 安裝 Apache 設定檔案 Apache 進階管理 架設 Virtual Web. www 與 http 簡介. WWW ( World Wide Web) 全球資訊網,是 Internet 上的一項網路服務,讓使用者可以用點擊超連結 (Hyperlink) 的方式將資訊傳遞到全世界。 HTTP( H yper  T ext  T ransfer  P rotocol ) ,在 WWW Server 與 Client 端瀏覽器之間,用來彼此溝通的協定。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Web Server  架設

1

Web Server 架設

Page 2: Web Server  架設

2

OutlineOutline

簡介簡介 Apache Apache 安裝安裝Apache Apache 設定檔案設定檔案Apache Apache 進階管理進階管理架設架設 Virtual WebVirtual Web

Page 3: Web Server  架設

3

www 與 http 簡介

WWW ( World Wide Web) 全球資訊網,是 Internet 上的一項網路服務,讓使用者可以用點擊超連結 (Hyperlink) 的方式將資訊傳遞到全世界。

HTTP(Hyper Text Transfer Protocol ) ,在 WWW Server 與 Client 端瀏覽器之間,用來彼此溝通的協定。

 URL (Uniform Resource Locator) ,連結 WWW 的語法。< 協定 >://< 主機位址或主機名稱 >[:port]/< 目錄資源 > ex: http://www.edu.tw

Page 4: Web Server  架設

4

Apache 簡介Apache 的前身為 NCSA ( National Center for

Supercomputing Applications ) ,於 1995 年為排名第一的 Web Server 軟體。

Apache 名稱的由來是因為當初的研發團隊針對 NCSA 不斷的修正而來: a patchy server ,才取名為 Apache 。

因與美國的一個原住民名稱相同,所以 Logo 就以彩色的羽毛來作為其標誌圖案。

Apache 1.0 版於 1995 年 12 月正式釋出。

Apache 2.X 版支援非 UNIX 平台及 IPv6 。官方網站 http://www.apache.org ,可以下載各

種作業系統版本的 Apache 套件 ( 包括 Windows 版本 ) 。

Page 5: Web Server  架設

5

不確定是否已安裝# rpm –q httpd

安裝 Apache 套件# yum –y install httpd

更新套件#yum –y update httpd

安裝 Apache 伺服器

Page 6: Web Server  架設

6

啟動 Apache 伺服器#/etc/rc.d/init.d/httpd start

重新啟動 Apache 伺服器#/etc/rc.d/init.d/httpd restart

停止 Apache 伺服器#/etc/rc.d/init.d/httpd stop

不能啟動或啟動錯誤需檢查 httpd 設定檔#vi /etc/httpd/conf/httpd.conf

啟動 Apache 伺服器

Page 7: Web Server  架設

7

用瀏覽程式測試 Apache 伺服器URL = http://localhost or

http://127.0.0.1

執行 ps aux | grep httpd 可看到 httpd (http daemon) 程序在執行。

測試 Apache 伺服器

Page 8: Web Server  架設

8

方法一用 root 執行「 ntsysv 」 選取「 httpd 」

方法二# chkconfig httpd on

開機時自動啟動 Apache 伺服器

Page 9: Web Server  架設

9

維護系統網頁本機首頁的位置是放在 「 /var/www/html 」 目錄

下,而擁有者是屬於『 root 』。更新系統預設的網頁

◦ 必須以 root 身份登入才可更動◦ 如何上傳系統網頁◦ 更改網頁預設顯示的語系

Page 10: Web Server  架設

10

1. 開放 ftp 讓 root 可以上傳網頁2. 透過使用 ssh 協定的加密檔案程式 SSH

FileTransfer (FileZilla) 上傳網頁3. 利用符號連結,將系統網頁指向使用者個

人網頁

如何上傳系統網頁

Page 11: Web Server  架設

11

利用符號連結,將系統網頁指向使用者個人網頁# cd /var/www#mv html html.old#chmod +x /home/wei#ln –s /home/wei/public_html html

上傳系統網頁

Page 12: Web Server  架設

12

預設顯示的語系並不是繁體中文 (Big5) ,因此在瀏覽繁體中文 (Big5) 網頁時較不方便。

更改網頁預設顯示的語系# vi /etc/httpd/conf/httpd.conf

759 #AddDefaultCharset UTF-8 760 AddDefaultCharset Big-5

更改網頁預設語系

Page 13: Web Server  架設

13

設定使用者網頁空間除了預設的網站網頁,系統讓每個使

用者都可以擁有個人的網頁,而其網頁需放在家目錄下的 public_html 目錄。

Page 14: Web Server  架設

14

#vi /etc/httpd/conf/httpd.conf 366 行 UserDir disabled 373 行 #UserDir public_html

UserDir Disable 』 #UserDir Disable #UserDir public_html 』 UserDir public_html

重新啟動 httpd

開放個人網站的功能

Page 15: Web Server  架設

15

為使用者 wei 建立網頁目錄#cd /home/wei#mkdir public_html/#chown wei.wei public_html/#cd ..#chmod 711 wei

建立個人網站目錄

Page 16: Web Server  架設

16

確認是否關閉 SELinux#vi/etc/sysconfig/selinux SELINUX=disabled

確認防火牆是否關閉#service iptables stop

建立個人網站目錄

Page 17: Web Server  架設

17

個人網頁的網址一定要有 "~" 嗎?

在網頁使用者網頁的網址時 , 需要在使用者帳號名稱前面加上 “~” 。

如果個人網頁的網址要加上“ ~”, 可利用下面方式取消網址的 “ ~” 符號。

# vi /etc/httpd/conf/httpd.conf

Alias /wei/ "/home/wei/public_html/"

Page 18: Web Server  架設

18

Apache 設定檔案與參數說明 (1) 主要檔案 : httpd.conf 、 srm.conf 、

access.confhttpd.conf 設定檔案常見參數說明 :------------------------------------------------------------------------

--ServerType - 設定啟動方式 ( standalone 或 inet )

● ServerType standalone

DocumentRoot - 指定 Document 目錄位置● DocumentRoot /usr/local/apache/htdocs

ServerAdmin - 指定管理員的 e-mail 帳號● ServerAdmin webadm@hostname

Page 19: Web Server  架設

19

Apache 參數說明 (2)User - 設定 apache daemon 常駐時使用該

UserID 工作● User nobody ( 建議可以調整成為 apache 身份 )

Group - 設定 apache daemon 常駐時使用該 Group 工作● Group noody ( 建議可以調整成為 apache 群組 )

ServerRoot - 指定 Apache 的跟目錄位置● ServerRoot /usr/local/apache

StartServers - 設定啟動時,要建立幾個子行程常駐,預設 5● StartServers 5

Page 20: Web Server  架設

20

Apache 參數說明 (3)MaxClients - 設定最多產生多少行程提供服務,最多 256● MaxClients 256

Listen - 設定監聽的位址 (IP 、 Port 、 IP:Port) ,

能出現多次● Listen 80

● Listen 111.222.111.222:80

BindAddress - 設定監聽的位址 ( 同 Listen ,不過支援 Virtual Host) ,只能出現一次● BindAddress *

Page 21: Web Server  架設

21

Apache 參數說明 (4)UserDir - 設定使用者網頁目錄位置

● UserDir public_html www

AccessFileName - 設定存取控制讀取的檔案名稱 ● AccessFilename .htaccess

ErrorLog - 指定錯誤記錄檔名稱 ● ErrorLog /usr/local/apache/logs/error_log

CustomLog - 指定存取的記錄檔案名稱 ● CustomLog /usr/local/apache/logs/httpd/access_log

common

(註 : common 為 LogFormat 參數所定義記錄 log 的格式 )

Page 22: Web Server  架設

22

Apache參數說明 (5)ScriptAlias - 建立 script 的別名路徑

● ScriptAlias /cgi-bin /usr/local/apache/cgi-bin

DirectoryIndex - 設定尋找預設首頁的檔案名稱 ● DirectoryIndex index.html index.htm index.php3

HostnameLookups – 設定是否紀錄反查連線主機名稱 ● HostnameLookups Off

PIDFile – 設定紀錄 httpd 程式 pid 的檔案 ● PIDFile /var/run/httpd.pid

Alias - 建立一般目錄別名路徑 ● Alias /icons /usr/local/apache/icons

Page 23: Web Server  架設

23

Apache參數說明 (6)Directory 區段 :

<Directory “/path/dirname”>

Options FllowSymlinks Indexes ExecCGI

AllowOverride All

Order Allow,deny

Allow from xxx.xxx.xxx.xxx

Deny from all

</Directory>

Page 24: Web Server  架設

24

Apache參數說明 (7)Directory 區段內的 Options:

◦ All : 全部打開 ( 預設 )◦ ExecCGI : 允許 CGI 功能機制◦ FllowSymlinks : 允許 symlink 檔案連結◦ Includes : 開啟 SSI 功能機制◦ IncludesNOEXEC : 開啟 SSI 機制,不過關閉

SSI 內 #exec 、 #include CGI 等敘述◦ Indexes : 若是沒有預設 index 檔案,顯示清單

Page 25: Web Server  架設

25

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

Page 26: Web Server  架設

26

適用的場合

有一些特殊的狀況 , 您不希望所有的人都可以看到某些網頁:◦公司內部的網頁 , 只允許公司同仁◦觀看不同的部門 , 依工作性質的不同 , 而有

不同的讀取權限◦拒絕惡意份子讀取網頁◦私密網頁 , 只開放給某些人看

Page 27: Web Server  架設

27

修改 httpd.conf 設定檔要限制使用者存取網站目錄的權限 , 需

於 Apache 的設定檔裡設定。Ex:想限制 /var/www/html/classmate

目錄的存取權限# vi /etc/httpd/conf/httpd.conf 最後面加入下列的內容 , 拒絕

192.168.0.35 、 192.168.1.*、 *.giga.net.tw 及 *.cn 等 4 個來源位址讀取 /var/www/html/classmate 目錄:

Page 28: Web Server  架設

28

修改 httpd.conf 設定檔

上述的 "Order" 設定項目是指定 "allow" 與 "deny" 的優先順序。

Page 29: Web Server  架設

29

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

Page 30: Web Server  架設

30

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

Page 31: Web Server  架設

31

修改 httpd.conf 設定檔只允許來自某個 IP 位址瀏覽網頁其他的來源均拒絕存取

修改好之後重啟 httpd 服務,若是拒絕名單中的主機存取了 /var/www/html/classmate 的網頁 , 則該使用者將會看到下列的說明 :

Page 32: Web Server  架設

32

設定個人網頁的密碼保護要將私密資料的網頁 (wei.html) 放在「 /

home/wei/public_html/other 」底下 並對該網頁設定密碼檢查 ,必須在該目錄下產生 二個檔案「 .htaccess 」 及 「 .htpasswd 」 。

Page 33: Web Server  架設

33

開啟密碼保護# vi /etc/httpd/conf/httpd.conf將 380~391 行的 # 全部刪除

380 <Directory /home/*/public_html>

391 </Directory>

Page 34: Web Server  架設

34

.htaccess 檔$cd /home/wei/public_html/ $mkdir other $cd other $vi .htaccess

<Limit GET> require user wei</Limit> AuthType Basic AuthName wei AuthUserFile

/home/wei/public_html/other/.htpasswd

Page 35: Web Server  架設

35

設 定 個 人 網 頁 的 密 碼建立 wei 的密碼檔

$ htpasswd -c .htpasswd wei 測試

Page 36: Web Server  架設

36

定期備份網頁當學會 Apache 的安裝與設定 , 了解

如何去管理與維護網站之後 , 您還必須知道怎樣備份網站內的各項資料 , 以免發生意外時 , 多年心血付之一炬。

Page 37: Web Server  架設

37

備份系統網頁備份系統網頁 , 使用 tar 指令來備份 , 它 , 請執行下列指令備份 /var/www/html 目錄裡的所有檔案資料:

Page 38: Web Server  架設

38

備份系統網頁備份下來的檔案 , 最好存放在不同的硬碟分割區裡 , 較為妥當。如能放置於其他硬碟或主機上 , 則更有保障以排程指令來執行,讓系統自動備份 , 隨時確保資料完整無缺。

# crontab -e 指令 , 加入以下內容:

指定每天早上 6 點及下午 6 點各備份一次系統網頁 , 並將執行結果及錯誤訊息均導向到 /dev/null, 不寄送這些訊息。

Page 39: Web Server  架設

39

備份使用者個人網頁除了系統的網頁之外 , 每個使用者可

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

Page 40: Web Server  架設

40

備份使用者個人網頁由於每個使用者的網頁目錄

public_html 是分散在各自的家目錄下 , 可以寫一個 shell script 來處理這個問題。

在 /usr/local/bin 目錄下建立一個名為 backup-html.sh 的檔案 , 內容如下:

Page 41: Web Server  架設

41

備份使用者個人網頁第一行 #!/bin/bash 設定指令稿執行時所

用的 Shell 。接著利用一個 for 迴圈讀取 /home 目錄下有哪些使用者 , 其中 “ `” 為反引號 , 兩個反引號之間的指令會被替換成執行結果。

Page 42: Web Server  架設

42

備份使用者個人網頁而 ${i}_web 加上括號是為了避免

Shell 將變數 i 的名稱誤解為 i_web 。`date + %Y%m%d` 會以系統當時的年、月、日來取代。因此壓縮之後 , 檔名會類似:wei_web_20120521.tgz 。

Page 43: Web Server  架設

43

備份使用者個人網頁# chmod 755

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

Page 44: Web Server  架設

44

備份使用者個人網頁要還原備分網頁時 , 只要將該檔案於

使用者家目錄解開即可,即可還原備份的資料。

還原 wei 的網頁:#cp wei_web_20120521.tgz /home/wei#cd /home/wei#tar zxvf wei_web_20120521.tgz

Page 45: Web Server  架設

45

虛擬主機 (Virtual Host) (1)虛擬主機部分,在 Apache 設定主要可以區分 :

◦ Name-based Virtual Hosts

◦ IP-based Virtual Hosts

Name-Based Virtual Hosts :

◦單一 IP 上,多個 WebSite 主機名稱 IP-Based Virtual Hosts:

◦ 不同 IP 上,每個 IP 各有其 WebSite 主機

Page 46: Web Server  架設

46

虛擬主機 (Virtual Host) (2)Name-Based Virtual Hosts 設定範例 :

NameVirtualHost 111.22.33.44 Name-Based 需要<VirtualHost 111.22.33.44>

ServerName www.abc.com.tw

ServerAdmin [email protected]

DocumentRoot /www/domain/www.abc.com.tw

DirectoryIndex index.html index.htm index.php3

ErrorLog /var/log/httpd/www.abc.com.tw_error_log

TransferLog /var/log/httpd/www.abc.com.tw_access_log

</VirtualHost>

Page 47: Web Server  架設

47

虛擬主機 (Virtual Host) (3) IP-Based Virtual Hosts 設定範例 :

<VirtualHost www.xxx.com.tw>

ServerName www.xxx.com.tw

ServerAdmin [email protected]

DocumentRoot /www/domain/www.xxx.com.tw

DirectoryIndex index.html index.htm index.php3

ErrorLog /var/log/httpd/www.xxx.com.tw_error_log

TransferLog /var/log/httpd/www.xxx.com.tw_access_log

</VirtualHost>

Page 48: Web Server  架設

48

相關網站文件與書籍Apache 的網站

http://www.apache.org

http://httpd.apache.org/docs/

Apache 參考網站http://linux.vbird.org/linux_server/0360apache.php