LAMP简介php
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组经常使用来搭建动态网站或者服务器的开源软件,自己都是各自独立的程序,可是由于常被放在一块儿使用,拥有了愈来愈高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件造成三足鼎立之势,而且该软件开发的项目在软件方面的投资成本较低,所以受到整个IT界的关注。从网站的流量上来讲,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.html
------------------------------------------MySql软件包安装---------------------------------------------mysql
1、Mysql软件包安装方式linux
MySql官方网站为:www.mysql.comnginx
mysql的安装方式分四种:系统自带的rpm包,mysql官方rpm包,通用二进制格式包,源码编译安装。2、使用yum源安装web
[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
3、使用源码包安装sql
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、建立符号连接(有助于软件版本升级)apache
[root@localhost local]# ln -svmysql-5.5.44-linux2.6-x86_64/ mysql
3、建立mydata目录修改属主,属组为mysqlvim
[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----------------------------------------
1、使用RPM安装Apache-Httpd软件包
2、httpd软件包安装:yum -yinstall httpd
3、源码安装httpd
一、apr下载地址http://apr.apache.org/download.cgi
二、解压并安装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、能够查看是否开启httpd的80端口
[root@localhost httpd-2.4.9]# ss –tnl
4、虚拟主机配置
[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软件包安装----------------------------------------
1、源码编译安装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格式的主页
<一、添加以下二行 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps <二、定位至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是否已经能够正常使用。
---------------------------------------- 实验一---------------------------------------------------
1、搭建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/
5.在浏览器中输入本机IP地址http://192.168.1.199/install/进行Dz安装,以下
6.检查安装环境和文件权限,在安装过程当中,其中某些文件没有读写权限,请按提示修改文件权限
8.安装完数据库dz论坛系统就已经安装完成,完成后直接登陆便可
10.查看数据库是否成功建立
------------------------------------------实验二安装wordPress博客系统-------------------------------------------
一、下载wordPress源码程序
二、解压并copy到/var/www/wordpress目录下
[root@localhost sort]# unzip wordpress-4.3.1-zh_CN.zip [root@localhost wordpress]# cp -r* /var/www/wordpress
三、复制/var/www/wordpress/wp-config-sample.php并更名为wp-config.php
[root@localhost wordpress]# cpwp-config-sample.php wp-config.php
四、建立数据库wordpress
五、修改/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', '');
六、使用浏览器打开www.b.com进行安装
-------------------------------------------LAMP-PHP—扩展------------------------------------------
1、apache性能测试工具ab使用详解
性能测试工具目前最多见的有如下几种:ab、http_load、webbench、siege。今天咱们专门来介绍ab。
ab是apache自带的压力测试工具。ab很是实用,它不只能够对apache服务器进行网站访问压力测试,也能够对或其它类型的服务器进行压力测试。好比nginx、tomcat、IIS等。
1、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标记能够抑制这些信息。
2、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
3、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扩展模块
[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,整合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
出来这个说明已经安装成功了。
九、使用ab进行压力测试
[root@localhostxcache-3.2.0]# ab -c 100 -n 1000 http://192.168.1.199/index.php
3、开启Apache服务器状态模块 mod_status
1、概述
本模块容许服务器管理员方便的检查服务器当前的运行情况。该模块用一种容易阅读的表格报告服务器的当前运行状态并以HTML页面的方式呈现出来。若是你愿意,还可让这个页面不停的自动刷新(仅在支持自动刷新的浏览器上有效)。另外还能够提供一个简单的供机器阅读的服务器当前状态表。
输出的详细信息以下:
正在伺服请求的工做者(线程或进程)数量
空闲的工做者数量
每一个工做者的状态:已完成的请求数、已发送的字节数。(*)
总访问数和已发送的字节总数(*)
服务器自启动/重启以来通过的时间,服务器已经运行的时间。
平均每秒请求数,平均每秒发送的字节数,平均每一个请求发送的字节数。(*)
每一个工做者的当前CPU使用百分率,以及Apache的当前总计CPU使用百分率。(*)
当前正在被处理的主机和请求(*)
必须使用相应编译时选项才能显示被标记为"(*)"的信息,由于这些信息默认并不存在于Apache中。
mod_status模块可让管理员查看服务器的执行状态,它经过一个HTML页面展现了当前服务器的统计数据。这些数据一般包括但不限于:
(1) 处于工做状态的worker进程数;
(2) 空闲状态的worker进程数;
(3) 每一个worker的状态,包括此worker已经响应的请求数,及由此worker发送的内容的字节数;
(4) 当前服务器总共发送的字节数;
(5) 服务器自上次启动或重启以来至当前的时长;
(6) 平均每秒钟响应的请求数、平均每秒钟发送的字节数、平均每一个请求所请求内容的字节数;
2、启用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
1、编译安装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
2、为php提供配置文件:
[root@localhostphp-5.6.13]# cp php.ini-production /etc/php.ini
3、配置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]#
4、为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
5、配置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
6、启动php-fpm服务:
[root@localhostetc]# service php-fpm start
7、配置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进行了封装,不须要手动指定。
8、可以使用ab进行测试
[root@localhostxcache-3.2.0]# ab -c 100 -n 1000 http://www.a.com/index.php
如以上有错误的地方请留言指正,会及时修改!
谢谢!