分类: LINUX
2011-04-28 22:06:23
# 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
前面提到的prework、worker等模块启动的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”文件复写
Ø ALL:全部的权限均可被复写
Ø AuthConfig:仅有网页认证(帐号密码)可复写
Ø Indexs:仅允许Indexs方面的复写
Ø Limits:允许用户利用Allow、Deny与Order管理可浏览的权限
Ø None:不可复写,即“.htaccess”文件失效。
Order
决定是否可被浏览的权限设置。主要有以下两种方式
l deny、allow:以deny优先处理,但没有写入规则的则默认为allow
l allow、deny:以allow优先处理,但没有写入规则的则默认为deny
所以在默认的环境中,因为是allow、deny所以默认为deny(不可浏览),不过在下一行有个Allow from all,allow优先处理,因此全部(all)客户皆可浏览。
DirectoryIndex index.html index.html.var
如果要让类似index.pl或index.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-server、php-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设置一下密码。另外,上面那个root与linux帐号的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.html或index.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_perl与mod_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~399:client的需求需要其他额外的操作,例如redirected等
400~499:client的要求没有办法完成(例如找不到网页)
500~599:主机的设置错误问题
浏览权限的设置操作
l order deny、allow:以deny优先处理,但没有写入规则的默认为allow。常用于“拒绝所有,开放选定的条件”
l order allow、deny:以allow为优先处理,但没有写入规则的则默认为deny。常用于“开放所有,拒绝特定的条件”
l 如果allow与deny的规则中有重复的,则以默认的情况(order的规范)为主
例如,首页想让192.168.0.11及cracker.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是“allow、deny”,所有规则中属于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这个网段可以浏览,可以使用deny、allow
AllowOverride None
Options FollowSymLinks
Order deny,allow
Deny from allow
Allow from 192.168.1.0/24
事实上,如果想让某个网段或者IP无法浏览的话,最好还是利用iptables来处理比较妥当。不过如果仅是某些重要目录不想让他人查阅的话,那么这个allow、deny与order的设置就很值得考虑了。
除了这个order设置外,还有个限制客户端能够进行操作的设置,即limit。例如,想要让用户在/var/www/html/lan目录下仅能进行最简单的GET、POST、OPTIONS操作,除此之外的其他操作均不允许,可以这样进行设置:
# vim /etc/httpd/conf/httpd.conf
AllowOverride None
Options FollowSymLinks
# 先允许能够进行GET、POST、OPTIONS
Order allow,deny
Allow from all
# 再规定除了这三个操作之外,其他的操作通通不允许
Order deny,allow
Deny from all
通过Limit与LimitExcept即可处理客户端能够进行的操作,也就是说,可以针对数据进行细节保护。但在一般小网站中,均用不到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
看到这个画面了吗?如果看到的话,表示您可以顺利进入这个受保护的网页
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
syslog与logrotate
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
设置完后,地址栏输入就能看到输出的图表。