Apache配置(linux环境)

1.获得Apache: 

获得apache源代码最方便的方法是到http://www.apache.org,选择最新的版本。然后
tar xvzf apache_x.x.xx.tar.gz 

2. 
编译Apache 
src目录下 
./configure 
可用 ./configure--help|less 得到帮助
make, make install, install 

3. apache
的启动和关闭 
sbin/apachectl start 
sbin/apachectl stop 
sbin/apachectl restart (
重起

4. 
一些模块介绍
下列的组模块控制进入和验证 
Acess 
进入控制 
auth 
检查Unix-style口令和组文件的基本的验证。 
auth-anon 
使用匿名的FTP-style usernames和口令。 
auth-dbm 
使用Berkeley db文件存储usernames,口令,和组信息。如果你有很多usernames并关心性能, 这是很有用的。 
digest 
使用HTTP文摘认证,这比基本认证更安全。 
expire 
模块让你定制Expire过期时间 

5. Apache1.3
的缺省目录布局是: 
./bin 
服务器二进制,apachectl原本 
./conf 
Apache
配置文件 
./include/apache 
Apache
标题文件 
./libexec 
共用的对象文件 
./man 
man 
 
./sbin 
服务器二进制,apachectl原本,log rotator 
./cgi-bin 
缺省CGI原本/二进制的目录 
./share/htdocs 
缺省文件根 
./htdocs/manual 
Apache
手册 
./share/icon 
包含各种图标GIFs的目录 
./var/apache/log 
log
文件的目录 
./var/apache/proxy 
proxy
缓存目录 
./var/apache/run 
httpd.pid(
包含主要的httpd过程标识符的文件)在此目录 

6. 
主要文件如下
httpd.conf, 
/usr/local/apache/conf/etc/httpd/conf 
apachectl, 
/usr/local/apache/bin/etc/httpd/bin 
access_log, 
纪录用户访问信息../logs 
error_log, 
纪录用户访问错误信息也在../logs 

7. httpd.conf 
基本设置 
Port, Apache 
在哪一个 TCP 端口进行侦听,HTTP 的默认端口为 80。如果你使用其它端口,你不得不在 URLs 中指定端口来连接你的服务器, 

User,Group 
由于安全上的原因,在 Linux 上,可以通过把 User  Group 都设置成 nobody 

ServerRoot 
参数应该是 Apache 安装的基础。除非你移动了周围的资料,否则其值与你所给定的值一样。 

ServerName, 
如果你的机器有多个名称或者 IP 地址,设置 Apache 表征服务器的名称。 

DocumentRoot 
 Web 树的根目录, 

UserDir 
在启用 ~username 处理请求时此指令告诉 Apache 哪个目录追加到用户的主目录(home)。UserDir 被设置为 public_html。用户将只有基本的网页服务功能, 

<Directory>
是一个容器指令。</Directive>格式的结束指令。 

<Directive>
及相关的<Files><FilesMatch>指令的目的,是为了让你在每个目录或者每个文件的基础上,控制Apache行为的方式。指令放在<Directory>中,也适用于子目录。 

FollowSymLinks
选项,告诉 Apache 它可以从文档根目录内部到文档根目录外部跟踪符号链接。在文档根目录内部,FollowSymLinks  Indexes 都处于开启状态(on)。万一缺省的索引文件(通常为 index.html)不存在时,最后允许目录列表显示。 

Directory 
中,用 Options 指令你可以控制什么选项是被允许的。 

Options 
指令
1) ExecCGI CGI 
脚本程序能够运行于该目录树。 
2) FollowSymLinks 
在该目录中,服务器将跟踪符号链接。注意:即使服务器跟踪符号链接,它也不会改变用来匹配不同区域的路径名。注意:如果在区域内设置,该选项会被忽略。 
3) Includes 
服务器端包容被允许。 
4) IncludesNOEXEC 
服务器端引用被允许,但 #exec 命令和 CGI 脚本程序的 #include 被禁止。 
5) Indexes 
如果要求映射到目录的 URL 和在该目录里没有 DirectoryIndex(例如,index.html),那么服务器将返回格式化的目录列表。 
6) MultiViews 
处理多重浏览内容被允许。 
7) SymLinksIfOwnerMatch 
通过与用户 id 一样的链接,服务器只跟踪目标文件或者目录所拥有的符号链接。 
8) All 
 MultiViews 外的一切东西。要是没有 Options 指令,默认为all. 

AccessFileName 
命令来设置(缺省设置为 .htaccess)。在任何目录中,Apache 配置指令可被放入一个叫做 .htaccess 的文件。指令也可应用于目录里的子目录。在访问文件中, 

AllowOverride 
控制哪个指令将被使用。如果 AllowOverride 被设置为 noneApache 甚至不会检查访问文件。 

AllowOverride 
参数
1) AuthConfig
 授权指令哪一个允许使用; 
2) FileInfo
,用来控制文档类型和处理方法的指令; 
3)Indexes
,使用其中的一个指令来控制目录列表、图标等的显示; 
4) Limit
,允许使用指令来控制主机访问; 
5) Options
,使用 Options 指令中的一个。 

“allow”
“deny”指令就是用来控制访问的。第三个指令“order”,控制这些指令的使用顺序。如果你把顺序设置成 allow,deny,而没有指定哪个主机是被拒绝的话,则所有主机都被假定为禁止访问。在本例子中,allow 指令被选中,deny 指令被普遍应用。在 .htaccess 文件或者 <Directory> 指令内,更多典型的配置可能是: 
order allow,deny 
allow from all 
deny aaa.com 
所有主机被允许,除了那些来自 aaa.com 域的主机。 

如果相反, 
order deny,allow 
deny from all 
allow from 11.23.44 
deny 
首先被检查。只有来自 11.23.44 IP 网络的主机才被允许访问。它也可能指定网络掩码,参数 11.23.44.0/255.255.255.0 相当于上面的例子。 

特殊配置
1. 
支持用户个人主页
../conf/httpd.conf中加入 
UserDir /homepublic_html/cgi-bin> 
options ExecCGI 
SetHandler cgi-bin #
如果在全局设置了AddHandler cgi-bin .cgi ..., 
#
这儿就不用设了 
</Directory> 

2. 
虚拟主机设置

1)
基于IP的虚拟主机 
若该机器的IP地址为192.168.0.2,虚拟的IP192.168.0.3 
首先在一台机器的网卡上绑定多个IP地址去服务多个虚拟主机。 
#/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.11.255 up 
#/sbin/route add -host 192.168.0.2 eth0:0 

设置../conf/httpd.conf文件: 
DocumentRoot是什么如果为/home/httpd 
<VirtualHost 192.168.0.3> 
DocumentRoot /home/httpd/aaa 
</VirtualHost> 

创建目录 
/home/httpd/aaa, 

2)
基于名字的虚拟主机: 
编辑../conf/httpd.conf 

NameVirtualHost 192.168.0.2 
<VirtualHost 192.168.11.2> 
DocumentRoot /home/httpd/aaa 
ServerName aaa.yourdomain.com 
</VirtualHost> 

要有NameVirtualHost在最前面,下面依次为各个虚拟主机, 
还需要把aaa.yourdomain.comDNS都指向IP地址192.168.0.2 

3. Apache
用户认证 
基本的Apache用户认证 
假定对目录/home/aaa下的文件需要做到用户认证,在httpd.conf 
中加入下面的行 
<Directory "/home/aaa"> 
allowoverride authconfig 
order allow,deny 
allow from all 
</Directory> 
用在目录/home/aaa下放文件.htaccess,内容如下: 
authname "Please give me your ID number and Password" 
authtype basic 
authuserfile /etc/.passwd 
require valid-user 

htpasswd 生成文件/etc/.passwd, 
htpasswd -c /etc/.passwd username 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值