Apache自己天天用,但是有的属性还是一知半解,所以决定关于Apache的这个配置文件写篇博客,顺便看下,补补自己不知道的东西。
Apache的配置由http.conf文件配置,因此Apache的配置都在httpd.conf文件中修改
一、基本配置
ServerRoot "/etc/httpd"
#你的apache安装目录。其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。
Listen 80
#服务器监听的端口号。 如果需要别的端口,需要先在此添加进行端口监听。
ServerName www.xxx.com:端口号(默认是80)
#主站点名称(网站的主机名)。
ServerAdmin admin@126.com
#管理员的邮件地址
DocumentRoot "/data/app"
#主站点的网页存储位置。
DirectoryIndex index.html index.htm index.php error.html
#主页默认文件(会去访问目录下找这几个默认文件,找不到,而且没有设置Indexes,则会报403 Forbidden)
下面这个是站点配置
<VirtualHost *:80>
ServerAdmin admin@126.com
DocumentRoot "D:\suixin"
ServerName localhost
ServerAlias www.dummy-host.example.com
<Directory "/data/app">
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog "logs/error.log"
CustomLog "logs/daccess.log"
</VirtualHost>
在上面这段目录属性配置中,主要有下面的选项:
Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:
ExecCGI: 在该目录下允许执行CGI脚本。 FollowSymLinks: 在该目录下允许文件系统使用符号连接。 Indexes: 当用户访问该目录时,如果用户找不到 DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。 SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
2.AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):rewrite详见另一条博客。
None: 当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。 All: 在.htaccess文件中可以使用所有的指令。
3.Order:控制在访问时Allow和Deny两个访问规则哪个优先:
Allow:允许访问的主机列表(可用域名或子网,例如:Allow from 192.168.0.0/16)。
Deny:拒绝访问的主机列表。