本文主要讲述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
 .
 |-- 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
 `-- original2  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>(桌面图标有蓝底怎么去掉:电脑桌面图标有蓝色阴影http://www.woaidiannao.com/html/xwzx/6590.html )

 3.虚拟主机http_vhost.conf配置文件
 NameVirtuaHost *:80
 表示基于名称的虚拟主机  *:80表示监听本机所有IP的80端口上提供HTTP服务,*可以设置为具体IP
 <VirtualHost *:80>
 serveradmin 管理员邮箱
 servername  域名
 serveralias 别名        可以设置多个域名指向同一个站点
 errorlog    错误日志
 customlog   访问日志
 </VirtualHost>


虚拟主机的配置是局部优先原则,也就是http_vhost.conf配置了,那么就不会从主配置文件http.conf中读取了