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 �Cy 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 [[email protected]]# ./configure --prefix=/usr/local/apr [[email protected]]# make && make install [root@localhostsoft]# tar -zxvf apr-util-1.5.4.tar.gz [[email protected]]# ./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 �Czxvf httpd-2.4.9.tar.gz [[email protected]]# cd httpd-2.4.9 [[email protected]]#./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 [[email protected]]# 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服务启动脚本 [[email protected]]# 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 [[email protected]]# ./etc/profile.d/httpd.sh [[email protected]]#
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、可以查看是否开启httpd的80端口
[root@localhost httpd-2.4.9]# ss �Ctnl
四、虚拟主机配置
[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 [email protected] DocumentRoot "/var/www/html" ServerName www.a.com </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] 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.gz并cd到php-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、这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。
2、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 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是否已经可以正常使用。
---------------------------------------- 实验一---------------------------------------------------
一、搭建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数据库
5.在浏览器中输入本机IP地址http://192.168.1.199/install/进行Dz安装,如下
6.检查安装环境和文件权限,在安装过程中,其中某些文件没有读写权限,请按提示修改文件权限
7.配置安装数据库及管理员帐号密码
8.安装完数据库dz论坛系统就已经安装完成,完成后直接登录即可
9.论坛安装完成
10.查看数据库是否成功创建
------------------------------------------实验二安装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进行安装
7、安装成功,可进行登录
8、查看数据库是否创建成功
-------------------------------------------LAMP-PHP―扩展------------------------------------------
1、apache性能测试工具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加速
1、Xcache简介
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、解压并cd到Xcache目录下
[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扩展模块
[[email protected]]# ./configure --enable-xcache --with-php-config=/usr/local/php56/bin/php-config
6、安装xcache
[[email protected]]# make && make install
安装结束时会提示类似如下行:
Installing shared extensions: /usr/local/php56/lib/php/extensions/no-debug-zts-20131226/
7、编辑php.ini,整合php和xcache:
<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
出来这个说明已经安装成功了。
9、使用ab进行压力测试
[[email protected]]# 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.9与fpm方式的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提供配置文件:
[[email protected]]# cp php.ini-production /etc/php.ini
三、配置php-fpm
<1、为php-fpm提供SysV init启动脚本,并将其添加至服务列表:
[[email protected]]# cp sapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm
[[email protected]]# chmod +x /etc/rc.d/init.d/php-fpm
[[email protected]]# chkconfig --add php-fpm
四、为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 [email protected]
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 [email protected]
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进行测试
[[email protected]]# ab -c 100 -n 1000 http://www.a.com/index.php
如以上有错误的地方请留言指正,会及时修改!
谢谢!