Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,能夠在大多數計算機操做系統中運行,因爲其多平臺和安全性[1]被普遍使用,是最流行的Web服務器端軟件之一。它快速、可靠而且可經過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。 html
功能包括目錄索引、目錄別名、內容協商、可配置的HTTP錯誤報告、CGI程序的SetUID執行、子進程資源管理、服務器端圖像映射、重寫URL、URL拼寫檢查以及聯機手冊等。 linux
Apache HTTP服務器自己沒有提供Servlet/JSP容器。所以,在實際應用中,把Tomcat與Apache集成,能夠創建具備實用價值的商業化的Web平臺。 c++
下載文件,window版本,http://httpd.apache.org,下載文件爲httpd-2.2.22-win32-x86-openssl-0.9.8t.msi。 apache
下載TAR包 瀏覽器
須要使用到的tar包有: 安全
httpd-2.2.22.tar.gz,apr-1.4.6.tar.gz,apr-util-1.5.2.tar.gz,pcre-8.32.tar.gz 服務器
安裝TAR包 ide
將每一個tar包解壓之後(tar –vxf),開始安裝。 安裝順序爲apr、apr-util、pcre、httpd。 函數
若是在執行make是說找不到gcc編譯環境,那麼須要安裝gcc編譯環境: 性能
i. 安裝apr
ii. 安裝apr-util
iii. 安裝pcre
iv. 安裝httpd
v. 啓動httpd
1. 啓動 apachectl -k start
2. 中止 apachectl -k stop
3. 狀態 apachectl –k graceful
4. 重啓 apachectl –k restart
必須修改<IfModule unixd_module>中的所屬用戶和組。後面添加虛擬路徑的文件夾必須擁有這個用戶和組的讀寫權限,不然會報權限的錯。
打開conf文件夾,在httpd.conf配置文件中添加一段:
經過ls –l查看此文件夾的權限,看apache運行的用戶是否擁有權限。
能夠經過chown user file –R修改文件夾的擁有者、chgrp group file –R修改文件夾的擁有組。
系統服務裏面沒有apache或者httpd服務,每次啓動都要/usr/local/apache2/bin/apachectl start。比較麻煩,下面的操做能夠將httpd裝入到服務中,同理也能夠用到其餘的服務操做。
1.將apachectl文件拷貝到/etc/rc.d/init.d 中,而後在/etc/rc.d/rc5.d/下加入連接便可。命令以下:
cp bin/apachectl /etc/init.d/httpd //若是有其餘的版本的Apache存在,也能夠直接覆蓋掉
ln -s /etc/init.d/httpd /etc/rc.d/rc5.d/S85httpd //創建連接(85的意義後面介紹)
此時Apache就能夠自動啓動了。
2.運行chkconfig --list,發現沒有linux服務列表中httpd,經過chkconfig –add httpd來添加,可是提示:httpd服務不支持 chkconfig。
須要編輯/etc/rc.d/init.d/httpd,添加如下注釋信息:
# chkconfig: 345 85 15
# description: Activates/Deactivates Apache Web Server
第一行3個數字參數意義分別爲:哪些Linux級別須要啓動httpd(3,4,5);啓動序號(85);關閉序號(15)。
保存後執行:chkconfig --add httpd,成功添加。
在rc3.d、rc4.d、rc5.d路徑中會出現S85httpd的連接文件,其餘運行級別路徑中會出現K61httpd的連接文件。
三、運行chkconfig --list httpd 這時已經能夠看到httpd服務了。此時就可使用service httpd命令了。
service httpd start
service httpd restart
service httpd stop
service httpd status
全局變量Global Environment
字段名 | 默認值 | 說明 |
ServerRoot> | ServerRoot指令設置了服務器所在的 目錄。通常來講它將包含conf/和logs/子目錄。使用DEB包安裝的系統, 此項的默認值爲 "/etc/apache2" 也就是說僅僅包括apache2的配置文件.必須注意, 該目錄是受保護的, 不容許非root用戶對其進行修改. | |
PidFile | /var/run/apache.pid | 指定記錄httpd配置文件守護進程的進程號的文件。因爲httpd配置文件能自動複製其自身,所以系統中有多個httpd進程,但只有一個進程爲最初啓動的進程,它爲其餘進程的父進程。對這個進程發送 信號將影響全部的httpd進程。PidFile定義的文件中就記錄httpd 父進程的進程號。 |
DocumentRoot | /var/www/html | 該參數指定Apache服務器存放網頁的路徑,默認全部要求提供HTTP服務的鏈接,都以這個目錄爲主目錄。在每一個Apache服務器存取的目錄中,能夠針對每一個目錄及子目錄來設置容許及禁止客戶端訪問的服務。如下爲Apache的默認值。 |
MaxClients | 150; | 該參數限制Apache所能提供服務的最高數值,即同一時間鏈接的數目不能超過這個數值。一旦鏈接數目達到這個限制,Apache服務器則再也不爲別的鏈接提供服務,以避免系統性能大幅度降低。 |
Port | 80 | 該參數用來指定Apache服務器的監聽端口。通常來講,標準的HTTP服務默認端口號是80,通常不要更改這個數值。 |
KeepAlive | on | 目前多數的瀏覽器都請求服務器保持持續鏈接,這種功能就稱爲「KeepAlive」,它是HTTP1.1中的標準規格,通常是用來強化服務器的性能。在使用保持鏈接功能時,設置客戶一次請求鏈接能影響文件的最大上限,建議把默認值設爲ON,以便提升訪問 性能。 |
MaxKeepAliveRequests | 100 | 當使用保持鏈接(persistent connection)功能時,可使用本參數決定每次鏈接所能發出的要求數目的上限。若是此數值爲0,則表示沒有限制。建議儘量使用較高的數值,以充分發揮Apache的高性能。 |
MaxRequestsPerChild | 10 | 該參數限制每一個子進程(child process)在結束前所能處理的請求數目,一旦達到該數目,這個子進程就會被停止,以免長時間佔據Apache(或者Apache服務器所採用的函數庫),防止形成內存或者其餘系統資源的超負荷。 |
MaxSpareServers/MinSpareServers | 20/5 | 提供Web服務的HTTP守護進程,其數目會隨鏈接的數目而變更。Apache服務器採用動態調整的方法,維持足夠的HTTP守護進程數目,以處理目前的負載,也就是同時保持必定的空閒HTTP守護進程來等候新的鏈接請求。 |
DirectoryIndex | inde.html | 在此命令後添加其餘的默認主頁文件名,例如能夠添加index.htm等。固然這只是Apache的一些基本設置項,你們能夠根據本身的實際狀況加以靈活的修改,以充分發揮Apache的潛能。若是修改配置文件以後讓其當即生效,能夠重啓Apache服務。 |
虛擬主機指的是在單一機器上運行多個網站 (例如 www.company1.com 和 www.company2.com) 。 虛擬主機能夠「基於 IP」,即每一個IP一個站點; 或者「基於名稱」, 即每一個IP多個站點。這些站點運行在同一物理服務器上的事實不會明顯的透漏給最終用戶。
可讓apache監聽多個端口訪問不一樣的路徑。或者多個域名映射到同一個apache時作不一樣的訪問分配。
下面實例爲監聽8001端口,映射到一個本地的物理地址。