httpd2.2配置文件详解
生活随笔
收集整理的這篇文章主要介紹了
httpd2.2配置文件详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一丶Apache常用目錄詳解
1) /etc/httpd/conf/httpd.conf
httpd.conf是Apache的主配文件,整個Apache也不過就是這個配置文件,里面幾乎包含了所有的配置。有的distribution都將這個文件拆分成數個小文件分別管理不同的參數。但是主要配置文件還是以這個文件為主。
ALL:全部的權限均可以覆蓋 AuthConfig:僅有網頁認證(帳號與密碼)可以覆蓋 Indexes:僅允許Indexes方面的覆蓋 Limits:允許用戶利用Allow、Deny與Order管理可瀏覽的權限 None:不可覆蓋,也就是讓.htaccess文件失效
使用.htaccess會嚴重影響到Apache的性能,如果不是特殊需要,建議關閉
- /etc/httpd/conf/logs鏈接到/var/log/httpd,用于存放默認主服務器的日志文件;
- /etc/httpd/conf/modules鏈接到/usr/lib64/httpd/modules,用于存放所有httpd所能裝載的DSO模塊文件;
- /etc/httpd/conf/run鏈接到/var/run/httpd,用來存放主進程的PidFile。
- Indexes:如果在此目錄下找不到首頁文件(默認為index.html)時,就顯示整個目錄下的文件名,至于首頁文件名則與DirectoryIndex設置的值有關,建議注釋掉Indexes
- FollowSymLinks:Fllow Symolic Links的縮寫,字面意義是讓連接文件可以生效。首頁的目錄是在/var/www/html,既然是WWW的根目錄,理論上就像被chroot一般。一般說來說被chroot的程序無法離開其目錄,也就是說,默認的情況下,你在/var/www/html下面的連接文件只要鏈接到非此目錄的其他地方,則該連接文件默認是失效的。但是使用這個設置可以讓鏈接有效的離開本目錄,默認為禁用
- ExecCGI:讓此目錄具有執行CGI的權限,非常重要。舉例來說,OpenWebMail使用了很多Perl程序,你要讓OpenWebMail可以執行,就需要在該程序所在目錄擁有ExecCGI的權限才行。但是要注意:不要讓所有的目錄均可以使用ExecCGI
- Includes:讓一些Server-Side Include程序可以運行。建議可以加上去
- MultiViews:這個有點像是多國語言的支持,與語言數據有關。在錯誤信息的回報內容中最常見,在同一臺主機中,可以依據客戶端的語言而給予不同的語言顯示。默認在回報信息中存在,你可以檢查一下/var/www/error/目錄下的數據。
- AllowOverride None:允許覆蓋參數功能,表示是否允許額外配置文件.htaccess的某些參數覆蓋。我們可以在httpd.conf內設置好所有的權限,不過這樣一來,若用戶自己的個人網頁想要修改權限時將會對管理員造成困擾。因此,Apache默認可以讓用戶以目錄下的.htaccess文件內覆蓋<Direcoty>內的某些功能參數。這個項目則是在規定.htaccess可以覆蓋的權限類型有哪些。常見的有以下幾種:
?
Apache配置文件權限操作 Apache內部的Order可以處理相關權限的限制,其中有兩個值,Allow和Deny Order deny,allow 可以理解為拒絕所有,開放特定 Order allow,deny 可以理解為開放所有,拒絕特定 當allow與deny中有重復的規則出現,則最后一條的配置起到了決定性的作用,比如 Order allow,deny //開放所有,拒絕特定 allow from all //定義了允許的規則,開放所有 deny 192.168.1.1 //定義了拒絕的規則,拒絕了一個IP,這個IP包含在第二行的all當中,所以它的權限就默認由最后一行配置決定,最后一行是deny,所以1.1被被拒之門外 </Directory> DirectoryIndex ?jfedu.php index.html index.html.var //網站默認的首頁文件的名稱,如果上面的文件全部存在的話,就會按照設置的順序顯示排在最前面的首頁,這個與之前在Option中談到的Indexes有關。 <Files ~ "^\.ht"> Order allow,deny Deny from all Satisfy All </Files> //不讓用戶查看.htpasswd和.htaccess這兩個文件 TypesConfig /etc/mime.types //用于設置保存有不同MIME(描述消息內容類型的因特網標準)類型數據的文件名 DefaultType text/plain //默認的網頁的類型 <IfModule mod_mime_magic.c> # MIMEMagicFile /usr/share/magic.mime MIMEMagicFile conf/magic </IfModule> //指定判斷文件真實MIME類型功能的模塊 HostnameLookups Off //當打開此項功能時,在記錄日志的時候同時記錄主機名,這需要服務器來反向解析域名,增加了服務器的負載,通常不建議開啟 #EnableMMAP off //是否允許內存映射:如果httpd在傳送過程中需要讀取一個文件的內容,它是否可以使用內存映射。如果為on表示如果操作系統支持的話,將使用內存映射。在一些多核處理器的系統上,這可能會降低性能,如果在掛載了NFS的DocumentRoot上如果開啟此項功能,可能造成因為分段而造成httpd崩潰 #EnableSendfile off //這個指令控制httpd是否可以使用操作系統內核的sendfile支持來將文件發送到客戶端。默認情況下,當處理一個請求并不需要訪問文件內部的數據時(比如發送一個靜態的文件內容),如果操作系統支持,Apache將使用sendfile將文件內容直接發送到客戶端而并不讀取文件 ErrorLog logs/error_log //錯誤日志存放的位置 LogLevel warn //Apache日志的級別 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent //定義了日志的格式,并用不同的代號表示 #CustomLog logs/access_log common CustomLog logs/access_log combined //說明日志記錄的位置,這里面使用了相對路徑,所以ServerRoot需要指出,日志位置就存放在/etc/httpd/logs ServerSignature On //定義當客戶請求的網頁不存在,或者錯誤的時候是否提示apache的版本的一些信息 Alias /icons/ "/var/www/icons/" //定義一些不在DocumentRoot下的文件,而可以將其映射到網頁根目錄中,這也是訪問其他目錄的一種方法,但在聲明的時候切記目錄后面加”/” <IfModule mod_dav_fs.c> # Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb </IfModule> //對mod_dav_fs.c模塊兒的管理 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" //對CGI模塊兒的的別名,與Alias相似 # Redirect old-URI new-URL //Redirect參數是用來重寫URL的,當瀏覽器訪問服務器上的一個已經不存在的資源的時候,服務器返回給瀏覽器新的URL,告訴瀏覽器從該URL中獲取資源。這主要用于原來存在于服務器上的文檔改變位置之后,又需要能夠使用老URL能訪問到原網頁 IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8 AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip ... IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t 當一個HTTP請求的URL為一個目錄的時候,服務器返回這個目錄中的索引文件,如果目錄中不存在索引文件,并且服務器有許可顯示目錄文件列表的時候,就會顯示這個目錄中的文件列表,為了使得這個文件列表能具有可理解性,而不僅僅是一個簡單的列表,就需要前這些參數。如果使用了IndexOptionsFancyIndexing選項,可以讓服務器針對不同的文件引用不同的圖標。如果沒有就使用DefaultIcon定義缺省圖標。同樣,使用AddDescription可以為不同類型的文檔介入描述 AddLanguage ca .ca ...... AddLanguage zh-TW .zh-tw //添加語言 LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW //Apache支持的語言 AddDefaultCharset UTF-8 //默認支持的語言 #AddType application/x-tar .tgz//支持的應用如果想支持對php的解析添加這樣一行 #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz //支持對以.Z和.gz.tgz結尾的文件 AddType application/x-compress .Z AddType application/x-gzip .gz .tgz //添加對上述兩種文件的應用 #AddHandler cgi-script .cgi //修改為:AddHandler cgi-script .cgi .pl 表示允許擴展名為.pl的CGI腳本運行 AddType text/html .shtml AddOutputFilter INCLUDES .shtml //添加動態處理類型為server-parsed由服務器預先分析網頁內的標記,將標記改為正確的HTML標識 #ErrorDocument 404 /missing.html //當服務器出現404錯誤的時候,返回missing.html頁 <Directory "/var/www/error"> AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback </Directory> //對/var/www/error網頁的權限及操作 BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 ..... 設置特殊的參數,以保證對老版本瀏覽器的兼容,并支持新瀏覽器的特性 #NameVirtualHost *:80 //如果啟用虛擬主機的話,必須將前面的注釋去掉,而且,第二部分的內容都可以出現在每個虛擬主機部分。 #<VirtualHost *:80> //標簽后面的IP定義一定要和上面NameVirtualHost定義的一致 # ServerAdmin webmaster@www.linuxidc.com //管理員的郵箱 # DocumentRoot /www/docs/www.linuxidc.com //虛擬主機的網頁存放目錄,必須, # ServerName www.linuxidc.com //能被DNS或Hosts解析的完整域名,必須 # ServerAlias www.dummy-host.example.com //虛擬主機別名 # ErrorLog logs/www.linuxidc.com-error_log //錯誤日志 # CustomLog logs/www.linuxidc.com-access_log common //訪問日志 #</VirtualHost> 在虛擬主機之上還能設置很多的功能,第二部分的內容都可以出現在每個虛擬主機部分,最精簡的配置是需要有ServerName和DocumentRoot這兩個配置,在添加了虛擬主機的配置之后需要把中心主機的信息也單獨寫成一個虛擬機的配置,(或者注銷ServerName和DocumentRoot這兩個配置),不然中心主機名的服務就不知道丟到哪里去了,這一步驟在Apache幫助文檔中稱做:取消中心主機 當然,如果你想有多個域名都指向到同一個虛擬主機是可以通過在<VirtualHost>塊中配置ServerAlias功能來實現的。- DNS指向問題:如果你設置了別名,多個域名指向同一個虛擬主機,那么一定要保證DNS能正常解析的到
- <VirtualHost>段配置指定作用域的問題:你可以把其他一些指令放入<VirtualHost>段中,以更好的配置一個虛擬主機。大部分指令都可以放入這些<VirtualHost>段中以改變相應虛擬主機配置。主服務器(main server)范圍內的配置指令(在所有<VirtualHost>配置段之外的指令)僅在它們沒有被虛擬主機的配置覆蓋時才起作用。
- 虛擬主機名的問題:當一個請求到達的時候,服務器會首先檢查它是否使用了一個能和NameVirtualHost相匹配的IP地址。如果能夠匹配,它就會查找每個與這個IP地址相對應的<VirtualHost>段,并嘗試找出一個與請求的主機名相同的ServerName或ServerAlias配置項。如果找到了,它就會使用這個服務器。否則,將使用符合這個IP地址的第一個列出的虛擬主機。
總結
以上是生活随笔為你收集整理的httpd2.2配置文件详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 更改Web应用地址栏显示的图标
- 下一篇: 电子元件知识汇总1-封装