|   
 UID2031431 威望27 点 金钱2 金币 点卡10 点 
 | 
1#
 发表于 2003-6-1 13:19 
 | 只看该作者 
 关于apache的服务器问题
| 关于apache的服务器问题 关于apache的服务器问题
 我下载的是apache2.0版的服务器,不是雷傲超级论坛提供的低版本的apache,但是我下载出来的apache解压后,install的程序是文件格式,打不开,用ren name name.exe也不行,我想是下载的问题吧,但是下载了好多地方,都是apache for windows,基本上都是一样的,书上有什么介绍,说nmake命令能行,但是我不知道怎么用,有哪位高手帮帮忙啊!谢谢。
 
 -------------------------------------
 一. Apache的基本配置及说明:
 1.获得Apache:
 获得apache源代码最方便的方法是到apache.org" target="_blank">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 被设置为 none。apache 甚至不会检查访问文件。
 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 /home/*/public_html
 设置用户可以使用CGI等:
 <Directory /home/*/public_html/cgi-bin>
 options ExecCGI
 SetHandler cgi-bin #如果在全局设置了AddHandler cgi-bin .cgi ...,
 #这儿就不用设了
 </Directory>
 2. 虚拟主机设置:
 1)基于IP的虚拟主机
 若该机器的IP地址为192.168.0.2,虚拟的IP为192.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.com的DNS都指向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 "
  lease give me your ID number and Password" authtype basic
 authuserfile /etc/.passwd
 require valid-user
 用htpasswd 生成文件/etc/.passwd,
 htpasswd -c /etc/.passwd username
 
 | 
 
| 哈哈哈!!!!你的IP是不是  ?我都知道了!!! |  |