Apache - Web Server

官网:  http://httpd.apache.org/download.cgi 

Apache 版本信息 sudo apachectl -v     

安装成功: 启用Apache后, 浏览器输入 http://localhost 出现“It works!”就表示运行正常。

Apache 开/关/重启 sudo apachectl start    sudo apachectl restart    sudo apachectl stop    

系统目录: http://localhost

用户目录: http://localhost/username

也就是 Mac OS Home下的 Sites(站点).

要实现输入 127.0.0.1 就能进入用户目录! 为验证!!

需要进行如下修改!

一:

vi etc/apache2/usrs  下面创建/或者修改 V.conf 文件. (用户名.conf)    内容改成如下:   
<Directory “/Users/username/Sites/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory> ‘’  > 请将username改成你的用户名

保存退出后 → 修改权限 → 755   手动全部读写  

二:

编辑下面文件 vi /etc/apache2/httpd.conf 

删除下列这些代码前的注释符号(#号) Include /private/etc/apache2/extra/httpd-userdir.conf LoadModule authz_core_module libexec/apache2/mod_authz_core.so LoadModule authz_host_module libexec/apache2/mod_authz_host.so LoadModule userdir_module libexec/apache2/mod_userdir.so

编辑下面文件 /etc/apache2/extra/httpd-userdir.conf

删除下列这些代码前的注释符号(#号) Include /private/etc/apache2/users/*.conf

重启 Apache sudo apachectl restart

这时,用户目录 已经可以用了: 用户目录: http://localhost/V/

   

虚拟主机: ???

 

这步骤的教程链接     http://note.rpsh.net/posts/2013/11/27/osx-10-9-apache-server-php-mysql          首先我们一个服务器不可能只有一个网站 所以要开启虚拟主机功能. 新建的网站会自动出现 独立配置文件 如 (3)  file:///private/etc/apache2/extra/httpd-vhosts.conf     打开后会找到 <VirtualHost *:80>  ServerAdmin webmaster@dummy-host.example.com  DocumentRoot “/usr/docs/dummy-host.example.com”  ServerName dummy-host.example.com ErrorLog “/private/var/log/apache2/dummy-host.example.com-error_log”  CustomLog “/private/var/log/apache2/dummy-host.example.com-access_log” common  </VirtualHost>   ServerAdmin 就是网站管理员 这个无所谓随便 DocumentRoot 是网站默认目录 这个无需更改 ServerName 最重要 这里改成你自己网站要绑定的域名.  随后两个是日志 如无特殊要求无需修改.    修改好后 重启apache .    目前就所有都宣告配置完成…        

Apache - Zabbix 配置.

用(系统目录)127.0.0.1 → 进入 用户目录

修改/etc/apache2/httpd.conf内容

DocumentRoot /Users/username/Sites <Directory /Users/username/Sites> Options Indexes MultiViews

apache 2.2

AllowOverride All

Order allow,deny

Allow from 127.0.0.1

apache 2.4

Require local </Directory> 这样Sites目录就是网站根目录了, 通过http://localhost就可以访问了。

Apache

http://tieba.baidu.com/p/2747109517                                                                         全面配置   http://note.rpsh.net/posts/2013/11/27/osx-10-9-apache-server-php-mysql        apache ??

mac自带的   http://httpd.apache.org/download.cgi   官网下载   终端里面 输入  sudo apachectl -v      显示apache版本   sudo apachectl start    启动方法            系统默认开启的.   sudo apachectl restart      重启 sudo apachectl stop          停止 启用 Apache 之后,你可以直接在浏览器中访问 http://localhost,如果出现“It works!”就表示运行正常。 上面那个是系统的目录   还有个主要的用户目录 按照下面的配置.

  1.   Etc apache2 usrs 下面创建V.conf    (用户名.conf)    如果已经存在   那就修改下内容  . 内容   <Directory “/Users/username/Sites/”>
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
    </Directory>   (请将username改成你的用户名) 保存后 修改权限  755   手动全部读写   2  编辑 /etc/apache2/httpd.conf 文件,删除下列这些代码前的注释符号: # Include /private/etc/apache2/extra/httpd-userdir.conf LoadModule authz_core_module libexec/apache2/mod_authz_core.so
    LoadModule authz_host_module libexec/apache2/mod_authz_host.so
    LoadModule userdir_module libexec/apache2/mod_userdir.so 编辑 /etc/apache2/extra/httpd-userdir.conf 文件,删除下列这些代码前的注释符号: # Include /private/etc/apache2/users/*.conf 重启 Apache sudo apachectl restart 这时,这个网址应该已经可以用了: http://localhost/username/       这步骤的教程链接     http://note.rpsh.net/posts/2013/11/27/osx-10-9-apache-server-php-mysql        ` `    首先我们一个服务器不可能只有一个网站 所以要开启虚拟主机功能. 新建的网站会自动出现 独立配置文件 如 (3)  file:///private/etc/apache2/extra/httpd-vhosts.conf     打开后会找到 <VirtualHost *:80>  ServerAdmin webmaster@dummy-host.example.com  DocumentRoot “/usr/docs/dummy-host.example.com”  ServerName dummy-host.example.com ErrorLog “/private/var/log/apache2/dummy-host.example.com-error_log”  CustomLog “/private/var/log/apache2/dummy-host.example.com-access_log” common  </VirtualHost>   ServerAdmin 就是网站管理员 这个无所谓随便 DocumentRoot 是网站默认目录 这个无需更改 ServerName 最重要 这里改成你自己网站要绑定的域名.  随后两个是日志 如无特殊要求无需修改.    修改好后 重启apache .    目前就所有都宣告配置完成…            

##

编辑php配置文件 →169行 → 取消注释. sudo vim /etc/apache2/http.conf

选做!!! Listen 80 改成 Listen 8888 #這樣就可以和powder分開,不會彼此衝突。

phpMyAdmin

  • 官网下载压缩包 → 解压 → 文件夹重命名: phpmyadmin → 移到 /资源库/webserber/Documents/ 下
  • 设置phpmyadmin:
    • config.sample.inc.php 重命名改成 config.inc.php,
    • 编辑这个文件 31行末尾 ‘localhost’ 改成 ’127.0.0.1′
    • 浏览器打开 http://localhost/phpmyadmin

使用方法: 登陆界面 → 选择语言 → MySQL的 用户名 / 密码

远程设置: 修改PHPMyadmin目录下libraries/config.default.php, 830行: AllowArbitraryServer,后面=号的false 改为true。

MySQL:

修改登录密码

mysqladmin -u root password newpassword    

显示数据库

show databases;

显示表

use mysql; (先选择要使用的数据库)
show tables; (显示数据库中的表)   

显示表内容

select * from user

新建数据库

create database xujian; 

新建表结构框架

  • 比如 明珠医院 护士联系表
    • 只建立 工号 姓名 性别 学位 数据类型/长度 和默认值.
  • create table 表名 (字段名 类型 数据宽度 是否为空 是否主键 自动增加 默认值)
    create table mzyy (
    >id int(4) not null primary key auto_increment, >name char(20) not null, >sex int(4) not null default ‘0’, >degree double(16,2));

      以上例子不能直接复制运行. 
      原因是这个命令实在太长了,为了书写好看 把它分成好几行了.
      终端里你 可以用 \+回车键 来另起一行 而不打断输入命令.
    

修改表结构 ( 增加,删除,修改字段 )

  • 添加字段: 格式: alter table 表名 add 字段 类型 其他;

      例: alter table mzyy add phone int(4) not null;
    
  • 删除字段: 格式: alter table 表名 drop index phone;

  • 修改字段:
    格式: alter table 表名 chande 原名 新名 类型; 例子

查看表结构

mysql\> describe mzyy;     # 插入表格内容 - 新加内容: insert into 表格名 values('字段1','字段2','字段3','字段4');
  • insert into mzyy values(‘219’,’xujian’,’男’,’1971-10-01’);

删除表内容: delete from table 表格名 where id=1;

 修改表内容 update

  例如:将张三的出生年月改为1971-01-10   mysql> update name set csny=’1971-01-10’ where xm=’张三’;   

   删库和删表 

  drop database 库名;    drop table 表名;   

  增加MySQL用户

  格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码” 

查询前10条记录,

但在mysql中 不支持这个写法,它用limit 10。 

十一. 常见问题: 1.”Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ “错误 解决方法: 这是没启动mysql的守护进程,执行service mysqld start就行了  

SQL server

能做什么? SQL 数据查询 插入/删除/更新 数据

创建 新数据库/表 设置表、存储过程和视图的权限

SQL 可在数据库中创建存储过程 SQL 可在数据库中创建视图

SQL有很多版本,但是 主要的关键词 比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等是通用的. 对大小写不敏感

SELECT - 从数据库表中获取数据

UPDATE - 更新数据库表中的数据

DELETE - 从数据库表中删除数据

INSERT INTO - 向数据库表中插入数据

CREATE DATABASE - 创建新数据库

ALTER DATABASE - 修改数据库

CREATE TABLE - 创建新表

ALTER TABLE - 变更(改变)数据库表

DROP TABLE - 删除表

CREATE INDEX - 创建索引(搜索键)

DROP INDEX - 删除索引

从表中选择一列数据的内容 select name form company; 读取表里面所有内容 select * from company

update delete insert select * from table limit10/top10

mysqladmin root password xujian

显示前五行数据

select top 5 * from icd10

更新数据

某行某列 (直接修改 并应用)

格式 update 表格 set 要修改字段 = ‘新内容’ where 哪行 = ‘行号’ update icd10 set icd = ‘a09.90’ where icdname = ‘哮喘’

某行多列 update icd10 set icd = ‘a09.90’ , icdnumber = ’20’ where icdname = ‘哮喘’

删除某行号 delete from icd10 where 序号 = 100

插入数据

insert into ICD10 VALUES (100, ‘A04.904’, ‘实物’, NULL, ‘sw’, 100)

数据 不用加’’ 那个空值 NULL 也不用加’’

倒序查询. select top 100 * from ICD10 order by RecordID desc

注释行 #

Apache Basic

官网地址: wiki中文文档 2.4 官方文档.EN 2.2 官方文档.CN Mac-Apache 最好教程

apache 搭配 php. 写个 php 脚本
<?php phpinfo();?> 运行看看 能显示页面就正常. 还能看是什么版本, 显示的是 源文本 说明 php 没设置成功.

/etc/apache2/httpd.conf 配置文件 注释这行 #LoadModule php5_module libexec/apache2/libphp5.so 就会 从 `/etc/apache2/other/+php-osx.conf file. `这里 读取配置文件 启用最新版本 也就是 php7.0

Apache: 最流行的 网页服务器

还有 IIS 和 nginx

查 Apache 版本: 一下二选一     
sudo apachectl -v  / httpd -v

IApache 安装成功标志:

  1. 启用Apache 服务
    1. 浏览器输入 (二选一) http://localhost // 你网站在 系统目录下的 http://localhost/v/ // 你网站在 用户目录下的 (v 改成你自己的用户名)

      1. 出现“It works!”就表示运行正常。

*Apache 开/关/重启 sudo apachectl start  / stop / restart

Mac 默认开机启动apache 服务.

*sudo apachectl -k restart

排错重启:会提示配置文件哪里有错误.

sudo apachectl graceful

重新启动apache服务器,但不会中断原有的连接

sudo apachectl configtest

检查配置文件中的语法是否正确

Apache 配置文件夹: /etc/apache Apache 主要配置文件 /etc/apache2/httpd.conf

记得备份原文件!! sudo cp a.txt a.txt.backup

系统目录: http://localhost

用户目录: http://localhost/v (这里填你自己的用户名)

也就是 Mac OS Home下的 Sites(站点).

*Apache 默认网站根目录: /library/webserver/documents

这个文件夹下 放个 php 文件 如: info.php 访问: http://localhost/info.php 就能看到info.php 的网页内容了

每次都把项目 复制到 /library/webserver/documents 下 太麻烦了. 所以要 改下 apache 的配置文件. /etc/apache2/httpd.conf 实现输入 127.0.0.1 就能进入用户目录!

需要进行如下修改:

  1. **指定文件夹下 创建 或者 修改 V.conf 文件. (用户名.conf)   

    vi etc/apache2/usrs/v.conf

    内容改成如下: <Directory “/Users/username/Sites/”> Options Indexes MultiViews FollowSymLinks AllowOverride All Order allow,deny Allow from all Require all granted </Directory> ‘’ 

    请将username改成你的用户名

保存退出后 → 修改权限 → 755   手动全部读写  

  1. vi /etc/apache2/httpd.conf

删除下列这些代码前的注释符号(#号) Include /private/etc/apache2/extra/httpd-userdir.conf LoadModule authz_core_module libexec/apache2/mod_authz_core.so LoadModule authz_host_module libexec/apache2/mod_authz_host.so LoadModule userdir_module libexec/apache2/mod_userdir.so

  1. vi /etc/apache2/extra/httpd-userdir.conf

删除下列这些代码前的注释符号(#号) Include /private/etc/apache2/users/*.conf

  1. 重启 Apache sudo apachectl restart

这时,用户目录 已经可以用了: 用户目录: http://localhost/V/ 如果改过端口的: http://localhost:8090/index.php

虚拟主机: ???

  首先我们一个服务器不可能只有一个网站 所以要开启虚拟主机功能.

DocumentRoot 是网站默认目录 这个无需更改

ServerName 最重要 这里改成你自己网站要绑定的域名.    修改好后 重启apache .    目前就所有都宣告配置完成…

 


**httpd.conf 详细配置

  • Listen 80. Apache 的监听端口. 外网要访问本地,请在路由上开放这个端口.

  • DocumentRoot

    235行. 网页的目录. 如果要改: 必须 同步修改: <directory “/srv/http”>DocumentRoot

记得修改下面 否则报错 `Require all denied → Require all granted ` Document 目录 及其父目录必须有可执行权限!!! ( 用 chmod o+x /path/to/documentroot )

  • Allowoverride none 如果要使用 .htaccess 请允许 这个选项

用户目录: 默认设置 可以通过 http://localhost/username/index.html 里面的内容, (可以通过/etc/httpd/conf/extra/httpd-userdir.conf 设置).

要禁用这个访问,请注释掉 /etc/httpd/conf/httpd.conf 文件中的如下行: Include conf/extra/httpd-userdir.conf

*请正确设置目录的权限, 网页文件及父目录 必须可执行

重启 httpd.service 服务以应用更改。

管理多个主机 如果要管理的主机非常多,希望更方便的维护,建议为每一个虚拟主机创建一个配置文件并文件存储到一个文件夹中 /etc/httpd/conf/vhosts。 创建目录:

mkdir /etc/httpd/conf/vhosts

编写单独的配置文件:

nano /etc/httpd/conf/vhosts/domainname1.dom

nano /etc/httpd/conf/vhosts/domainname2.dom

… 在 /etc/httpd/conf/httpd.conf 中 Include 单独的配置文件:

Enabled Vhosts:

Include conf/vhosts/domainname1.dom Include conf/vhosts/domainname2.dom 通过注释或取消注释可以单独启用或禁用一个虚拟主机。

DocumentRoot “/usr/local/www/data“        DocumentRoot定义这个服务器对外发布的超文本文档存放的路径,客户程序请求的UR L就被映射为这个目录下的网页文件。这个目录下的子目录,以及使用符号连接指出的文件和目录都能被浏览器访问,只是要在URL上使用同样的相对目录名。

AllowOverride的设置 对每个目录访问控制文件作用的影响   All 缺省值,使访问控制文件可以覆盖系统配置   None 服务器忽略访问控制文件的设置   Options 允许访问控制文件中可以使用Options参数定义目录的选项   FileInfo 允许访问控制文件中可以使用AddType等参数设置   AuthConfig 允许访问控制文件使用AuthName,AuthType等针对每个用户的认证机制,这使目录属主能用口令和用户名来保护目录   Limit 允许对访问目录的客户机的IP地址和名字进行限制

 虚拟主机是在一台Web服务器上,可以为多个单独域名提供Web服务,并且每个域名都完全独立,包括具有完全独立的文档目录结构及设置,这样域名之间完全独立,不但使用每个域名访问到的内容完全独立,并且使用另一个域名无法访问其他域名提供的网页内容。        虚拟主机的概念对于ISP来讲非常有用,因为虽然一个组织可以将自己的网页挂在具备其他域名的服务器上的下级往址上,但使用独立的域名和根网址更为正式,易为众人接受。传统上,必须自己设立一台服务器才能达到单独域名的目的,然而这需要维护一个单独的服务器,很多小单位缺乏足够的维护能力,更为合适的方式是租用别人维护的服务器。ISP也没有必要为一个机构提供一个单独的服务器,完全可以使用虚拟主机能力,使服务器为多个域名提供Web服务,而且不同的服务互不干扰,对外就表现为多个不同的服务器。

**主要配置:

1  ServerRoot “/application/apache2.2.22”   # apache根目录,应只能root访问

2  Listen 80                            # apache服务默认的监听端口80 如果需要同时监听多个端口可以在后面加行:listen 81

5  User daemon                          # apache的用户,默认为daemon     6  Group daemon                         # apache的用户,默认为daemon

9 ServerAdmin you@example.com # 系统管理员邮箱,如果出现问题,会在首页显示

二、Apache扩展的配置文件 /application/apache/conf/extra          # apache扩展的配置文件

三、httpd-vhosts.conf虚拟主机配置文件注释 root@es extra# egrep -v “^.*#|^$”  httpd-vhosts.conf |nl     1  NameVirtualHost :80                                # 基于名称的虚拟主机配置( :80表示监听本机所有ip)     2  <VirtualHost *:80>                                  # 定义一个虚拟主机     3      ServerAdmin webmaster@dummy-host.example.com    # 配置管理员邮箱     4      DocumentRoot “/application/apache2.2.22/docs/dummy-host.example.com”  # 程序的站点目录     5      ServerName dummy-host.example.com               # 域名服务,需要apache mode_alias模块支持     6      ServerAlias www.dummy-host.example.com          # 虚拟主机别名     7      ErrorLog “logs/dummy-host.example.com-error_log”# 错误的日志路径     8      CustomLog “logs/dummy-host.example.com-access_log” common  #访问日志配置(生产环境我们用combined格式代替common格式)     9  </VirtualHost>    10  <VirtualHost *:80>    11      ServerAdmin webmaster@dummy-host2.example.com    12      DocumentRoot “/application/apache2.2.22/docs/dummy-host2.example.com”    13      ServerName dummy-host2.example.com    14      ErrorLog “logs/dummy-host2.example.com-error_log”    15      CustomLog “logs/dummy-host2.example.com-access_log” common    16  </VirtualHost>

四、Apache服务存放站点的目录 /application/apache/htdocs # 默认存放网页的路径,输入IP 到此目录 能够见到it’s wroks! 就是此目录 root@es htdocs# less index.html <html><body><h1>It works!</h1></body></html>

五、Apache服务目录结构说明 root@es htdocs# ls /application/apache/ bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules bin启动文件目录说明 |– bin                    # apache服务的命令目录 |   |– ab                 # http服务性能测试工具 |   |– apachectl          # apache启动命令 |   |– apr-1-config       |   |– apu-1-config |   |– apxs               # http服务编译和安装扩展模块使用工具,在DSO方式模块编译时用到 |   |– checkgid |   |– dbmmanage |   |– envvars |   |– envvars-std |   |– htcacheclean       # 清理磁盘缓冲区的控制命令 |   |– htdbm |   |– htdigest |   |– htpasswd           # 建立和更新基本认证文件 |   |– httpd              # httpd为apache的控制命令程序 |   |– httxt2dbm |   |– logresolve |    – rotatelogs         # apache自带的日子轮询命令(cronolog生产环境使用比较多)。

conf配置文件目录 root@es htdocs# ls /application/apache/conf/ extra  httpd.conf  magic  mime.types  original /application/apache/conf/         # apache配置所有的配置文件目录 |– extra                         # 额外的apache配置文件目录 如:httpd-vhost.conf |   |– httpd-autoindex.conf       |   |– httpd-dav.conf |   |– httpd-default.conf |   |– httpd-info.conf |   |– httpd-languages.conf |   |– httpd-manual.conf |   |– httpd-mpm.conf |   |– httpd-multilang-errordoc.conf |   |– httpd-ssl.conf |   |– httpd-userdir.conf |   |– httpd-vhosts.conf |– httpd.conf                     # apache主配置文件 |– magic |– mime.types |– original |   |– extra |   |   |– httpd-autoindex.conf |   |   |– httpd-dav.conf                 # dav支持配置 |   |   |– httpd-default.conf             # 这个文件里配置的是apache的相关服务参数:超时时间、保持链接 |   |   |– httpd-info.conf |   |   |– httpd-languages.conf           # 语言支持 |   |   |– httpd-manual.conf |   |   |– httpd-mpm.conf # 服务器池管理,也是优化apache的一个配置文件(apache的模式以及配置链接数,常用模式为worker模式和profork模式,默认porfork) |   |   |– httpd-multilang-errordoc.conf |   |   |– httpd-ssl.conf                 # 提供apache ssl支持配置文件 |   |   |– httpd-userdir.conf |   |   |– httpd-vhosts.conf              # 虚拟机的配置文件 |   |– httpd.conf

localhost 拒绝访问

## make_sock: could not bind to address [::]:80

  • address is already in use 80被别的软件占用了 进 活动监视器 的 network 看端口被谁用了。

怎么看是不是 apache 使用了 80端口 修改下 apache 配置文件的 listen 端口 成8090 重启apache。 再nmap 127.0.0.1 看看80 是不是消失了 变成8090了.

然后 浏览器 localhost:8090 You don’t have permission to access / on this server.

总结: httpd: 主要配置:

  1. 监听端口

  2. DocumentRoot “/Users/v/desktop/site/”

  3. <Directory “/Users/v/desktop/site/”>

2 3 两处的路径必须一致.

/Users/v/desktop/site/ 所有父级文件夹 必须有 x 可执行权限.

opt 文件夹.

放 可选程序.

Apache / Httpd .conf 配置文件详解:

Config :

  1. 端口设置 **Lsiten 80 **Listen 443 //默认是 80 可以同时监听多个端口如 Https (443) //也可以只响应某个 IP 端口的 http 请求. (默认相应所有 IP 的Http请求)

  2. **ServerRoot “/usr” 指的是 httpd软件所在的安装/运行目录,一定不能错

    /usr :Unix 系统商 开发的程序. /usr/local :用户自己安装的程序 /opt :第三方厂商的程序 选装(option)

  3. LoadModule

  4. User Daemon 和 Group Daemon,

  5. ServerAdmin,管理员邮箱,可改可不改

  6. DocumentRoot Web文档的存放根目录.你写的网页要反正这里 才能用网址访问到. **下面一行的 <Directory 路径 也要改成和同样的值!!!!

  7. **Directory 对指定目录 做出访问权限控制. 必须的.

    <Directory “D:/www”>     Options None     AllowOverride None     order Allow,Deny     allow from all     deny from www.google.com.hk </Directory>

    • allowoverride:

      建议值: none → 完全禁止使用. htaccess 文件.

允许读取 .htaccess 文件中的指令类型.

避免使用 .htaccess 主要原因是性能. 允许读取的话. apache 要在每个目录(包括上级目录!!)中查找. htaccess 文件 无论是否真正有用. 都会导致性能下降. 每个请求都要 读取一次 .htaccess 文件!!

  1. 虚拟主机 NameVirtualHost :80

    <VirtualHost *:80> ServerAdmin xxx@example.com DocumentRoot “D:/test” ServerName xxx.com </VirtualHost> 注意如果要访问,xp必须修改本机的 C:\WINDOWS\system32\drivers\etc目录下的hosts文件追加 127.0.0.1      xxx.com 配置完成即可以通过http://xxx.com

  2.  ServerAdmin@your.address 写上服务器管理员的地址, http 服务出错时 这个邮箱会给客户端看到. 客户 就可以联系管理员.报错.

文档访问控制 两种方法 针对目录进行文档的访问控制.

  1. httpd.conf 文件中 用 <Directory> 对每个目录进行设置.

    每次改完配置 都要重启 httpd 进程.

    1. 每个目录下 设置访问控制文件 .htaccess

      <Directory> 这个就是用来定义目录访问限制的. Apache 对目录的权限 是能被下一级目录继承的. 根目录的设置 将影响 下级目录.

  • **AllowOverride 设置, 使得Apache服务器不需要查看根目录下的访问控制文件,也不需要查看以下各级目录下的访问控制文件. 直至httpd.conf(或access.conf )中为某个目录指定了允许Alloworride,即允许查看访问控制文件。

    由于Apache对目录访问控制是采用的继承方式,如果从根目录就允许查看访问控制文件, 那么Apache就必须一级一级的查看访问控制文件,对系统性能会造成影响。 因此对于系统根目录设置AllowOverride None不但对于系统安全有帮助,也有益于系统性能。

    All 缺省值,使访问控制文件可以覆盖系统配置   None 服务器忽略访问控制文件的设置   Options 允许访问控制文件中可以使用Options参数定义目录的选项   FileInfo 允许访问控制文件中可以使用AddType等参数设置   AuthConfig 允许访问控制文件使用AuthName,AuthType等针对每个用户的认证机制,这使目录属主能用口令和用户名来保护目录   Limit 允许对访问目录的客户机的IP地址和名字进行限制

       Options Indexes FollowSymLinks    AllowOverride None    Order allow,deny    Allow from all   \</Directory\>
    

         每个目录具备一定属性,可以使用Options来控制这个目录下的一些访问特性设置,以下为常用的特性选项:      Options设置 服务器特性设置   All 所有的目录特性都有效,这是缺省状态   None 所有的目录特性都无效   FollowSymLinks 允许使用符号连接,这将使浏览器有可能访问文档根目录(DocumentRoot)之外的文档   SymLinksIfOwnerMatch 只有符号连接的目的与符号连接本身为同一用户所拥有时,才允许访问,这个设置将增加一些安全性   ExecCGI 允许这个目录下可以执行CGI程序   Indexes 允许浏览器可以生成这个目录下所有文件的索引,使得在这个目录下没有index.html(或其他索引文件)时,能向浏览器发送这个目录下的文件列表

此外,上例中还使用了Order、Allow、Deny等参数,这是Limit语句中用来根据浏览器的域名和 IP地址来控制访问的一种方式。 其中Order定义处理Allow和Deny的顺序, 而Allow、Deny则针对名字或IP进行访问控制设置, allow from all:表示允许所有的客户机访问这个目录,而不进行任何限制。          当在一台FreeBSD上运行Apache服务器时,这台计算机上的所有用户都可以有自己的网页路径, http://freebsd.example.org.cn/~user 使用波浪符号加上用户名就可以映射到用户自己的网页目录上。 映射目录为用户个人主目录下的一个子目录,其名字就用UseDir这个参数进行定义,缺省为public_html。 如果不想为正式的用户提供网页服务,使用DISABLED作UserDir的参数即可。_ 

Apache服务器本身就具备代理的功能,然而这要求加载入mod_proxy模块。 这能使用IfModule语句进行判断, 如果存在mod_proxy模块,就使用ProxyRequests打开代理支持. 此后的Directory用于设置对Proxy功能的访问权限设置,以及用于设置缓冲的各个参数设置。

虚拟主机  一台Web服务器,可以为多个单独域名提供Web服务,并且每个域名都完全独立.

<VirtualHost 192.168.0.1>(虚拟主机IP)    ServerAdmin 111@xxx.com(第一个虚拟主机Email)    DocumentRoot H:/web001(第一个虚拟主机目录)    ServerName www.xxx.org(第一个虚拟主机域名)    ErrorLog logs/www.xxx.org-error.log(第一个虚拟主机错误日志)    CustomLog logs/www.xxx.org-access.log common(第一个虚拟主机数据)   </VirtualHost>      <VirtualHost 192.168.0.2>(虚拟主机IP)    ServerAdmin 111@xxx.com(第二个虚拟主机Email)    DocumentRoot H:/web002(第二个虚拟主机目录)    ServerName www.xxx2.org(第二个虚拟主机域名)    ErrorLog logs/www.xxx2.org-error.log(第二个虚拟主机错误日志)    CustomLog logs/www.xxx2.org-access.log common(第二个虚拟主机数据)   </VirtualHost>      以此类推,可以增加更多虚拟主机。