LAMP简介

       Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.

------------------------------------------MySql软件包安装---------------------------------------------

一、Mysql软件包安装方式

       MySql官方网站为:www.mysql.com

       mysql的安装方式分四种:系统自带的rpm包,mysql官方rpm包,通用二进制格式包,源码编译安装。二、使用yum源安装

     [root@localhost ~]# yuminstall –y mysql
       添加mysql 组和mysql用户
     [root@localhost ~]# groupadd -r mysql       
       [root@localhost ~]# useradd -g mysql -r -s /sbin/nologin mysql
       数据库初始化
       #scripts/mysql_install_db  -- datadir=/file  --user=mysql

三、使用源码包安装

        1解压mysql-5.5.44-linux2.6-x86_64.tar.gz/usr/local/

    [root@localhost soft]# tar -zxvf mysql-5.5.44-linux2.6-x86_64.tar.gz -C /usr/local/

        2、创建符号链接(有助于软件版本升级)

    [root@localhost local]# ln -svmysql-5.5.44-linux2.6-x86_64/ mysql

        3、创建mydata目录修改属主,属组为mysql

    [root@localhost/]# cd /data/    
    [root@localhostdata]# ls
    lost+found
    [root@localhostdata]# mkdir mydata
    [root@localhostdata]# ls
    lost+found  mydata
    [root@localhostdata]# chown -R mysql.mysql mydata/

        4、初始化系统库

    [root@localhost mysql]# pwd    
    /usr/local/mysql
    [root@localhost mysql]# chown-R root.mysql *
    [root@localhost mysql]#scripts/mysql_install_db --datadir=/data/mydata/ --user=mysql
    [root@localhost mysql]# ls/data/mydata/
    mysql  performance_schema  test
    [root@localhost mysql]#

        5、制作mysql启动服务脚本

    [root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

        6、设置开机启动mysql

    [root@localhost mysql]# chkconfig --addmysqld    
    [root@localhost mysql]#chkconfig --list mysqld
    mysqld          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
    [root@localhost mysql]#

        7、制作mysql配置文件

    [root@localhost mysql]# cpsupport-files/my-large.cnf /etc/my.cnf
    [root@localhostmysql]# vim /etc/my.cnf
    [mysqld]
         ………省略
        datadir= /data/mydata   #添加数据库路径

        8、启动mysql服务

    [root@localhost mysql]#service mysqld start    
    StartingMySQL....................................         [确定]
    [root@localhost mysql]# ls/data/mydata/
    ibdata1      ib_logfile1    localhost.pid  mysql-bin.000001  performance_schema
    ib_logfile0  localhost.err mysql         mysql-bin.index   test
    [root@localhost mysql]#

        9、客户端使用mysql命令登录提示无法找到mysql,修改以下文件即

    [root@localhost mysql]# vim/etc/profile.d/modules.sh    
           exportPATH=/usr/local/mysql/bin:$PATH
    [root@localhost mysql]# ./etc/profile.d/modules.sh

        10、导出mysql的库文件和头文件

    [root@localhost mysql]# ln -sv/usr/local/mysql/include/ /usr/include/mysql    
    "/usr/include/mysql/include"-> "/usr/local/mysql/include/"
           [root@localhostmysql]# vim /etc/ld.so.conf.d/mysql.conf
           /usr/local/mysql/lib
           [root@localhostmysql]# ldconfig
    [root@localhost mysql]# ldconfig -p |grep mysql
  libtcmalloc_minimal.so.0 (libc6,x86-64) =>/usr/local/mysql/lib/libtcmalloc_minimal.so.0
        libmysqlclient_r.so.16 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient_r.so.16
        libmysqlclient_r.so (libc6,x86-64) =>/usr/lib64/mysql/libmysqlclient_r.so
        libmysqlclient.so.18 (libc6,x86-64) =>/usr/local/mysql/lib/libmysqlclient.so.18
        libmysqlclient.so.16 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so.16
        libmysqlclient.so (libc6,x86-64) =>/usr/local/mysql/lib/libmysqlclient.so
        libmysqlclient.so (libc6,x86-64) =>/usr/lib64/mysql/libmysqlclient.so
    [root@localhost mysql]#

--------------------------------------------安装Apache—Httpd----------------------------------------

一、使用RPM安装Apache-Httpd软件包

二、httpd软件包安装:yum -yinstall httpd  

三、源码安装httpd

        1、apr下载地址http://apr.apache.org/download.cgi

    2、解压并安装apr-1.5.2.tar.gz  apr-util-1.5.4.tar.gz   yum安装pcre-devel

        [root@localhost apr-1.5.2]# yuminstall -y pcre-devel     
        [root@localhostsoft]# tar -zxvf apr-1.5.2.tar.gz
        []# cd apr-1.5.2
         安装apr-1.5.2
        [root@localhostapr-1.5.2]# ./configure --prefix=/usr/local/apr
        [root@localhostapr-1.5.2]# make && make install
        [root@localhostsoft]# tar -zxvf apr-util-1.5.4.tar.gz
        [root@localhostapr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr/
        [root@localhost apr-util-1.5.4]# make&& make install

    3、安装httpd-2.4.9

        [root@localhost soft]# tar –zxvf httpd-2.4.9.tar.gz    
        [root@localhosthttpd-2.4.9]# cd httpd-2.4.9
        [root@localhosthttpd-2.4.9]#./configure--prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl--enable-cgi --with-zlib --with-pcre=/usr/local/pcre/ --enable-rewrite--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/--enable-modules=most --enable-mpms-shared=all --with-mpm=event
        [root@localhosthttpd-2.4.9]# make && make install

        4、提供SysV启动服务脚本cp  http服务启动脚本到/etc/rc.d/init.d/httpd24

        [root@localhost httpd-2.4.9]# cp/etc/rc.d/init.d/httpd  /etc/rc.d/init.d/httpd24
      修改httpd服务启动脚本  
        [root@localhosthttpd-2.4.9]# vim /etc/ rc.d/init.d/httpd24 #修改为实际路径
        apachectl=/usr/local/apache/bin/apachectl
        httpd=${HTTPD-/usr/local/apache/bin/httpd}

        5、创建PATH环境

        [root@localhost httpd-2.4.9]# cat/etc/profile.d/httpd.sh
        export PATH=/usr/local/apache/bin:$PATH
        [root@localhosthttpd-2.4.9]# ./etc/profile.d/httpd.sh
        [root@localhosthttpd-2.4.9]#

        6、修改httpd主配置文件,设置其Pid文件的路径

        [root@localhost httpd-2.4.9]# vim/etc/httpd24/httpd.conf
        PidFile  "/var/run/httpd.pid"  #添加此行即可

        7、启动httpd服务

        [root@localhost httpd-2.4.9]# service httpd24start
        正在启动 httpd:httpd: Could not reliably determine the server's fully qualified domainname, using localhost.localdomain for ServerName
                                                          [确定]

        8、可以查看是否开启httpd80端口

        [root@localhost httpd-2.4.9]# ss –tnl

四、虚拟主机配置

    [root@localhost conf]# vim/etc/httpd/conf/httpd.conf
        ### Section 2: 'Main' server configuration
        #DocumentRoot "/var/www/html"        注释掉
        ### Section 3: Virtual Hosts              添加以下部分
        NameVirtualHost *:80
        <VirtualHost *:80>
           ServerAdmin     admin@a.com
           DocumentRoot    "/var/www/html"
           ServerName      www.a.com
        </VirtualHost>

        <VirtualHost *:80>
           ServerAdmin     admin@b.com
           DocumentRoot     "/var/www/wordpress"
           ServerName      www.b.com
        </VirtualHost>


-------------------------------------------------PHP软件包安装----------------------------------------

一、源码编译安装php-5.6.13

         1、请配置好yum源(系统安装源及epel源)后安装动态库执行如下命令

        # yum -y groupinstall "DesktopPlatform Development" 
        #yum -y install bzip2-devel libmcrypt libmcrypt-devel

        2、首先下载源码包至本地目录

                   官方下载地址为http://php.net/downloads.php

         3、解压php-5.6.13.tar.gzcdphp-5.6.13

        [root@localhost soft]# tar -zxvf php-5.6.13
        [root@localhostsoft]# cd php-5.6.13

         4、编译php-5.6

        [root@localhost php-5.6.13]# ./configure--prefix=/usr/local/php56 --with-mysql=/usr/local/mysql-5.5.44-linux2.6-x86_64/--with-openssl--with-mysqli=/usr/local/mysql-5.5.44-linux2.6-x86_64/bin/mysql_config --enable-mbstring--with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib--with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs--with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d--with-bz2  --enable-maintainer-zts

说明:

1、这里为了支持apacheworkerevent这两个MPM,编译时使用了--enable-maintainer-zts选项。

2、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQLMySQL开发包了。mysqlndphp 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。

# ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd

         5、编译安装php-5.6

        [root@localhost php-5.6.13]# make && make install

        6、为php提供配置文件

        [root@localhost php-5.6.13]# cd/root/soft/php-5.6.13
        [root@localhost php-5.6.13]# cpphp.ini-development /etc/php.ini


        7、编辑apache配置文件httpd.conf,以apache能识别php格式的页面,并支持php格式的主页

          <1、添加如下二行
                  AddType application/x-httpd-php  .php
                  AddType application/x-httpd-php-source  .phps
 
           <2、定位至DirectoryIndex index.html 
                  修改为:
                        DirectoryIndex  index.php index.html            
       如:
            [root@localhost php-5.6.13]# vim /etc/httpd24/httpd.conf
                ##在<IfModule mime_module>中添加
                AddTypeapplication/x-httpd-php .php
            AddType application/x-httpd-php-source .phps
                <IfModuledir_module>
             DirectoryIndexindex.php index.html
                </IfModule>

9、使用service httpd24 restart命令重新启动httpd,使其重新载入配置文件,使用浏览器测试php是否已经可以正常使用。wKiom1YY00iQBX9SAAKDQVx3Nc4390.jpg

---------------------------------------- 实验一---------------------------------------------------

一、搭建Disczl论坛

        经过上面的安装配置基本上完成了搭建环境。

           1.下载Dz论坛源码程序www.discuz.net/

        2.解压[root@localhost sort]# unzip Discuz_X3.2_SC_UTF8.zip

        3.copy upload目录下的文件到/var/www/html目录 # cp -r * /var/www/html/

     4.mysql下创建dzbbs数据库wKioL1YY1LGhS-oEAADVJv06JZc488.jpg

     5.在浏览器中输入本机IP地址http://192.168.1.199/install/进行Dz安装,如下

     6.检查安装环境和文件权限,在安装过程中,其中某些文件没有读写权限,请按提示修改文件权限wKiom1YY1UPTOBn1AAInreLRf6Q105.jpg


   7.配置安装数据库及管理员帐号密码wKiom1YY1lPgfaVjAAM3aMOWRfA746.jpg

    8.安装完数据库dz论坛系统就已经安装完成,完成后直接登录即可wKioL1YY1wbjkKiWAAJ-SBfkChU693.jpg

    9.论坛安装完成wKiom1YY1zijIE0zAAE7FN4hu1Y270.jpg

    10.查看数据库是否成功创建

wKioL1YY17mxi5obAALgtrdrBgU495.jpg

------------------------------------------实验二安装wordPress博客系统-------------------------------------------

1、下载wordPress源码程序

2、解压并copy/var/www/wordpress目录下

[root@localhost sort]# unzip wordpress-4.3.1-zh_CN.zip
[root@localhost wordpress]# cp -r* /var/www/wordpress

3、复制/var/www/wordpress/wp-config-sample.php并改名为wp-config.php

[root@localhost wordpress]# cpwp-config-sample.php wp-config.php

4、创建数据库wordpress

5、修改/var/www/wordpress/wp-config.php

    // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //

    /** WordPress数据库的名称 */

    define('DB_NAME', 'wordpress');

    /** MySQL数据库用户名 */

    define('DB_USER', 'root');

    /** MySQL数据库密码 */

    define('DB_PASSWORD', 'zhang');

    /** MySQL主机 */

    define('DB_HOST', 'localhost');

    /** 创建数据表时默认的文字编码 */

    define('DB_CHARSET', 'utf8');

    /** 数据库整理类型。如不确定请勿更改 */

    define('DB_COLLATE', '');

6、使用浏览器打开www.b.com进行安装wKioL1YY2hyD9jaMAAHZr8sw708146.jpg

7、安装成功,可进行登录wKiom1YY2mGS3C7nAAJWwEdD768929.jpg

8、查看数据库是否创建成功wKioL1YY2tuCFjatAAInqkwkULk413.jpg

-------------------------------------------LAMP-PHP—扩展------------------------------------------

1apache性能测试工具ab使用详解

       性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege。今天我们专门来介绍ab。

ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

一、ab参数说明

有关ab命令的使用,我们可以通过帮助命令进行查看。如下:

ab --help

下面我们对这些参数,进行相关说明。如下:

-n在测试会话中所执行的请求个数。默认时,仅执行一个请求。

-c一次产生的请求个数。默认是一次一个。

-t测试所进行的最大秒数。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。

-p包含了需要POST的数据的文件。

-P对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。

-T POST数据所使用的Content-type头信息。

-v设置显示信息的详细程度-4或更大值会显示头信息,3或更大值可以显示响应代码(404,200等),2或更大值可以显示警告和其他信息。

-V显示版本号并退出。

-w以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。

-i执行HEAD请求,而不是GET。

-x设置<table>属性的字符串。

-X对请求使用代理服务器。

-y设置<tr>属性的字符串。

-z设置<td>属性的字符串。

-C对请求附加一个Cookie:行。其典型形式是name=value的一个参数对,此参数可以重复。

-H对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如,"Accept-Encoding:zip/zop;8bit")。

-A对服务器提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即,是否发送了401认证需求代码),此字符串都会被发送。

-h显示使用方法。

-d不显示"percentage served within XX[ms] table"的消息(为以前的版本提供支持)。

-e产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比'gnuplot'格式更有用。

-g把所有测试结果写入一个'gnuplot'或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行为标题。

-i执行HEAD请求,而不是GET。

-k启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。默认时,不启用KeepAlive功能。

-q如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数。此-q标记可以抑制这些信息。

二、ab性能指标

在进行性能测试过程中有几个指标比较重要:

1、吞吐率(Requests per second)

服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。

记住:吞吐率是基于并发用户数的。这句话代表了两个含义:

a、吞吐率和并发用户数相关

b、不同的并发用户数下,吞吐率一般是不同的

计算公式:总请求数/处理完成这些请求数所花费的时间,即

Request persecond=Complete requests/Time taken for tests

必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。

2、并发连接数(The number of concurrentconnections)

并发连接数指的是某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

3、并发用户数(Concurrency Level)

要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。在HTTP/1.1下,IE7支持两个并发连接,IE8支持6个并发连接,FireFox3支持4个并发连接,所以相应的,我们的并发用户数就得除以这个基数。

4、用户平均请求等待时间(Time per request)

计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数),即:

Time perrequest=Time taken for tests/(Complete requests/Concurrency Level)

5、服务器平均请求等待时间(Time per request:acrossall concurrent requests)

计算公式:处理完成所有请求数所花费的时间/总请求数,即:

Time takenfor/testsComplete requests

可以看到,它是吞吐率的倒数。

同时,它也等于用户平均请求等待时间/并发用户数,即

Time perrequest/Concurrency Level

三、ab实际使用

ab的命令参数比较多,我们经常使用的是-c和-n参数。

ab -c 10 -n 100http://a.com/index.php

-c10表示并发用户数为10

-n100表示请求总数为100

http://a.com/index.php表示请求的目标URL

这行表示同时处理100个请求并运行10次index.php文件。

除此之外还有其他一些信息,需要说明下,如下:

Server Software表示被测试的Web服务器软件名称。

Server Hostname表示请求的URL主机名。

Server Port表示被测试的Web服务器软件的监听端口。

Document Path表示请求的URL中的根绝对路径,通过该文件的后缀名,我们一般可以了解该请求的类型。

Document Length表示HTTP响应数据的正文长度。

Concurrency Level表示并发用户数,这是我们设置的参数之一。

Time taken fortests表示所有这些请求被处理完成所花费的总时间。

Complete requests表示总请求数量,这是我们设置的参数之一。

Failed requests表示失败的请求数量,这里的失败是指请求在连接服务器、发送数据等环节发生异常,以及无响应后超时的情况。如果接收到的HTTP响应数据的头信息中含有2XX以外的状态码,则会在测试结果中显示另一个名为“Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算在失败的请求中。

Total transferred表示所有请求的响应数据长度总和,包括每个HTTP响应数据的头信息和正文数据的长度。注意这里不包括HTTP请求数据的长度,仅仅为web服务器流向用户PC的应用层数据总长度。

HTML transferred表示所有请求的响应数据中正文数据的总和,也就是减去了Totaltransferred中HTTP响应数据中的头信息的长度。

Requests persecond吞吐率,计算公式:Complete requests/Time taken for tests

Time per request用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)。

Time perrequet(across all concurrent request)服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level。

Transfer rate表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Totaltrnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。

Percentage ofrequests served within a certain time(ms)这部分数据用于描述每个请求处理时间的分布情况,比如以上测试,80%的请求处理时间都不超过6ms,这个处理时间是指前面的Time per request,即对于单个用户而言,平均每个请求的处理时间。

 

2、使用Xcache,为php加速

          1Xcache简介

                    XCache 是一个又快又稳定的 PHP opcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过( linux )测试并支持所有现行 PHP 分支的最新发布版本, PHP_4_3 PHP_4_4 PHP_5_0 PHP_5_1 PHP_5_2 HEAD(6.x), 并支持线程安全/Windows. 与同类 opcode 缓存器相比更胜一筹, 比如能够快速跟进 PHP 版本.

XCache 工程由 mOo 领队, 他也是 Lighttpd 的开发成员之一. Lighttpd 是最快的 Web 服务器应用程序之一, 并且超越 Apache 以及许多其他 Web 服务器. XCache 努力达到类似的效果.

2、下载安装使用Xcache

      Xcache官方下载地址为http://xcache.lighttpd.net/

3、解压并cdXcache目录下

[root@localhostsoft]# tar -zxvf xcache-3.2.0.tar.gz

[root@localhostsoft]# cd xcache-3.2.0

4、使用phpize进行编译php扩展

[root@localhostsoft]# /usr/local/php56/bin/phpize

5、编译xcache扩展模块

[root@localhostxcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php56/bin/php-config

6、安装xcache

[root@localhostxcache-3.2.0]# make && make install

安装结束时会提示类似如下行:

Installing shared extensions:    /usr/local/php56/lib/php/extensions/no-debug-zts-20131226/

7、编辑php.ini,整合phpxcache

<1、首先将xcache提供的样例配置导入php.ini

# mkdir/etc/php.d

# cp xcache.ini/etc/php.d 

说明:xcache.ini文件在xcache的源码目录中。 

<2、接下来编辑/etc/php.d/xcache.ini,找到extension开头的行,确保在以下路径下找到xcache.so修改为如下行:

extension =/usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so 

注意:如果php.ini文件中有多条extension指令行,要确保此新增的行排在第一位。

8、重启httpd服务并查看是否安装成功xcache扩展 

   [root@localhost xcache-3.2.0]# servicehttpd24 restart

   [root@localhostxcache-3.2.0]#wKiom1YY3NmTZJvTAAJ7Npn2hTk134.jpg

出来这个说明已经安装成功了。

9、使用ab进行压力测试

[root@localhostxcache-3.2.0]# ab -c 100 -n 1000 http://192.168.1.199/index.php


3、开启Apache服务器状态模块 mod_status

一、概述

本模块允许服务器管理员方便的检查服务器当前的运行状况。该模块用一种容易阅读的表格报告服务器的当前运行状态并以HTML页面的方式呈现出来。如果你愿意,还可以让这个页面不停的自动刷新(仅在支持自动刷新的浏览器上有效)。另外还可以提供一个简单的供机器阅读的服务器当前状态表。

输出的详细信息如下:

  • 正在伺服请求的工作者(线程或进程)数量

  • 空闲的工作者数量

  • 每个工作者的状态:已完成的请求数、已发送的字节数。(*)

  • 总访问数和已发送的字节总数(*)

  • 服务器自启动/重启以来经过的时间,服务器已经运行的时间。

  • 平均每秒请求数,平均每秒发送的字节数,平均每个请求发送的字节数。(*)

  • 每个工作者的当前CPU使用百分率,以及Apache的当前总计CPU使用百分率。(*)

  • 当前正在被处理的主机和请求(*)

    必须使用相应编译时选项才能显示被标记为"(*)"的信息,因为这些信息默认并不存在于Apache中。

mod_status模块可以让管理员查看服务器的执行状态,它通过一个HTML页面展示了当前服务器的统计数据。这些数据通常包括但不限于:

(1) 处于工作状态的worker进程数;

(2) 空闲状态的worker进程数;

(3) 每个worker的状态,包括此worker已经响应的请求数,及由此worker发送的内容的字节数;

(4) 当前服务器总共发送的字节数;

(5) 服务器自上次启动或重启以来至当前的时长;

(6) 平均每秒钟响应的请求数、平均每秒钟发送的字节数、平均每个请求所请求内容的字节数;

 

二、启用mod_status

   启用状态页面的方法很简单,只需要在httpd主配置文件中添加如下内容即可:

<Location /server-status>

   SetHandler server-status

   Require all granted

                Allowfrom .a.com

</Location>

这样就可以通过http://your.server.name/server-status页面来访问服务器状态报告页面。

Deny from表示禁止的访问地址;
Allow from
表示允许的地址访问;
ExtendedStatus On
表示的是待会访问的时候能看到详细的请求信息

Allowfrom为了仅允许来自foo.com域名的用户访问状态报告页面

三、自动刷新

在支持自动刷新的浏览器上使用http://your.server.name/server-status?refresh=N访问状态页面可以每N秒自动刷新一次。

需要提醒的是,这里的状态信息不应该被所有人随意访问,因此,应该限制仅允许某些特定地址的客户端查看。比如使用Require ip 172.16.0.0/16来限制仅允许指定网段的主机查看此页面。

4、配置apache-2.4.9fpm方式的php-5.6.13

      一、编译安装php-5.6.13

               首先下载源码包至本地目录

             [root@localhostsoft]# tar -zxvf php-5.6.13.tar.gz

             [root@localhostsoft]# cd php-5.6.13

             [root@localhostlocal]# ./configure --prefix=/usr/local/php56

--with-mysql=/usr/local/mysql-5.5.44-linux2.6-x86_64/--with-openssl--with-mysqli=/usr/local/mysql-5.5.44-linux2.6-x86_64/bin/mysql_config--enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir--with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d --with-bz2

二、为php提供配置文件:

             [root@localhostphp-5.6.13]# cp php.ini-production /etc/php.ini

三、配置php-fpm

             <1、为php-fpm提供SysV init启动脚本,并将其添加至服务列表:

             [root@localhostphp-5.6.13]# cp  sapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm

             [root@localhostphp-5.6.13]# chmod +x /etc/rc.d/init.d/php-fpm

             [root@localhostphp-5.6.13]# chkconfig --add php-fpm

             [root@localhostphp-5.6.13]#

四、为php-fpm提供配置文件:

          [root@localhostetc]# cp /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf

          [root@localhostetc]# pwd

             /usr/local/php56/etc

五、配置fpm的进程池相关选项为你所需要的值,并启用pid文件

             [root@localhostetc]# vim php-fpm.conf

             [global]

             pid= /usr/local/php56/var/run/ php-fpm.pid

             pm.max_children= 50

             pm.start_servers= 5

             pm.min_spare_servers= 2

             pm.max_spare_servers= 8

六、启动php-fpm服务:

             [root@localhostetc]# service php-fpm start

 

 

七、配置httpd-2.4.9

             编辑httpd24主配置文件,加载模块和对php的支持

             [root@localhosthttpd24]# vim httpd.conf

             #----------------启用httpd相关的模块----------------#

             LoadModuleproxy_module modules/mod_proxy.so

             LoadModuleproxy_fcgi_module modules/mod_proxy_fcgi.so

             #-----------------添加对php的支持------------------------#

             AddTypeapplication/x-httpd-php .php

             AddTypeapplication/x-httpd-php-source .phps

             #-----------------配置虚拟主机支持使用fcgi------------------------#

<VirtualHost *:80>

        ServerAdmin     admin@a.com

        DocumentRoot     "/usr/local/apache/htdocs/a.com"

        ServerName      www.a.com

        ProxyRequests Off

        ProxyPassMatch ^/(.*\.php)$fcgi://127.0.0.1:9000//usr/local/apache/htdo

cs/a.com/$1

</VirtualHost>

<VirtualHost *:80>

        ServerAdmin     admin@b.com

        DocumentRoot     "/usr/local/apache/htdocs/b.com"

        ServerName      www.b.com

        ProxyRequests Off

       ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000//usr/local/apache/htdo

cs/b.com/$1

</VirtualHost>

ProxyRequests Off:关闭正向代理

ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。

八、可使用ab进行测试

 [root@localhostxcache-3.2.0]# ab -c 100 -n 1000 http://www.a.com/index.php


                                                                        如以上有错误的地方请留言指正,会及时修改!

            谢谢!