Apache介紹
1995年,美國國家計算機安全協會(NCSA)的開發者創建了NCSZ全球網路服務軟體,其最大的特點是HTTP守護進程,它比當時的CERN伺服器更容易由源碼來配置和創建,又由於當時其他伺服器軟體的缺乏,他很快流行起來。但是後來,該伺服器的核心開發人員幾乎都離開了NCSA,一些使用者們自己成立了一個組織來管理他們編寫的補丁,於是Apache Group應運而生。他們把該伺服器軟體稱為Apache。Apache源於A patchy server的讀音,意思是充滿補丁的伺服器。如今Apache慢慢地已經成為Internet上最流行的Web伺服器軟體了。在所有的Web伺服器軟體中,Apache占據絕對優勢,遠遠領先排名第二的Microsoft IIS。Apache作為自由軟體之一,像其他自由軟體一樣,他們都是由許許多多的自由開發人員投入了大量的時間和精力來實現並逐步完善的,所以我們有理由相信Apache的發展前景會更好。
Apache 版本介紹
現在Apache HTTP 存在三種版本, 1.3 2.0 和2.2
在它的1.X版本年代,雖然Apache已經足夠穩定和強大並取得了舉足輕重的地位,但仍然存在著它無法覆蓋的區域而讓一些非全功能型的WEB伺服器取得了市場。在2.X中這一情況得到了很大的改善,編譯和安裝也變得簡單了些,Apache使用了標準GNU自動設定工具,對於Windows平台,它也提供了圖形化的安裝界面。在設定方面,新版本去掉了一些易讓人糊塗的指示符號,不過大部分工作仍然基於一個檔案的設定檔案。對那些習慣圖形界面設定工具的用戶可能有點麻煩。設定工具與核心的發布包是分離的,一些類似ApacheConf可以免費或以很低的價格的獲取,利用這些工具可以很方便的對Apache進行各種設定。
從運行的角度看,Apache2.X版本比老版本更加強大,更具可擴展性。一個多執行緒/多進程的混合模組使它可以充分利用各種規模的主機性能(從一台只運行小型站點的典型X86伺服器到同時運行多個虛擬實例的大型主機),這正是Apache1.3所缺乏的。新版本以外掛程式的形式提供了對一些特定平台和幾個通用模組的支持。對IPV6的官方支持已經為網際網路的升級做好了準備,對HTTP1.1的支持提高了代理伺服器的性能。
另外新版本的核心發布包中增加了幾個加強安全和可管理性的模組:mod_auth_ldap引入了基於LDAP(Lightweight Directory Access Protocol)認證,mod_autoindex模組可以很方便的生成目錄列表供訪問者使用,而mod_deflate模組允許內容在傳送前先進行壓縮以節約頻寬。
考慮到穩定性和擴展性, 本文中使用的是 Apache 2.0
Apache 的安裝
Apache 的安裝無外乎兩種方式: 原始碼安裝和DEB包安裝。這兩種安裝類型各有特色,DEB包安裝不需要編譯,而原始碼安裝則需要先配置編譯再安裝,DEB包安裝在一個固定的位置下,選擇固定的模組,而原始碼安裝則可以讓你選擇安裝路徑,選擇你想要的模組。本文主要介紹DEB安裝方式。
系統:GNU/Linux Debian/etch
Apache當前版本: 2.0.55-4
4.1 1. 安裝:
使用以下命令安裝:
tony@tonybox:~$sudo aptitude update
tony@tonybox:~$sudo aptitude install apache2 apache2-utils
其中apache2-utils提供了我們在配置維護過程中非常有用的一些工具
安裝完成後,可以使用下面的命令啟動Apache 服務:
tony@tonybox:~$ sudo /etc/init.d/apache2 start
停止Apache服務則是:
tony@tonybox:~$ sudo /etc/init.d/apache2 stop
也可以直接用 kill 命令強制殺死apache2進程
tony@tonybox:~$ sudo killall apache2
如有需要, 可以通過rcconf來控制是否在系統啟動是載入Apache 服務
啟動完成後打開瀏覽器, 使用URL http://localhost/ 來訪問已經啟動的Apache伺服器, 伺服器將會將會跳轉到 http://localhost/apache2-default/, 向瀏覽器返回一個Apache安裝成功的頁面.
注: 這取決於/etc/apache2/sites-available/default 配置檔案中, 是否取消了
RedirectMatch ^/$ /apache2-default/
行的注釋
4.2 2. 配置檔案說明
在Debian下, 安裝完成後, 軟體包為我們提供的配置檔案位於/etc/apache2目錄下:
tony@tonybox:/etc/apache2$ ls -l
total 72
-rw-r--r-- 1 root root 12482 2006-01-16 18:15 apache2.conf
drwxr-xr-x 2 root root 4096 2006-06-30 13:56 conf.d
-rw-r--r-- 1 root root 748 2006-01-16 18:05 envvars
-rw-r--r-- 1 root root 268 2006-06-30 13:56 httpd.conf
-rw-r--r-- 1 root root 12441 2006-01-16 18:15 magic
drwxr-xr-x 2 root root 4096 2006-06-30 13:56 mods-available
drwxr-xr-x 2 root root 4096 2006-06-30 13:56 mods-enabled
-rw-r--r-- 1 root root 10 2006-06-30 13:56 ports.conf
-rw-r--r-- 1 root root 2266 2006-01-16 18:15 README
drwxr-xr-x 2 root root 4096 2006-06-30 13:56 sites-available
drwxr-xr-x 2 root root 4096 2006-06-30 13:56 sites-enabled
drwxr-xr-x 2 root root 4096 2006-01-16 18:15 ssl
其中
apache2.conf
為apache2伺服器的主配置檔案, 查看此配置檔案, 你會發現以下內容
# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
# Include all the user configurations:
Include /etc/apache2/httpd.conf
# Include ports listing
Include /etc/apache2/ports.conf
# Include generic snippets of statements
Include /etc/apache2/conf.d/[^.#]*
有此可見, apache2 根據配置功能的不同, 對配置檔案進行了分割, 這樣更利於管理
conf.d
下為配置檔案的附加片斷,默認情況下, 僅提供了 charset 片斷,
tony@tonybox:/etc/apache2/conf.d$ cat charset
AddDefaultCharset UTF-8
如有需要我們可以將默認編碼修改為 GB2312, 即檔案的內容為: AddDefaultCharset GB2312
httpd.conf
是個空檔案
magic
檔案中包含的是有關mod_mime_magic模組的數據, 一般不需要修改它.
ports.conf
則為伺服器監聽IP和連線埠設定的配置檔案,
tony@tonybox:/etc/apache2$ cat ports.conf
Listen 80
mods-available
目錄下是一些.conf和.load 檔案, 為系統中可以使用的載入各種模組的配置檔案, 而mods-enabled目錄下則是指向這些配置檔案的符號連線, 從配置檔案apache2.conf 中可以看出, 系統通過mods-enabled目錄來載入模組, 也就是說, 系統僅通過在此目錄下創建了符號連線的mods-available 目錄下的配置檔案來載入模組。同時系統還提供了兩個命令 a2enmod 和 a2dismod用於維護這些符號連線。這兩個命令由 apache2-common 包提供。命令格式也非常簡單: a2enmod [module] 或 a2dismod [module]
sites-available
目錄下為配置好的站點的配置檔案, sites-enabled 目錄下則是指向這些配置檔案的符號連線, 系統通過這些符號連線來起用站點 sites-enabled目錄下的符號連線附有一個數字前綴, 如000-default, 這個數字用於決定啟動順序, 數字越小, 啟動優先權越高. 系統提供了兩個命令 a2ensite 和 a2dissite 用於維護這些符號連線。這兩個命令由 apache2-common 包提供.
/var/www
默認情況下將要發布的網頁檔案應該置於/var/www目錄下,這一默認值可以同過主配置檔案中的DocumnetRoot 選項修改.