源地址:http://blog.51cto.com/marsman/1913676html
本文主要講述apache主要目錄結構及主要配置文件
1.apache目錄結構
[root@test apache]# tree -L 1
.
|-- bin 程序命令目錄
|-- build
|-- cgi-bin
|-- conf 配置文件目錄
|-- error
|-- htdocs 編譯安裝時站點目錄
|-- icons
|-- include
|-- lib
|-- logs 默認日誌文件存放包括錯誤日誌(error_log)和訪問日誌(access_log) tail -f access_log能夠隨時看訪問記錄, 裏面httpd.pid還會記錄主進程號
|-- man
|-- manual
`-- modules 模塊目錄 例如PHP MEMCACHE編譯後的模塊在這裏面
bin目錄
[root@test bin]# tree
.
|-- ab apache http服務器性能壓力測試工具,相似的jmeter loadrunner webbench
|-- apachectl apache的啓動命令
|-- apr-1-config
|-- apu-1-config
|-- apxs apache服務器編譯和安裝擴展的工具,在進行DSO方式模塊編譯時會用到例如編譯PHP時就用到:--with-apxs2=/usr/local/apache/bin/apxs
|-- checkgid
|-- dbmmanage
|-- envvars
|-- envvars-std
|-- htcacheclean 清理磁盤緩存區的命令,通常少用
|-- htdbm
|-- htdigest
|-- htpasswd 創建更新基本認證文件 例如配置nagio監控時候會用到
|-- httpd 爲apache的控制命令程序,apachectl執行的時候會調用到httpd
|-- httxt2dbm
|-- logresolve
`-- rotatelogs apache自帶日誌輪換工具 ,也能夠用到cronolog代替。
conf目錄
[root@test conf]# tree
.
|-- extra 輔助apache配置文件
| |-- httpd-autoindex.conf
| |-- httpd-dav.conf dav支持配置
| |-- httpd-default.conf apache相關服務配置 如超時時間 保持鏈接時間
| |-- httpd-info.conf
| |-- httpd-languages.conf 語言支持
| |-- httpd-manual.conf
| |-- httpd-mpm.conf 服務器池管理,如apache模式配置 鏈接等
| |-- httpd-multilang-errordoc.conf
| |-- httpd-ssl.conf 支持SSL加密配置
| |-- httpd-userdir.conf
| `-- httpd-vhosts.conf 虛擬機配置文件
|-- httpd.conf 主配置文件
|-- magic
|-- mime.types
`-- original
2 httpd.conf主配置文件
[root@test apache]# egrep -v "#.*|^$" /usr/local/apache/conf/httpd.conf
ServerRoot "/usr/local/apache2.2.22" apache安裝目錄
Listen 80 apache端口
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User daemon apache運行用戶
Group daemon apache運行組
</IfModule>
</IfModule>
ServerAdmin you@example.com 管理員郵箱
DocumentRoot "/usr/local/apache2.2.22/htdocs" 站點目錄,注意最後不要加/線
<Directory /> 根目錄權限
Options FollowSymLinks 能夠使用符號連接
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/usr/local/apache2.2.22/htdocs"> 目錄權限 注意Indexes的做用是容許瀏覽目錄
Options Indexes FollowSymLinks
AllowOverride None 禁止用戶對目錄配置文件.htaccess修改,通常爲none
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html 站點目錄首頁文件多個文件用空格隔開
</IfModule>
<FilesMatch "^.ht"> 防止WEB用戶查看以.ht開頭的隱藏文件
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
ErrorLog "logs/error_log" 錯誤日誌
LogLevel warn 警告級別
<IfModule log_config_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined 複合日誌格式
LogFormat "%h %l %u %t "%r" %>s %b" common 常規日誌格式
<IfModule logio_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio 複合日誌格式
</IfModule>
CustomLog "logs/access_log" common 默認訪問日誌格式
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/usr/local/apache2.2.22/cgi-bin/" CGI別名配置
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "/usr/local/apache2.2.22/cgi-bin"> CGI權限訪問路徑
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
DefaultType text/plain 定義不能肯定MIME類型時候使用默認MIME類型,若是服務主要包含text或HTML ,text/plain是一個好選擇
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z 容許信息在傳輸中使用mosaic/x 2.1+解壓信息 但不是全部瀏覽器都支持
AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
3.虛擬主機http_vhost.conf配置文件
NameVirtuaHost *:80
表示基於名稱的虛擬主機 *:80表示監聽本機全部IP的80端口上提供HTTP服務,*能夠設置爲具體IP
<VirtualHost *:80>
serveradmin 管理員郵箱
servername 域名
serveralias 別名 能夠設置多個域名指向同一個站點
errorlog 錯誤日誌
customlog 訪問日誌
</VirtualHost>
虛擬主機的配置是局部優先原則,也就是http_vhost.conf配置了,那麼就不會從主配置文件http.conf中讀取了web