一、APACHE的安装
软件:httpd-2.0.64.tar.bz2系统:RHEL5.5
apache现在分为两个版本1.x和2.x,下载地址:http://httpd.apache.org/
解压:
[root@localhost soft]# tar xvfhttpd-2.0.64.tar.bz2
配置:
[root@localhost httpd-2.0.64]# ./configure--prefix=/opt/apache2
/opt/apache2为安装目录
安装:
[root@localhost httpd-2.0.64]# make&& make install
启动:
[root@localhost /]#/opt/apache2/bin/apachectl start
停止:
[root@localhost /]#/opt/apache2/bin/apachectl stop
二、APACHE配置
apche基本配置文件为httpd.conf,路径/opt/apache2/conf/httpd.conf。
1、端口监听
Listen 80
80为所要监听的端口,可配置多个Listen。
2、管理员邮箱
ServerAdmin you@example.com
设置管理员邮箱。
3、域名设置
ServerName www.example.com:80
servername为网站域名,也可直接写网站IP地址。
4、设置WEB主目录
DocumentRoot"/opt/apache2/htdocs"
/opt/apache2/htdocs为网站主目录,这里将其设为/opt/www
特别注意:
a、这里的路径要与httpd.conf下文
中的路径保持一致。
即
b、目录后面不要跟”/”
5、目录权限配置
目录权限配置格式:
…………
Options Indexes FollowSymLinks禁止目录浏览,去掉Indexes即可在没有主页(如index.html)的情况下浏览目录。
AllowOverride None是否允许读取.htaccess文件,设为ALL时,具有“.htaccess” 作用域的指令都允许出现在 .htaccess 文件中。
Order allow,deny设置浏览权限。deny的优先级大于allow。即后面的优先级大于前面。allow和deny的具体规则参照下面两条
allow from all
deny from 192.168.1.10
这三条语句合起来意思就是除了192.168.10以外的所以的请求都被允许。
6、主页配置
DirectoryIndex index.htmlindex.html.var
在DirectoryIndex后面加入首页名称,优先级从前到后。
三、APACHE日志切割
httpd.conf中错误日志和访问日志格式:
ErrorLog logs/error_log
CustomLog logs/access_log common
apache日志切割有两种方式cronolog和rotatelogs
1、rotatelogs
rotatelogs为apache自带日志工具,位于/opt/apache2/bin/rotatelogs
错误日志:
ErrorLog "|bin/cronolog/opt/logs/error_%Y%m%d.log 86400"
访问日志:
CustomLog "|bin/cronolog/opt/logs/access_%Y%m%d.log 86400" combined
2、cronolog
cronolog下载地址:http://cronolog.org/download/index.html
解压:
[root@localhost soft]# tar zxvfcronolog-1.6.2.tar.gz
配置:
[root@localhost cronolog-1.6.2]#./configure
安装:
[root@localhost cronolog-1.6.2]# make&& make install
错误日志:
ErrorLog "|/usr/local/sbin/cronolog/opt/logs/error_%Y%m%dlog 86400”
访问日志:
CustomLog "|/usr/local/sbin/cronolog/opt/logs/access_%Y%m%dlog 86400”
combined
注:a、common 通用日志模式combined组合日志模式
combined比common多记录两个信息。
b、86400为24小时,表示24小时日志回滚一次。
c、cronolog与rotatelogs的区别。当所设置的日志存放路径不存在时,cronolog会自动创建,而rotatelogs则不会,因此使用rotatelogs时应确保日志文件夹已经建立。
效果:
[root@localhost bin]# cd/opt/logs
[root@localhost logs]# ls
access_20110611log error_20110611log
四、APACHE虚拟主机
http.conf中虚拟主机模板:
#
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#
Server Admin:管理员Email
DocumentRoot:WEB路径
ServerName:访问域名或IP
ErrorLog:错误日志
CustomLog:访问日志
例:
ServerAdmin dezon@vip.qq.com
DocumentRoot /opt/www/web1
ServerName www.example.com.cn
ErrorLog "|bin/cronolog/opt/logs/w1error_%Y%m%d.log 86400"
CustomLog "|bin/cronolog/opt/logs/w1access_%Y%m%d.log 86400" combined
根据实际情况有时还需设置NameVirtualHost
五、APACHE安全加固
1、禁止TRACE漏洞
在各虚拟主机的配置文件里添加如下语句:
RewriteEngine on
RewriteCond %{REQUEST_METHOD}^(TRACE|TRACK)
RewriteRule .* –
或使用
SetEnvIfNoCase Request_Method^(TRACE|TRACK) IS_TRACE
Order Allow,Deny
Allow from all
Deny from env=IS_TRACE
2、禁止IP直接访问(仅使用域名访问)
首先建一空目录如/opt/www/aa,然后建以虚拟主机,将所有IP请求的访问都指向/opt/www/aa。如:
ServerName 192.168.0.101
RewriteEngine on
RewriteCond %{REQUEST_METHOD}^(TRACE|TRACK)
RewriteRule .* -
DocumentRoot/opt/aa