Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5609665
  • 博文数量: 922
  • 博客积分: 19333
  • 博客等级: 上将
  • 技术积分: 11226
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-27 14:33
文章分类

全部博文(922)

文章存档

2023年(1)

2020年(2)

2019年(1)

2017年(1)

2016年(3)

2015年(10)

2014年(17)

2013年(49)

2012年(291)

2011年(266)

2010年(95)

2009年(54)

2008年(132)

分类: 系统运维

2010-03-21 10:14:10

简单配置apache
注意:这里,只是为了“应急”,对其中的内容并没有深入学习。其中的内容都是实践之后的总结,关于配置的更多信息还需参考其他有价值的文章。
[功能]
Apache,是一种开放源码的 HTTP服务器,可以在大多数操作系统中运行,由于其多平台和安全性所以被广泛使用,是目前最流行的 Web服务器软件之一。
配置好apache就可以把你机器做为一个web服务器,在其他机器的浏览器上面通过键入网址来访问你所指定的目录下的网页等文件。


[举例]
1)如何让自己的机器可以支持apache:
$sudo apt-get install apache2 apache2-mpm-prefork
这样之后,如果在浏览器中敲入你的ip地址,会访问你机器上的/var/www/index.html文件。而你的web空间所在的文件目录就是/var/www。

2)?如何配置自己机器上面的web目录:
修改相关配置文件:
$sudo vi /etc/apache2/sites-available/*
$sudo vi /etc/init.d/apache2 restart
这里,可以修改default文件,其中的DocumentRoot就指定了web空间对应的目录,默认都是/var/www。
经过实践,修改这个文件的时候,后面的DocumentRoot指定会覆盖前面的。
默认情况下,启动/etc/init.d/apache2之后,在浏览器中键入ip地址,会自动访问/etc/apache2/sites-available/default下配置的DocumentRoot下面的index文件,端口是80。
在这里,directory字段只是封装一组参数,使之仅对文件空间中的某个目录及其子目录生效不要被它的名字所迷惑,没有它也可以的,但是不安全了。如果想要配置多个DocumentRoot,那么参照后面。
这样在浏览起中敲入就会访问testnet中的index文件了。默认的端口是80,用/etc/apache/sites-available/default下面的配置目录。

3)如何在自己的机器上面配置多个web目录:
这里暂时只找到一种方法,就是利用多个端口访问不同的web目录。如下:
3.1)建立一个新的web空间目录配置文件:
#touch /etc/apache2/sites-available/mysites
这里,可以在/etc/apache2/sites-enabled建立一个指向mysites的链接,参照其中的000-default,不知道有什么用,不建立也行。
3.2)编辑配置文件/etc/apache2/sites-available/mysites如下:

        ServerAdmin webmaster@localhost
        DocumentRoot /home/quietheart/testnet/www

这里,指定使用端口90的时候,把/home/quietheart/testnet/www做为web空间目录。这里的配置是最简最简的,只是为了说明问题,具体应该参考同目录下的default来配置。
3.3)侦听90端口:
编辑配置文件/etc/apache2/ports,添加如下内容:
NameVirtualHost *:90
Listen 90
3.4)重启apache,访问mysites指定的目录:
#/etc/init.d/apache2 restart
之后,在浏览起敲入""
这样就访问了/home/quietheart/testnet/www下面的内容。


[其他]
*剩余问题:
*如何限制ip访问?
这个还有待研究,可以需要用directory字段来指定参数了。
这样,就可以指定让谁访问你的web空间,不让谁访问你的web空间了。

[描述]
*资料总结:
主要参考网址:http://blog.csdn.net/eugenepada/archive/2009/12/27/5083860.aspx
关于配置文件例如/etc/apache/sites-available/default等中的内容:
这个文件指定了web目录。
其中每个字段的解释如下:
|ServerAdmin
服务器返回给客户端的错误信息中所包含的管理员邮件地址。
说明:
该参数是在所有返回给客户端的错误信息中给出管理员的邮件地址。但也可以是一个 URL地址,如果 httpd不能将该参数的值识别为 URL,它就会假定它是一个 email-address ,并在超连接中用在 mailto后面。这里推荐配置一个 Email地址 ,如果配置的是 URL一定要保证指向一个受控制的服务器,否则用户将无法确保和管理员取得联系。
示例:
ServerAdmin hradmin.zh@ccb.cn

|DocumentRoot
组成网络上可见的主文档树的根目录。
【说明】
此参数设置了 httpd 服务的目录。在没有配置类似 Alias 这种参数的情况下,服务器会将请求中的 URL附加到 DocumentRoot后面以构成指向文档的路径。
示例:
DocumentRoot /etc/httpd/www/web
这样,对 的访问就会指向 /etc/httpd/www/web/index.html。如果参数中不是绝对路径,则被假定为是相对于 ServerRoot 的路径。
注意:指定 DocumentRoot时不应包括最后的 "/"。 经过实践,如果指定多个DocumentRoot,后面的DocumentRoot指定会覆盖前面的。

|Directory
可以封装一组参数,使之仅对文件空间中的某个目录及其子目录生效
【语法】
...
【说明】
用于封装一组参数,使其对某个目录及其子目录生效。 directory-path可以是一个目录的完整路径,或是包含了 Unix shell匹配语法的通配符字符串,但是通配符都不能匹配 "/"字符,例如: 是无法匹配 /home/user/public_html 的,而 却能够正确匹配。
directory-path参数必须与被访问文件所在文件系统的路径保持一致。如果有多个非正则表达式, 配置段符合并包含某文档的目录 (或其父目录 ),那么会以短目录优先的规则进行应用。 的默认访问权限为 "Allow from All",这意味着 Apache没有进行访问控制,通过设置 Order, Deny, Allow, AllowOverride这个几个参数可以对访问进行控制。
下面简单介绍一下这 4个参数的用法。
1>    Allow
该参数是控制哪些主机才可以访问目标。
示例:
Allow from 192.64.182.53
Allow from 192.64.182.1 192.64.182.3
表示 IP地址为 192.64.182.1或 192.64.182.3或 192.64.182.53才可以访问目标。
2>    Deny
该参数是控制哪些主机被禁止访问目标。
示例:
Deny from 192.64.182.53
Deny from 192.64.182.1 192.64.182.3
表示 IP地址为 192.64.182.1或 192.64.182.3或 192.64.182.53则不能访问目标。
3>    Order
Order参数是控制 Allow 和 Deny 参数生效顺序的,常用的取值是: Deny,Allow 和 Allow,Deny。例如:
Order Deny,Allow
Deny from 192.64.182.53
Allow from 192.64.182.1 192.64.182.3
表示先考虑 Deny条件再考虑 Allow条件,该配置的意思是拒绝 IP地址为 192.64.182.53的访问,只允许 192.64.182.1 和 192.64.182.3的访问。
再看一个例子:
Order Allow,Deny
Allow from all
Deny from 192.64.182.53
表示只拒绝 IP地址为 192.64.182.53的访问。
4>    AllowOverride
当服务器发现一个 .htaccess文件 (由 AccessFileName 指定 )时,它需要知道在这个文件中声明的哪些指令能覆盖在此之前指定的配置参数。一般情况下 NONE即可。
【 Directory 参数小结】
最后给出一个完整封装目录的配置段:

Options Indexes FollowSymLinks       //对 URL映射到的系统目录产生文件列表
AllowOverride None
Order Deny,Allow
Allow from all

上面的配置对系统中的 "/home/hrdc/images"目录进行了封装,而且对访问不加任何限制。这段配置后面在讲如何将静态文件放置到 Apache上还会用到。

|VirtualHost
虚拟主机。
【说明】
在这个参数内可以模仿一个 Web服务配置众多参数,即在 中配置一组仅作用于特定虚拟主机的参数。
示例

ServerAdmin   hrdc.zh@ccb.cn
DocumentRoot  /home/hrdc
ServerName    hrdc.ccb.cn
ErrorLog logs/host.foo.com-error_log
TransferLog logs/host.foo.com-access_log

注意:每个虚拟主机必须对应不同的 IP地址、端口或是不同的主机名。
中定义的监听地址只代表虚拟主机并不是指定 Apache服务的监听地址。指定 Apache监听地址的参数则是 Listen 。


|IfModule
根据指定的模块是否启用为条件来决定是否进行处理。
【语法】
...
【说明】
在该参数中配置的表达式为真的时候才进行处理。如果为假,所有其包含的参数都将被忽略。
段中的表达式可以为以下两种方式之一来表达:
·         module
·         !module
第一种情况表示,在 之间的配置参数仅当 module被载入后才被执行。此模块可以是编译时静态链接的核心模块或是使用 LoadModule 指令动态载入的模块。第二种情况则表示,仅当 module没有载入时才执行参数内的配置处理。
module可以是模块的标识符或者是编译模块时的文件名。在上面的例子中, mod_weblogic.c就是编译模块时的文件名。
注意: 配置段是可以嵌套的,从而可以实现简单的多模块测试。

阅读(1841) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~