一、Apache特点
1.开放源代码
2.跨平台,可运行在windows和linux平台上
3.支持多种网页编程语言(perl、php、python等)java需要tomcat
4.模块化设计
5.运行稳定,这也是相较于nginx的优点
6.良好的安全性
7.配置简单,支持多种http认证
二、Apache目录结构
[root@localhost local] tree -d http/
http //http的安装目录
├── bin //启动文件的存放目录
├── build //apache的安装参数存放目录,包括版本号等
├── cgi-bin //存放cgi的启动文件(cgi:连接数据库API的接口)
├── conf //存放系统apache的配置文件
│ ├── extra //一些额外的配置文件,虚拟主机等
│ └── original //配置文件备份
│ └── extra
├── error //存放apache的错误日志
│ └── include
├── htdocs //默认站点根目录,存放apache的主页文件
├── icons //apache的图标提示文件
│ └── small
├── include //include模块
├── logs //日志文件
├── man //man手册
│ ├── man1
│ └── man8
├── manual //其他工具的man手册
│ ├── developer
│ ├── faq
│ ├── howto
│ ├── images
│ ├── misc
│ ├── mod
│ ├── platform
│ ├── programs
│ ├── rewrite
│ ├── ssl
│ ├── style
│ │ ├── css
│ │ ├── lang
│ │ ├── latex
│ │ ├── scripts
│ │ └── xsl
│ │ └── util
│ └── vhosts
└── modules //模块存放目录
三、httpd.conf主配置文件详解
ServerRoot "/etc/httpd" //apache的安装根目录
Listen 80 //监听端口号
Include conf.modules.d/*.conf //include的配置模块
User apache //管理员名称
Group apache //管理组
ServerAdmin root@localhost //该服务器的admin
<Directory /> //根目录的配置
AllowOverride none //不允许任何人覆盖
Require all denied //所有人都不能访问
</Directory>
DocumentRoot "/var/www/html" //html主页文件的根目录
<Directory "/var/www"> //主页文件存放位置
AllowOverride None //不允许任何人覆盖
Require all granted //允许所有人访问
</Directory>
<Directory "/var/www/html"> //主页文件的存放位置
Options Indexes FollowSymLinks
#index访问时如果没有主页文件会显示主页文件的索引
#例如主页的根目录中只有图片,则没有主页文件就会显示图片的索引用户可以直接下载该图片
#FollowSymLinks如果主页文件在服务器端使用软链接或者硬链接连接到其他位置,
#这条命令就是显示其链接端的内容
AllowOverride None //不允许任何人覆盖
Require all granted //允许所有人访问
</Directory>
<IfModule dir_module>
DirectoryIndex index.html //定义的首页名称
</IfModule>
<Files ".ht*">
Require all denied //不允许任何人访问
</Files>
ErrorLog "logs/error_log" //出现错误日志的存放位置
LogLevel warn //日志级别,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>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module> //别名模块
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" //cgi的模块定义别名
</IfModule>
<Directory "/var/www/cgi-bin"> //发布测试页面
AllowOverride None //不允许任何人覆盖
Options None //不允许其他权限
Require all granted //允许所有人访问
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
DirectoryIndex index.html index.html.var //定义主页文件的名称,这里可以修改,例如添加:index.php则会支持该文件
AddDefaultCharset UTF-8 //添加的默认语系定义
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on //开启支持发送文件
IncludeOptional conf.d/*.conf //服务器启动时会先检查该配置文件,后检查conf.d下的所有以conf为后缀的文件