Apache主要目录结构和主要配置文件

1.apache目录结构

[[email protected] 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编译后的模块在这里面

  1. bin目录

[[email protected] 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代替。

  1. conf目录

[[email protected] 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

  1. 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运行组


    ServerAdmin [email protected] 管理员邮箱
    DocumentRoot “/usr/local/apache/htdocs” 站点目录index.html,注意最后不要加/线
    根目录权限
    Options FollowSymLinks 可以使用符号链接
    AllowOverride None
    Order deny,allow
    Deny from all

    <Directory “/usr/local/apache/htdocs”> 目录权限 注意Indexes的作用是允许浏览目录
    Options Indexes FollowSymLinks
    AllowOverride None 禁止用户对目录配置文件.htaccess修改,一般为none
    Order allow,deny
    Allow from all
DirectoryIndex index.html 站点目录首页文件多个文件用空格隔开

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 访问日志

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

举例
Apache主要目录结构和主要配置文件
访问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> 不要写成