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,找到:
#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