1LAMP概述

L-linuxA-apacheM-mysqP-PHP/perl/python

PHPHypertext Preprocessor)超级文本预处理语言

2Apache安装

A Patchy Server,著名的开源Web服务软件,最新的名称为 Apache HTTP Server

RPM包安装:系统盘自带httpd-2.2.3-11.el5_1.3.i386.rpm

源代码安装:httpd-2.2.9.tar.gz

./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so –enable-suexec --with-suexec-caller=1000

各目录介绍:

服务目录:/usr/local/apache2/

主配置文件:/usr/local/apache2/conf/httpd.conf 网页目录:/usr/local/apache2/htdocs/

服务脚本:/usr/local/apache2/bin/apachectl 执行程序:/usr/local/apache2/bin/httpd

访问日志: /usr/local/apache2/logs/access_log 错误日志: /usr/local/apache2/logs/error_log

/usr/local/apache2/conf/httpd.conf常用全局配置参数:

ServerRoot:服务目录

ServerAdmin:管理员邮箱

User:运行服务的用户身份

Group:运行服务的组身份

ServerName:网站服务器的域名

DocumentRoot:网页文档的根目录

Listen:监听的IP地址、端口号

PidFile:保存httpd进程PID号的文件

DirectoryIndex:默认的索引页文件

ErrorLog:错误日志文件的位置

CustomLog:访问日志文件的位置

LogLevel:记录日志的级别

warn Timeout:网络连接超时,默认为300

KeepAlive:是否保持连接,可选OnOff

MaxKeepAliveRequests:每次连接最多请求文件数

KeepAliveTimeout:保持连接状态时的超时时间

Include:需要包含进来的其他配置文件

3、基本配置

1)修改默认的访问控制选项

[root@s1 ~]#vi /usr/local/apache2/conf/httpd.conf

将默认设置改为如下

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    allow from all                                            -----打开/根目录的访问权限,也可指定打开其他目录权限

启动服务进行测试

[root@s1 ~]# /usr/local/apache2/bin/apachectl start  -----启动apache服务

[root@s1 ~]#netstat –ntpl |grep 80   -----测试服务器是否开启80侦听端口

2AB压力测试

[root@s1 ~]#ulimit –a |grep “open files” ------ 查看默认的链接数

[root@s1 ~]#ulimit –n 100000    ------将连接数修改为100000

[root@s1 ~]#cd  /usr/local/apache2/bin/

[root@s1 ~]#./ab  -q  -c 2000 –n 4000http://www.benet.com/

4、用户个人主页

[root@s1 ~]#vi /usr/local/apache2/conf/httpd.conf

添加如下行

UserDir public_html    -------定义用户主页目录

[root@s1 ~]#/usr/local/apache2/bin/apachectl  restart-----------重启apache服务

[root@s1 ~]#useradd jack

[root@s1 ~]#passwd jack

[root@s1 ~]#useradd mike

[root@s1 ~]#passwd mike   ----------------创建2个用户

[root@s1 ~]#mkdir /home/jack/public_html

[root@s1 ~]#mkdir /home/mike/public_html

[root@s1 ~]#echo ‘welcome to Jack home Page’  >  /home/jack/public_html/index.html

[root@s1 ~]#echo ‘welcome to Mike home Page’  >  /home/mike/public_html/index.html

[root@s1 ~]#chmod  –R o+x  /home/jack

[root@s1 ~]#chmod  –R o+x  /home/mike----------------设置权限

5、虚拟主机

虚拟主机类型:基于IP地址的虚拟主机、基于端口的虚拟主机、基于域名的虚拟主机

[root@s1 ~]#mkdir –p /web/ibm

[root@s1 ~]#mkdir –p /web/sun

[root@s1 ~]#echo ‘welcome to IBM’ > /web/ibm/index.html

[root@s1 ~]#echo ‘welcome to ACCP’ > /web/sun/index.html

1)基于IP地址的虚拟主机(服务器需要2IP地址)

    documentroot /web/ibm/

    ServerName www.ibm.com

   documentroot /web/sun/

   ServerName www.sun.com

2)基于端口的虚拟主机(假设服务器在80端口和8000端口进行侦听)

Listen 192.168.1.1:80

Listen 192.168.1.1:8000

    DocumentRoot /web/ibm/

    ServerName www.ibm.com

    DocumentRoot /web/sun/

    ServerName www.sun.com

3基于域名的虚拟主机

namevirtualhost 192.168.1.1

        documentroot  /usr/local/apache2/htdocs

        servername   www.benet.com

        errorlog        logs/error.log          -------此处修改了网站日志的默认名称

        CustomLog  logs/access.log common

        documentroot /web/ibm/

        servername www.ibm.com

        errorlog        logs/error.log

        CustomLog  logs/access.log common

        documentroot /web/sun/

        servername www.sun.com

        errorlog        logs/error.log

        CustomLog  logs/access.log  common

6awstats(advanced web statistics)网站日志分析工具

[root@s1 ~]#tar -zxvf  awstats-6.9.tar.gz   -C /usr/local/

[root@s1 ~]#cd  /usr/local/

[root@s1 local]#mv  awstats-6.9  awstats

[root@s1 local]#cd  awstats/ tools/

[root@s1 tools]#./awstats_configure.pl ----------进行初始化安装,根据提示进行配置

[root@s1 tools]#vi /etc/awstats/awstats.www.benet.com.conf-----编辑配置文件,修改日志文件路径

LogFile="/usr/local/apache2/logs/access.log"

[root@s1 tools]#mkdir /var/lib/awstats----------建立必要的数据库存放目录

[root@s1 tools]#perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.benet.com                ----更新日志分析数据库

[root@mail tools]# crontab –e     -----------设置cron计划任务定时运行日志分析程序

*/5     *       *       *       *       perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.benet.com

[root@mail tools]# service crond start

[root@mail tools]# chkconfig --level 35 crond on

客户端测试:http://www.benet.com/awstats/awstats.pl?config=www.benet.com

上述URL过长,不便访问时,可以参照如下建立跳转页面,输入http://www.benet.con/test.html即可跳转至访问页面,具体操作如下:

vi /usr/local/apache2/htdocs/test.html

注:日志格式除了可以使用Common通用日志格式外,还可以使用combined组合日志格式,这种格式可记录的信息比common更多

7、访问控制

1)基于用户的访问控制

2)基于客户端地址的访问控制

    Order allow,deny

    deny from 192.168.1.200

    allow from 192.168.1.0/24