源码安装apache2.0,DSO(动态加载模块方式),也是通常安装方式:
$./configure --prefix=/usr/local/apache2s --with-layout=Apache --enable-modules-most --enable-mods-share=all
$make
$make install
*************************************************************
安装第三方模块:
/path/to/apache/bin/apxs -cia module.c
-c(compile)编译
-i(install)安装
-a(activate)启动
对于只有一个.c文件的模块,可以用这个命令安装,如果是有多个源码文件的模块,则需要其本身的安装说明
*************************************************************
安装mod_perl
$cd mod_perl_2.0.2/
$perl Makefile.PL USE_APXS=1 WITH_APXS=/usr/local/apache2s/bin/apxs EVERYTHING=1 PERL_USELARGEFILES=0
$make
$make install
然后:
将LoadModule perl_module modules/mod_perl.so这句话加入到httpd.conf文件中,重启apache
检查:
$/usr/local/apache2s/bin/apxs -q LIBEXECDIR 显示模块所在目录(例如:/usr/local/apache2/modules)
*************************************************************
安装php模块:
$cd php-4.4.4/
$./configure --with-apxs=/usr/local/apache2/bin/apxs (apache1.3)
或$./configure --with-apxs2=/usr/local/apache2/bin/apxs (apache2.X)
$make
$make install
修改配置文件,添加:
LoadModule php4_module modules/libphp4.so
和
AddType application/x-httpd-php .php .php3 .any_file_in_php
AddHandler application/x-httpd-php .php .php3 .any_file_in_php
这样这台服务器的php网页就可以正常访问了!
*************************************************************
日志格式中状态码内容,详见PaoloDocuments/apache/http协议规范文件RFC2616.txt
*************************************************************
指定日志记录格式,组合日志格式(combined)或通用日志格式(common),修改配置文件:
CustomLog logs/access_log combined 组合日志格式
CustomLog logs/access_log common 通用日志格式
*************************************************************
LogLevel 配置文件中的这个指令指定日志记录等级(但无论指定什么记录等级,日志都会记录notice等级的信息)
*************************************************************
通用日志格式与组合日志格式的"%h"控制符表示远程请求用户的身份,依据HostNameLookups指令的设定值,可能是主机名也可能是IP地址。如果想永远记录IP地址,则使用“%a”控制符
*************************************************************
记录从客户端收到的cookie
CustomLog logs/cookies_in.log "%{UNIQUE_ID}e %{Cookie}i"
CustomLog logs/cookies2_in.log "%{UNIQUE_ID}e %{Cookie2}i"
记录由服务器设定并传送给客户端的cookie值:
CustomLog logs/cookies_out.log "%{UNIQUE_ID}e %{Set-Cookie}o"
CustomLog logs/cookies2_out.log "%{UNIQUE_ID}e %{Set-Cookie2}o"
*************************************************************
不记录来自本机网页的图像请求:
SetEnvIfNoCase Referrer "^http://www.example.com/" local_referrer=1
Customlog logs/access_log combined env=!local_referrer
*************************************************************
按照日或小时来记录请求:
CustomLog "| /usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/access_log.%Y-%m-%d 86400" combined
其中:
rotatelogs的第一个参数是主日志文件名如果有%字符,则表示日志文件名中时间的格式,如果没有指定时间格式,则是以秒为单位,从1970.1.1日算起的秒数
第二个参数是产生新日志的间隔是多少秒。也可以是大小如果把上例中的86400换成5M,则表时日志达到5M时,就会产生一个新的日志,日志的名字是access_log.%Y-%m-%d格式的
参阅:man -M /usr/local/apache2/man rotatelogs.8
*************************************************************
logresolve 将日志中记录的IP地址解析为主机名
例如:
$logresolve -c < /usr/local/apache2/logs/access_log.raw > access_log.resolved
也可以让apache在处理过程中使用IP地址,然后在记录日志时,以管道方式的日志记录进程来解析,修改配置文件:
HostnameLookups off
CustomLog "|/usr/local/apache2/bin/logresolve -c >> /usr/local/apache2/logs/access_log.resolved" combined
*************************************************************
只有一个IP,但想在系统上支持多个网站:
NameVirtualHost *
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/docs/dummy-host.example.com
ServerName dummy-host.example.com
ServerAlias www.paolo.com ######p这条指令可对虚拟主机设定多个名称
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
其中:"*"表示所设定的主机可在所有的地址上运行。对于只有单一地址的机器,这表示会在该地址上运行,同时也会在loopback地址上运行。
如果NameVirtualHost 后面放置主机名称可能会在启动服务器时停用虚拟主机的机制。
虚拟主机会使用户无法再访问配置文件中的主服务器。如果想让主服务器成为默认服务器,则必须在虚拟主机区块中先将它列出。
对于每个虚拟主机名称,还需要在DNS中添加相关记录。
*************************************************************
$/usr/local/apache2/bin/httpd -S 显示虚拟主机的配置
*************************************************************
ErrorDocument 404 /err.html 这个指令可以让没有打到指定网页的时候,不显示404错误,而是err.html页面。错误号可以是其它的号码,如403、500等
例如:
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/docs/wangqi.paolo.com
ServerName wangqi.paolo.com
ErrorLog logs/wangqi.paolo.com-error_log
CustomLog logs/wangqi.paolo.com-access_log combined
ErrorDocument 404 /err.html
根据以上配置,访问wangqi.paolo.com/index.html时,如果/www/docs/wangqi.paolo.com目录下没有index.html文件时,则会显示/www/docs/wangqi.paolo.com目录下的err.html文件
*************************************************************
如果是有多个IP的情况下,想在每个地址上支持一个网站:
NameVirtualHost 127.0.0.1
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/docs/paolo.paolo.com
ServerName paolo.paolo.com
ErrorLog logs/paolo.paolo.com-error_log
CustomLog logs/paolo.paolo.com-access_log combined
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/docs/cissy.paolo.com
ServerName cissy.paolo.com
ErrorLog logs/cissy.paolo.com-error_log
CustomLog logs/cissy.paolo.com-access_log combined
以上配置根据所访问的IP地址不同,会访问不同的虚拟主机。如果服务器上还有其它的IP地址,但是没有在配置文件的虚拟主机区块列出来时,这时访问这个其它的IP地址,请求会被送至在配置文件主设定区的虚拟主机
*************************************************************
建立以IP寻址的默认虚拟主机,以配置文件中加入下面代码:
DocumentRoot /www/htdocs
ErrorDocument 404 /err.html
加入以上代码后,如果访问本地的IP,但是该IP确没有在配置文件中配置时,则会访问以上代码指定的页面

添加到雅虎收藏