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編譯后的模塊在這里面

2. 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代替。

3. 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

4. httpd.conf主配置文件
路徑:/usr/local/apache/conf/httpd.conf
ServerRoot "/usr/local/apache"   apache運行目錄
Listen 9911                              apache端口 
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User daemon                              apache運行用戶
Group daemon                             apache運行組
</IfModule>
</IfModule>
ServerAdmin you@example.com              管理員郵箱
DocumentRoot "/usr/local/apache/htdocs"   站點目錄index.html,注意最后不要加/線
<Directory />                            根目錄權限
    Options FollowSymLinks               可以使用符號鏈接
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
<Directory "/usr/local/apache/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/apache/cgi-bin/"  CGI別名配置
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "/usr/local/apache/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配置文件

首先,進入apache配置文件httpd.conf,找到:

#Virtual hosts

#Include /etc/httpd/extra/httpd-vhosts.conf 去掉本行的#,默認有#


NameVirtuaHost *:80
表示基於名稱的虛擬主機  *:80表示監聽本機所有IP的80端口上提供HTTP服務,*可以設置為具體IP
<VirtualHost *:80>
serveradmin 管理員郵箱
servername  域名
serveralias 別名        可以設置多個域名指向同一個站點
errorlog    錯誤日志
customlog   訪問日志
</VirtualHost>
虛擬主機的配置是局部優先原則,也就是http_vhost.conf配置了,那么就不會從主配置文件http.conf中讀取了

舉例

訪問localhost,OK~

遇到問題:

1.服務器本機 訪問 403

 解決辦法:httpd.conf文件中增加Listen 80監聽

2.其他局域網機器訪問:You don't have permission to access / on this server.

解決辦法:http_vhosts.conf中注釋掉多余的虛擬機配置項,在訪問IP:port 即可

3.其他局域網機器訪問,訪問到的一直是真實主機的首頁

解決辦法:http_vhosts.conf中<VirtualHost *:80> 不要寫成<VirtualHost localhost:80>

 

文章參考:http://www.woaidiannao.com/html/ITjs/fwqjs/6724.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM