Chinaunix首页 | 论坛 | 博客
  • 博客访问: 153947
  • 博文数量: 126
  • 博客积分: 1073
  • 博客等级: 上尉
  • 技术积分: 1175
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-12 00:32
文章分类

全部博文(126)

文章存档

2018年(56)

2013年(1)

2012年(8)

2011年(61)

分类: LINUX

2011-04-28 22:06:23

apache笔记

 

# vim /etc/hosts

127.0.0.1               localhost.localdomain localhost

至少要有这一行,这样在启动apache时才不会发生找不到完整主机名称(FQDN)的错误消息

# vim /etc/httpd/conf/httpd.conf

servertokens os

这个项目告诉客户端WWW服务器的版本与操作系统,不需要更改

如果不想告诉太多主机的信息,将这个项目的OS改成minor

pidfile run/httpd.pid

放置PID的文件,可方便apache软件的管理

timeout 120

如果等待超过120秒则中断该次联接

一般来说,此数值在300秒左右即可,不需要修改这个原始值

keepalive on          ç最好将默认的off改为On

是否允许持续的连接

maxkeepaliverequests 500     ç可以将原本的100改为500或更高

该次连接能够传输的最大数据量,为了提高效率可以改大一点,0代表不限制

keepalivetimeout 15

在允许keepalive的条件下,该次联机在最后一次传输后等待延迟的秒数

当超过上述秒数则中断连接,设置15差不多,如果设置太高(等待时间太长)在较忙的系统上将会有较多的apache程序占用资源,可能会有效率方面的困扰

StartServers       8

MinSpareServers    5

MaxSpareServers   20

ServerLimit      256

MaxClients       256

MaxRequestsPerChild  4000

 

StartServers         2

MaxClients         150

MinSpareThreads     25

MaxSpareThreads     75

ThreadsPerChild     25

MaxRequestsPerChild  0

上面是两个与服务器联机资源有关的设置。默认的项目对于一般小型网站来说已经很够用了,如果流量比较大,则可以修改

# 这两个模块都提供用户联机的资源.(process),设置的值越大,系统会启动越多的程序来提供apache服务,反应速度越快。

1.       针对模块来说

worker模块占用的内存较小,对于流量较大的网站来说,是一个比较好的选择

profork虽然战胜较大的内存,不过速度与worker差异不大,并且prefork内存使用设计较为优秀,可以在很多无法提供debug的平台上进行自我排错

2.       细节设置的内容方面(以prefork为例,与worker意义相同)

startservers: 启动apache时同时启动的process数量

MinSpareThreads: 最小备用程序数量

MaxSpareThreads:最大备用程序数量

MaxClients:最大的同时连接数,也就是process数量不会超过此数量,假设有10个人连上来,则apache的程序数应该有15~30个。

MaxRequestsPerChild:每个程序能够提供的最大传输次数要求。例如当有个用户连上服务器后(一个process),却要求数百个网页,当它的要求数量超过此数值,则该程序会被丢弃,另外切换一个新程序,这个设置可以有效地控管每个process在系统上的“存活时间”

# 除非网站流量特别大,否则上面的默认值已经够用了,如果内存不够大的话,MaxClients反而要调小一点,例如150,否则效率不佳

Listen 80

与监听接口有关,默认开放所有网络接口,也可修改端口,如8080

LoadModule foo_module modules/mod_foo.so

加载模块的设置项目,apache提供很多有用的模块给我们使用

Include conf.d/*.conf

放置到Include conf.d/*.conf的设置都会被读入

User apache

Group apache

前面提到的preworkworker等模块启动的process的拥有者与群组设置。这个设置很重要,因为以后网页能不能被浏览都与这个身份有关

ServerAdmin root@server1.example.com

系统管理员的mail,当网站出现问题时,错误信息发送的邮箱

ServerName server1.example.com

设置主机名称,如果没有指定的话,默认会以hostname为依据

UseCanonicalName Off

是否使用标准主机名称?如果主机有多个主机名称,则设置为on

如果apache只接收上面server name指定的主机名称联机。建议使用Off

这两个模块被放到不同的执行文件中

/usr/sbin/httpd : 使用prefork模块

/usr/sbin/httpd.worker : 使用worker模块

查阅/etc/sysconfig/httpd可知,系统默认使用prefork模块,可以通过修改/etc/sysconfig/httpd来使用worker模块。

LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

设置显示语言的优先级

    Options FollowSymLinks

    AllowOverride None

这个设置是针对WWW服务顺的“默认环境”的,因为是针对“/”的设置

    Options Indexes FollowSymLinks

AllowOverride None

    Order allow,deny

    Allow from all

这个地方是针对/var/www/html这个目录进行权限设置

Options:表示这个目录内能够进行的操作,即权限设置

Ø  Indexes:如果在此目录下找不到“首页文件”,就显示整个目录下的文件名称,“首页文件”与directoryindex设置值有关

Ø  FollowSymLinks:让在此目录下的连接文件可以连接出此目录外。一般来说被chroot的程序将无法离开其目录,也就是说默认的情况下/var/www/html下面的连接文件只要连接到非此目录的其他地方,则该连接文件默认是失效的,但使用此设置即可让连接文件有效地离开本目录。

Ø  ExecCGI:让此目录具有执行CGI程序的权限,例如:目前常见的OpenWebMail使用了很多的perl程序,要让openwebmail可以执行,就需要openwebmail程序所在目录拥有execCGI权限。注意,不要让所有目录均可使用ExecCGI

Ø  Includes:让一些server-side Include程序可以运行。建议可以加上去。

Ø  MultiViews:此参数类似于多国语言的支持,可以依据客户端的语言给予不同的语言显示。可以检查一下/var/www/error/目录下的数据

AllowOverride:表示是否允许额外配置文件“.htaccess”的权限复写?可以在httpd.conf内设置好所有的权限,如此一来若用户自己的个人网页想要修改时将会对管理员造成困扰。因此apache默认可以让用户以目录下面的“.htaccess”文件复写内的权限设置。这个项目则规定“.htaccess”可以复写的权限类型有哪些,常见的有以下几种:

Ø  ALL:全部的权限均可被复写

Ø  AuthConfig:仅有网页认证(帐号密码)可复写

Ø  Indexs:仅允许Indexs方面的复写

Ø  Limits:允许用户利用AllowDenyOrder管理可浏览的权限

Ø  None:不可复写,即“.htaccess”文件失效。

Order

决定是否可被浏览的权限设置。主要有以下两种方式

l  denyallow:以deny优先处理,但没有写入规则的则默认为allow

l  allowdeny:以allow优先处理,但没有写入规则的则默认为deny

所以在默认的环境中,因为是allowdeny所以默认为deny(不可浏览),不过在下一行有个Allow from allallow优先处理,因此全部(all)客户皆可浏览。

 

DirectoryIndex index.html index.html.var

如果要让类似index.plindex.cgi也可以是首页,那可以改成如下形式

DirectoryIndex index.html index.htm index.cgi index.php3…

 

Alias /icons/ "/var/www/icons/"

    Options Indexes MultiViews

    AllowOverride None

    Order allow,deny

    Allow from all

这个Alias用于制作类似连接文件

当输入时,其实/var/www/html并没有icons的目录,不过由于alias的关系,会让该网址直接连接到/var/www/icons/下,这里默认有很多apache提供的小图标,因为设置了一个新的可浏览目录,所以多了一个来规范权限

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

    AllowOverride None

    Options None

    Order allow,deny

    Allow from all

与上面的icons类似不过这边是以scriptalias为设置值

这个设置可以指定该目录下面为具有ExecCGI能力的目录所在,所以可以将类似open webmail的程序放置到/var/www/cgi-bin内,就不必额外设置其他的目录来放置CGI程序

 

PHP等额外配置文件

# cd /etc/httpd/conf.d

# ll *.conf

-rw-r--r-- 1 root root 566 2009-07-15 proxy_ajp.conf

-rw-r--r-- 1 root root 299 2009-07-15 welcome.conf

一个是规范php设置,一个则是规范“如果首页不存在时的欢迎画面”

关于php的配置文件:

# vim /etc/httpd/conf.d/php.conf

LoadModule php4_module modules/libphp4.so

AddType application/x-httpd-php .php

DirectoryIndex index.php

这三行分别代表加载PHP模块、增加附件名称为.php的文件处理方式,以及将index.php增加为首页文件名。所以如果在/var/www/html这个首页目录内新增一个文件名为index.php时,它可以被使用为首页显示。基本上不需要进行任何修改,这个文件就能够让apache支持PHP模块与语法了。

       另外还需要知道PHP的配置文件是/etc/php.ini,可以对这个文件的某些内容进行修改,但有些地方需要告别留意,免得被客户端误用PHP资源。

# vim /etc/php.ini

register_globals=off

这里请确认为off(默认就是off),因为如果设置为On,虽然程序执行比较不容易出状况,但是很容易被攻击

log_errors=on

ignore_repeated_errors=on

ignore_repeated_source=on

这三个设置项目可以决定是否要将PHP程序的错误记录起来,建议将重复的错误数据忽略,否则在很忙的系统上这些错误数据可能造成日志文件暴增。

display_errors=off

display_startup_error=off

当程序发生问题时,是否要在浏览器上显示相关的错误信息(包括部分程序代码),强烈建议设置为off,不过如果是尚未开放的WWW服务器,为了使debug容易,可以暂时将它设置为on,如此一来程序问题会在浏览器上直接显示出来而不需要登录/var/log/httpd/error_log查阅

mysql数据库的启动与测试

主要包有mysql-serverphp-mysql

# /etc/init.d/mysqld start

# netstat -tuln | grep ‘:3306’

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN  

下面测试能否以手动的方式连上mysql数据库

# mysql -u root

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.0.77 Source distribution

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql> quit

Bye

Mysql默认监听的端口在3306,从以上代码来看mysql似乎已经启动,不过刚刚初始化的Mysql数据库存并没有任何密码,所以很可能数据库会被用户搞乱。最好对mysql设置一下密码。另外,上面那个rootlinux帐号的root是完全无关的。因为Mysql数据库软件也是多人的操作环境,在该软件内有个管理者帐号也恰好是root而已。

针对mysql软件内的root管理者设置密码:

# mysqladmin -u root password ‘your.password’

# mysql -u root -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 4

Server version: 5.0.77 Source distribution

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql> quit

Bye

如此一来mysql数据库会比较安全,其实更好的办法是分别建立不同的用户管理不同的数据库.例如:如果要给予student这个用户一个Mysql的数据库使用权,假设要给它的数据库名称为test001,那么可以进行以下操作:

# mysql -u root -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 5

Server version: 5.0.77 Source distribution

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql> create database test001;

Query OK, 1 row affected (0.06 sec)

mysql> grant all privileges on test001.* to student@loalhost identified by 'password';

Query OK, 0 rows affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| test               |

| test001            |

+--------------------+

4 rows in set (0.00 sec)

mysql> exit

然后可以利用”mysql-u student-p”命令来尝试登录mysql,即可知道student用户在mysql里拥有一个名称为test001的数据库了.其他更多的用法这里不再详述.

效率调校 /etc/my.cnf

如果mysql数据库系统有很多用户同时联机的话,可能会造成某些效率方面的瓶颈,不过,可以通过简单的设置来进一步处理mysql数据库

# vim /etc/my.cnf

[mysqld]

default-storage-engine=innodb

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

default-character-set=utf8

port=3306

skip-locking

#关于内存的设置,注意:内存的计算方式为

#key_buffer+(sort_buffer+read_buffer)*max_connection

#且总量不可高于实际的物理内存量.所以,下面的数据应该是没问题的

#128+(1+1)*150=428MB

key_buffer=128M

sort_buffer_size=2M

read_buffer_size=2M

join_buffer_size=2M

max_connection=150

max_connect_errors=10

read_rnd_buffer_size=4M

max_allowed_packet=4M

table_cache=1024

myisam_sort_buffer_size=32M

thread_cache=16

query_cache_size=16M

tmp_table_size=64M

#由联机到确定断线的时间,原本是28800(sec),8小时,先将它改为20分钟

wait_timeout=1200

thread_concurrency=8

old_passwords=1

innodb_data_file_path=ibdatal:10M:autoextend

innodb_buffer_pool_size=128M

innodb_additional_mem_pool_size=32M

innodb_thread_concurrency=16

 

[mysql.Server]

user=mysql

basedir=/var/lib

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

如果网站流量很大的话,在效率测试上要很注意

忘记mysql root密码的紧急处理

如果不小心忘记Mysql密码,网络上有一些工具可以处理,如果数据库内容并不重要,删除也无所谓,可以在mysql关闭后,将/var/lib/mysql目录整个删除,再重新启动mysql重建数据库。

需要注意的事项:

l  如果需要安装一些CGI程序,建议将它安装到/var/www/cgi-bin/下面,如此一来不需要额外设置httpd.conf即可顺利启动cgi程序

l  注意权限问题,务必让apache的程序用户(默认是apache)能够浏览

l  不要将重要数据或者隐私数据放置到/var/www/html/首页内

l  尽量将首页文件名取为index.htmlindex.php

 

个人网站

# vim /etc/httpd/conf/httpd.conf

UserDir disable

       #UserDir public_html

改成如下:

#UserDir disable

       UserDir public_html

# /etc/init.d/httpd restart

apache默认的个人首页放置在默认目录下的public_html/目录中,假如student的默认目录是/home/student,那么他的个人首页默认在/home/student/public_html/。当然可以修改这个目录名称,只要修改上述userdir内容即可。

测试:

# cd ~

# mkdir public_html

# chmod 755 public_html

# chmod 755 ~

# cd public_html

# echo “test your home” >> index.html

以后只要在地址栏中输入就可以看到个人主页了,如果要改成的话,可以做一个软连接:

# cd /var/www/html

# ln -s /home/student/public_html student

由于首页的options里面有followsymlinks参数,所以可以直接使用连接文件,另外也可以使用apache提供的别名功能:

# vim /etc/httpd/conf/httpd.conf

Alias /student/ “/home/student/public_html”

    Options FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

 

启动目录的CGI程序执行权限

要想让apache执行perl之类的网页程序,就需要安装一些额外的模块。建议最好安装一下mod_perlmod_python这两个软件。

1.       在新目录下执行CGI程序

假设想要执行的CGI程序的扩展名为.cgi.pl,且放置的目录为/var/www/html/cgi/时,可以进行如下操作:

# vim /etc/httpd/conf/httpd.conf

# AddHandler cgi-script .cgi

修改上面一行,让扩展名为.pl的文件也能执行

AddHandler cgi-script .cgi .pl

然后加入下面几行来决定开放某个目录的CGI执行权限

        Options ExecCGI

        AllowOverride None

        Order allow,deny

        Allow from all

       # apachectl restart

       接下来只要让CGI程序具有x权限,那么它就可以执行了。例如,文件存放在/var/www/html/cgi/index.cgi中:

       # chmod a+x /var/www/html/cgi/index.cgi

       然后在地址栏中输入:,即可执行该文件。

2.       使用scriptalias的功能

可以直接用别名来处理

# vim /etc/httpd/conf/httpd.conf

同样要确认下面这一行是存在的

AddHandler cgi_script .cgi .pl

然后加入下面这几行来决定开放某个目录的CGI执行权限

ScriptAlias /cgi/ “/var/www/html/cgi”

# apachectl restart

这个方法非常简洁,因为该目录不需要在apache首页下也可以成功

 

找不到网页时的显示信息

如果/var/www/html/cgi目录下没有任何首页文件(index.???)。那当用户在地址杨门女将中输入:时,结果可能会显示以下两种情况:

l  如果options里面设置了indexs的话,那么该目录下的所有文件都会被列出来,提供类似FTP的链接页面。

l  如果没有指定indexs的话,那么就会显示错误信息通知

事实上apache已经规范好一些简单的错误资料网页了

# vim /etc/httpd/conf/httpd.conf

大约在852行,默认是注释掉的

#    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var

#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var

#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var

#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var

#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var

。。。。

# apachectl restart

假设以后提供用户相关信息的是HTTP_NOT_FOUND.html文件

ErrorDocument 404 /error/HTTP_NOT_FOUND.html

# apachectl restart

上述文件“HTTP_NOT_FOUND.html”必须放置在首页目录下,即/var/www/html/ HTTP_NOT_FOUND.html。在所有配置文件中(包括/etc/httpd/conf.d/*.conf)只能存在一个ErrorDocument404的设置值,否则以较晚出现的设置为主。

100~199:一些基本的信息

200~299:客户端的要求已成功实现

300~399client的需求需要其他额外的操作,例如redirected

400~499client的要求没有办法完成(例如找不到网页)

500~599:主机的设置错误问题

 

浏览权限的设置操作

l  order denyallow:以deny优先处理,但没有写入规则的默认为allow。常用于“拒绝所有,开放选定的条件”

l  order allowdeny:以allow为优先处理,但没有写入规则的则默认为deny。常用于“开放所有,拒绝特定的条件”

l  如果allowdeny的规则中有重复的,则以默认的情况(order的规范)为主

例如,首页想让192.168.0.11cracker.com无法联机,其它可以:

# vim /etc/httpd/conf/httpd.conf

    AllowOverride None

    Options FollowSymLinks

Order allow,deny

Allow from all

Deny from 192.168.0.11

Deny from .cracker.com

注意,order是“allowdeny”,所有规则中属于allow的都会被优先处理,为了避免这个设计上的困扰,建议直接将allow的规则写在最上方。

下面是个错误的规范,请仔细观察:

# vim /etc/httpd/conf/httpd.conf

    AllowOverride None

    Options FollowSymLinks

Order deny,allow

Deny from 192.168.0.11

Deny from .cracker.com

Allow from all

虽然deny会先移到上方来处理,不过因为192.168.0.11是在all的范围内,所以发生重复,因此这个设置值将会以默认的allow为主,无法限制住192.168.0.11的存取。

“拒绝所有联机,仅接收特定联机”的典型案例:

假设/var/www/html/lan仅允许192.168.1.0/24这个网段可以浏览,可以使用denyallow

    AllowOverride None

    Options FollowSymLinks

Order deny,allow

Deny from allow

Allow from 192.168.1.0/24

事实上,如果想让某个网段或者IP无法浏览的话,最好还是利用iptables来处理比较妥当。不过如果仅是某些重要目录不想让他人查阅的话,那么这个allowdenyorder的设置就很值得考虑了。

       除了这个order设置外,还有个限制客户端能够进行操作的设置,即limit。例如,想要让用户在/var/www/html/lan目录下仅能进行最简单的GETPOSTOPTIONS操作,除此之外的其他操作均不允许,可以这样进行设置:

# vim /etc/httpd/conf/httpd.conf

    AllowOverride None

Options FollowSymLinks

# 先允许能够进行GETPOSTOPTIONS

Order allow,deny

Allow from all

# 再规定除了这三个操作之外,其他的操作通通不允许

Order deny,allow

Deny from all

通过LimitLimitExcept即可处理客户端能够进行的操作,也就是说,可以针对数据进行细节保护。但在一般小网站中,均用不到Limit

 

主机状态说明网页

安装WWW主机后,除了提供服务外,重要的工作就是维护了,是否一定要额外安装其他的软件才能了解目前主机的状态呢?当然不是。可以通过apache提供的特别功能来查询主机目前的状态,即mod_status模块。这个模块默认是关闭的,需要修改配置文件来启动它。

# vim /etc/httpd/conf/httpd.conf

# 先确定下面这几个项目已经存在

LoadModule status_module modules/mod_status.so           176行,模块的加载

 

ExtendedStatus On        217行,可以将注释去掉,信息会比较多

下面的数据在903行,可以将它修改成如下形式

    SetHandler server-status

    Order deny,allow

    Deny from all

Allow from 192.168.1.0/24

Allow from 127.0.0.1

# apachectl restart

 

.htaccess与认证网页设置

1.       建立保护目录的数据

假设要将受保护的数据放置到/var/www/html/protect

# mkdir /var/www/html/protect

# vim /var/www/html/protect/index.html

</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">测试页</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">

看到这个画面了吗?如果看到的话,表示您可以顺利进入这个受保护的网页

2.       root身份处理httpd.conf的设置数据

# vim /etc/httpd/conf/httpd.conf

# 确定下面这几行是存在的

AccessFileName .htaccess

    Order allow,deny

    Deny from all

# 在某个不受影响的地方加入这一段

    AllowOverride AuthConfig

    Order allow,deny

    Allow from all

       # apachectl restart

3.       建立保护目录下的“.htaccess”文件

# htpasswd -c /etc/httpd/passwd student1

passwd 为保存密码文件,文件名自定

student1 为用户名

默认MD5加密,首次添加用户必须带上-c参数(以后就不用)。为了安全.htpasswd文件需要放在www目录之外,这里www目录为/var/www/html,密码文件放在/etc/httpd/

编辑httpd.conf,增加一段代码:

             //预加密目录

AuthType Basic                        //基本认证

AuthName “Password Required”        //任意填写

AuthUserFile “/etc/httpd/passwd”    //这里填写服务器绝对路径

Require valid-user                    //也可填写指定用户,现在是密码文件里面所有用户

# service httpd restart

 

sysloglogrotate

apache日志文件主要记录两个信息

l  /var/log/httpd/access_log:民端正常要求的记录信息

l  /var/log/httpd/error_log:用户错误要求的数据,包括主机设置错误的信息等。

/var/log/httpd/error_log可以处理很多设置错误的情况,包括网页找不到、文件权限设置错误、密码文件名填写错误等。至于access_log则可以分析哪个网页最热门。

日志文件的压缩:

如果使用默认的apache,系统已经作了一个logrotate来使用。如果是使用Tarball自己安装的,那么不需要自行建立下面这个文件。

# vim /etc/logrotate.d/httpd

/var/log/httpd/*log

{      missingok

        notifempty

        sharedscripts

        postrotate

               /bin/kill-HUP ‘cat /var/run/httpd.pid 2> /dev/null’ 2>/dev/null | | true

        endscript

        compress  ç 建议加上这一段,让备份日志文件可以被压缩

 

常用分析软件

1.       webalizer

输出结果默认放置到/var/www/usage中,且此目录仅有本机可查阅,如果要将输出数据放到/var/www/html/protect中,让所有知道密码的用户都能够查阅

# vim /etc/webalizer.conf

# 确认下面几行是正确的,其他的则保留默认值

LogFile           /var/log/httpd/access_log

OutputDir        /var/www/html/protect/webalizer

Incremental     yes

建立该保护目录的数据

# cp -a /var/www/usage/ /var/www/html/protect/webalizer

# rm /etc/httpd/conf.d/webaliazer.conf

# apachectl restart    ç 取消系统默认的webalizer目录

开始测试执行webalizer的分析工作

# webalizer

2.       awstats

此软件不但可以由系统的corn来进行分析,还可提供浏览器直接以CGI的方式来实时更新日志文件。

1.先将awstats提供的Apache设置数据复制到conf.d

# cp /usr/local/awstats/tools/httpd_conf > /etc/httpd/conf.d/awstats.conf

# vim /etc/httpd/conf.d/awstats.conf

Alias /awstatsclasses “/usr/local/awstats/wwwroot/classes/”

Alias /awstatscss ”/usr/local/awstats/wwwroot/css/”

Alias /awstatsicons “/usr/local/awstats/wwwroot/icon/”

Alias /awstats/ “/usr/local/awstats/wwwroot/cgi-bin/”

        Options +ExecCGI

        AllowOverride AuthConfig  ç 这里改成这样,因为要保护

        Order allow,deny

        Allow from all

# apachectl restart

awstats生成的文件中包括关于apache的设置数据,直接将它放到conf.d/目录下并且更名,重新启动apache即可生效。再来则是要针对WWW日志文件来设置。设置文件是在/etc/awstats目录下,在该目录下有个范例awstats.model.conf,这个配置文件的文件名格式为:awstats.主机名.conf,所以这里文件名就是awstats.server1.conf,将它另存为一个文件,然后进行如下操作:

# cd /etc/awstats

# cp awstats.model.conf awstats.server1.conf

# vim awstat.linux.conf

找到下面这几行,并且修改一下内容

LoFile=”/var/log/httpd/access_log”        ç确定日志文件所在的位置

LogType=W                                        ç针对WWW的日志文件分析

SiteDomain=”server1.example.com”     ç主机名

HostAliases=”localhost 127.0.0.1 REGEX [myServer\ .com$]

DirCgi=”/awstats”                               ç能够执行awstats的目录

DirIcons=”/awstatsicons”                      çawstats一些小图标的目录

Lang=”CN”                                        ç语言

接着测试是否可以产生正确的分析资料

# cd /usr/local/awstats/wwwroot/cgi-bin

# perl awstats.pl -config=linux -update > -outpupt > index.html

config后面接的是awstats.server1.conf的意思,会产生index.html

# ls -l

awstats110424.server1.txt      ç刚才建立的重要数据文件

awstats.pl                             ç刚刚下达的执行文件

index.html                            ç输出首页

接下来建立保护目录的“.htaccess”文件。

# cd /usr/local/awstats/wwwroot

# vim .htaccess

AuthName              “Protect data”

AuthType               Basic

AuthUserFile          /var/www/apache.passwd

require                   valid-user

设置完后,地址栏输入就能看到输出的图表。

阅读(1685) | 评论(0) | 转发(0) |
0

上一篇:The Eagle I Admire

下一篇:YUM仓库

给主人留下些什么吧!~~