CentOS基于FastCGI实现Xcache实现PHP的加速
时间:2014-05-20 12:23 来源:linux.it.net.cn 作者:IT网
LAMP的理解:
LAMP:是Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.
第一部分: 编译安装过程的顺序: httpd 2.4.9 + mysql-5.5.33 + php-5.4.26:
一、安装mysql-5.5.33:
前提:
准备好开发包以及依赖包并且安装好.
1.准备数据存放的文件系统:
新建一个逻辑卷,并将其挂载至特定目录即可。
这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。
1).创建分及/data目录:
2).创建LVM(方便以后开机不足时扩展.)
3).格式化文件系统且配置为开机自动挂载:
4).创建mydata目录,且修改目录的属主属组:
2.新建用户以安全方式运行进程:
3.安装并初始化mysql-5.5.33:
1).解压安装包且创建软链接(方便以后升级):
2).初始化系统库:
2.为mysql提供sysv服务脚本:
3.添加至服务列表:
4.提供配置文件(我的是双核的,所以改为4):
5.启动mysqld服务:
6.查看套接字文件:
注意rpm包安装时路径为:/var/lib/mysql.
7.如何连接mysql呢??
1).修改PATH环境变量,让系统可以直接使用mysql的相关命令:
2).连接到mysql上查看版本:
3).删除匿名用户:
-->如果不确定,就先查看下:
4).修改密码:
Ⅰ.一次修改一个密码:
Ⅱ.修改全部用户的密码:
Ⅲ.测试登陆:
Ⅳ.在家目录下创建隐藏文件.my.cnf,(不用手动输入密码,在连接mysql时自动连接.):
8.导出库文件、头文件:
1
二、编译安装apache;
1.解决依赖关系:
httpd-2.4.9需要较新版本的apr和apr-util,因此需要事先对其进行升级.
升级方式有两种: 一种是通过源代码编译安装,一种是直接升级rpm包.
--> 这里选择使用编译源代码的方式进行.
1).安装pcre-devel包(开发包组件)-> httpd-2.4.9编译过程也要依赖于pcre-devel软件包,需要事先安装,此软件包系统光盘自带:
2.安装apr、apr-util:
1).编译安装apr-1.5.0:
2).编译安装apr-util-1.5.3:
3.编译安装httpd-2.4.9:
1).安装:
1
2
3
4
[root@www ~]
# tar xf httpd-2.4.9.tar.bz2
[root@www ~]
# cd httpd-2.4.9
[root@www httpd-2.4.9]
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --with-zlib --with-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@www httpd-2.4.9]
# make && make install
补充:
(1)构建MPM为静态模块
在全部平台中,MPM都可以构建为静态模块。在构建时选择一种MPM,链接到服务器中。如果要改变MPM,必须重新构建。为了使用指定的MPM,请在执行configure脚本时,使用参数 --with-mpm=NAME。NAME是指定的MPM名称。编译完成后,可以使用 ./httpd -l 来确定选择的MPM。 此命令会列出编译到服务器程序中的所有模块,包括 MPM。
(2)构建 MPM 为动态模块
在Unix或类似平台中,MPM可以构建为动态模块,与其它动态模块一样在运行时加载。 构建 MPM 为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新构建服务器程序。在执行configure脚本时,使用--enable-mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。还可以在参数中给出模块列表。默认MPM,可以自动选择或者在执行configure脚本时通过--with-mpm选项来指定,然后出现在生成的服务器配置文件中。编辑LoadModule指令内容可以选择不同的MPM。
2).提供SysV服务脚本/etc/rc.d/init.d/httpd24,内容如下:
--->如果没有脚本的话就提供,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
[root@www ~]
# vim /etc/rc.d/init.d/httpd24
#!/bin/bash
#
# httpd Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd.pid
# Source function library.
.
/etc/rc
.d
/init
.d
/functions
if
[ -f
/etc/sysconfig/httpd
];
then
.
/etc/sysconfig/httpd
fi
# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-
"C"
}
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=
""
# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=
/usr/local/apache/bin/apachectl
httpd=${HTTPD-
/usr/local/apache/bin/httpd
}
prog=httpd
pidfile=${PIDFILE-
/var/run/httpd
.pid}
lockfile=${LOCKFILE-
/var/lock/subsys/httpd
}
RETVAL=0
start() {
echo
-n $
"Starting $prog: "
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] &&
touch
${lockfile}
return
$RETVAL
}
stop() {
echo
-n $
"Stopping $prog: "
killproc -p ${pidfile} -d 10 $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] &&
rm
-f ${lockfile} ${pidfile}
}
reload() {
echo
-n $
"Reloading $prog: "
if
! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&
/dev/null
;
then
RETVAL=$?
echo
$
"not reloading due to configuration syntax error"
failure $
"not reloading $httpd due to configuration syntax error"
else
killproc -p ${pidfile} $httpd -HUP
RETVAL=$?
fi
echo
}
# See how we were called.
case
"$1"
in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if
[ -f ${pidfile} ] ;
then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo
$"Usage: $prog {start|stop|restart|condrestart|reload|status| 接下
fullstatus|graceful|help|configtest}"
exit
1
esac
exit
$RETVAL
3).加入服务列表:
4.提供PATH环境变量:
5.修改hosts文件(免的在本地启动时会报错):
6.只要是编译模块就需要它:
7. 编辑apache的主配置文件:
8.启动httpd24,并测试访问默认页面:
1).启动服务:
2).查看80端口是否启动:
1
2
3
4
[root@www init.d]
# ss -tunlp | grep :80
tcp LISTEN 0 128 :::80 :::*
users
:((
"httpd"
,57827,4),(
"httpd"
,57829,4),(
"httpd"
,57857,4),(
"httpd"
,57858,4))
users
:((
"httpd"
,57827,4),(
"httpd"
,57829,4),(
"httpd"
,57857,4),(
"httpd"
,57858,4))
[root@www init.d]
#
3).测试访问:
三、编译安装php-5.4.26:
1.解决依赖关系->配置好yum;
2.编译安装php-5.4.26:
1).安装:
1
2
3
4
[root@www ~]
# tar xf php-5.4.26.tar.bz2
[root@www ~]
# cd php-5.4.26
[root@www php-5.4.26]
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/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
[root@www php-5.4.26]
# make && make install
2).参数介绍:
注意:
说明:
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
3.为php提供配置文件:
1).关于 php.ini:
2).提供配置文件(这里没有编辑):
4.编辑apache配置文件httpd.conf,以apache支持php:
1).编辑 vim /etc/httpd24/httpd.conf:
2).重启httpd24:
3).查看端口:
5.编辑测试页面index.php,如下--> (与MySQL 建立连接会话如下):
1).第一次(编辑测试页面):
2).第一次(测试访问: http://172.16.17.201/):
3).第二次(编辑页面测试脚本):
4).第二次(测试访问: http://172.16.17.201/):
5).第三次测试(关闭mysql服务):
6).第三次(访问测试: http://172.16.17.201/)
四、安装xcache,为php加速:
简单理解:
XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载
1.安装 phpMyAdmin-4.0.5:
1).解压文件:
2).将文件剪切至/usr/local/apache/htdocs/pma
3).访问: http://172.16.17.201/pma/
4).利用ab来做压力测试(安装xcache的php加速器之前, ab测试结果如下):
(1) 测试前 top的使用情况:
(2)压力测试的结果:
(3)压力测试进行时截图,与上面的图片做对比:
(4).压力测试进行时phpMyAdmin的截图(能打开,只是得等待吆):
2.安装xcache,为php加速:
1).安装xcache-3.0.3(用本地的解释器探测模块所依赖的版本号、扩展API等,生成序列号标记,而后才能编译):
注意:
2).在访问: http://172.16.17.201/-->并且找到xcache :
3).在访问: http://172.16.17.201/pma(这里没有做压力测试呢)
4).再次执行ab做压力测试(这里就不上图了):
5).做了Xcache之后性能按理来说会提升 3 倍左右的.这里也就没有上CPU与压力测试的后图了.
第二部分: 配置apache-2.4.9与fpm方式的php-5.4.26
一、Apache、MySQL的安装与前一部分相同;请根据其前面进行安装;
这里省略了...
请点击: http://xiaomazi.blog.51cto.com/5891742/1383122
二、编译安装php-5.4.26:
1.解决依赖关系:
1).我接上面的环境做的,所以要先删除:
1
[root@station76 ~]
# rm -rf php-5.4.26
2).解压、编译、安装:
1
2
3
4
5
[root@www ~]
# tar xf php-5.4.26.tar.bz2
[root@www php-5.4.26]
# cd php-5.4.26
[root@www php-5.4.26]
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/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
[root@www php-5.4.26]
# make && make install
注意:这里面将路径改为了php5了,因为之前安装过.在上产环境下直接删除/卸载就可以.
2.提供配置文件:
1
2
[root@www php-5.4.26]
# mkdir /etc/php5
[root@www php-5.4.26]
# cp php.ini-production /etc/php5/php.ini
3.配置php-fpm:
1).为php-fpm提供SysV init脚本,并将其添加至服务列表:
2).为php-fpm提供配置文件:
三、配置httpd-2.4.9及Xcache为php加速;
1.提供配置文件:httpd.conf
2.编辑配置文件httpd.conf:
3.配置httpd-vhosts.conf文件,使得虚拟主机生效:
1).配置虚拟主机:
2).创建所需目录、测试语法、启动服务、端口:
3).添加本地hosts文件(注意在生产环境下不用添加):
4)本地测试访问(访问是不会成功的因为没有权限的):
5).修改文件并添加相应权限:
6).启动并访问:
4.测试修改改后的index.php:
1).修改网页文件:
2).访问:http:// www.xiaoma1.com(www.xiaoma2.com)
5.配置转发功能:
1).重启服务:
2).查看端口、模块:
3).测试访问:http:// www.xiaoma1.com(www.xiaoma2.com)这里就是php解析的了.
6.安装phpMyAdmin:
1).删除index.php文件:
2).解压phpMyAdmin且复制文件至htdocs中(xiaoma2也是同样的操作):
3).测试访问: http://www.xiaoma1.com/pma/
4).压力测试-->ab(压力测试进行中试网页还是能快速打开的):
7.安装xcache位php加速:
1).删除之前的文件、解压、phpize(用本地的解释器探测模块所依赖的版本号、扩展API等,生成序列号标记,而后才能编译)、编译、安装:
2).创建所需目录、cpoy配置文件、并且修改配置文件、启动服务:
3).创建index.php文件且:
4).测试访问:http://www.xiaoma1.com/ -->http://www.xiaoma1.com/pma/
5).ab测试前:
6).压力测试:
7).压力测试后打开的速度很快:
(责任编辑:IT)
LAMP的理解: LAMP:是Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台. 第一部分: 编译安装过程的顺序: httpd 2.4.9 + mysql-5.5.33 + php-5.4.26:
一、安装mysql-5.5.33: 前提: 准备好开发包以及依赖包并且安装好.
1.准备数据存放的文件系统: 新建一个逻辑卷,并将其挂载至特定目录即可。 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。 1).创建分及/data目录:
2).创建LVM(方便以后开机不足时扩展.)
3).格式化文件系统且配置为开机自动挂载:
4).创建mydata目录,且修改目录的属主属组:
2.新建用户以安全方式运行进程:
3.安装并初始化mysql-5.5.33: 1).解压安装包且创建软链接(方便以后升级):
2).初始化系统库:
2.为mysql提供sysv服务脚本:
3.添加至服务列表:
4.提供配置文件(我的是双核的,所以改为4):
5.启动mysqld服务: 6.查看套接字文件: 注意rpm包安装时路径为:/var/lib/mysql. 7.如何连接mysql呢?? 1).修改PATH环境变量,让系统可以直接使用mysql的相关命令: 2).连接到mysql上查看版本: 3).删除匿名用户: -->如果不确定,就先查看下: 4).修改密码: Ⅰ.一次修改一个密码: Ⅱ.修改全部用户的密码: Ⅲ.测试登陆: Ⅳ.在家目录下创建隐藏文件.my.cnf,(不用手动输入密码,在连接mysql时自动连接.): 8.导出库文件、头文件:
1 二、编译安装apache;
1.解决依赖关系: httpd-2.4.9需要较新版本的apr和apr-util,因此需要事先对其进行升级. 升级方式有两种: 一种是通过源代码编译安装,一种是直接升级rpm包. --> 这里选择使用编译源代码的方式进行.
1).安装pcre-devel包(开发包组件)-> httpd-2.4.9编译过程也要依赖于pcre-devel软件包,需要事先安装,此软件包系统光盘自带: 2.安装apr、apr-util: 1).编译安装apr-1.5.0: 2).编译安装apr-util-1.5.3: 3.编译安装httpd-2.4.9: 1).安装:
补充: 2).提供SysV服务脚本/etc/rc.d/init.d/httpd24,内容如下: --->如果没有脚本的话就提供,如下:
3).加入服务列表: 4.提供PATH环境变量: 5.修改hosts文件(免的在本地启动时会报错): 6.只要是编译模块就需要它: 7. 编辑apache的主配置文件: 8.启动httpd24,并测试访问默认页面: 1).启动服务: 2).查看80端口是否启动:
3).测试访问: 三、编译安装php-5.4.26:
1.解决依赖关系->配置好yum; 2.编译安装php-5.4.26: 1).安装:
2).参数介绍: 注意:
说明:
3.为php提供配置文件: 1).关于 php.ini: 2).提供配置文件(这里没有编辑): 4.编辑apache配置文件httpd.conf,以apache支持php: 1).编辑 vim /etc/httpd24/httpd.conf: 2).重启httpd24: 3).查看端口: 5.编辑测试页面index.php,如下--> (与MySQL 建立连接会话如下): 1).第一次(编辑测试页面): 2).第一次(测试访问: http://172.16.17.201/): 3).第二次(编辑页面测试脚本): 4).第二次(测试访问: http://172.16.17.201/): 5).第三次测试(关闭mysql服务): 6).第三次(访问测试: http://172.16.17.201/)
四、安装xcache,为php加速: 简单理解:
XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载 1.安装 phpMyAdmin-4.0.5: 1).解压文件: 2).将文件剪切至/usr/local/apache/htdocs/pma 3).访问: http://172.16.17.201/pma/ 4).利用ab来做压力测试(安装xcache的php加速器之前, ab测试结果如下): (1) 测试前 top的使用情况: (2)压力测试的结果: (3)压力测试进行时截图,与上面的图片做对比: (4).压力测试进行时phpMyAdmin的截图(能打开,只是得等待吆):
2.安装xcache,为php加速: 1).安装xcache-3.0.3(用本地的解释器探测模块所依赖的版本号、扩展API等,生成序列号标记,而后才能编译): 注意: 2).在访问: http://172.16.17.201/-->并且找到xcache :
3).在访问: http://172.16.17.201/pma(这里没有做压力测试呢) 4).再次执行ab做压力测试(这里就不上图了): 5).做了Xcache之后性能按理来说会提升 3 倍左右的.这里也就没有上CPU与压力测试的后图了.
第二部分: 配置apache-2.4.9与fpm方式的php-5.4.26
一、Apache、MySQL的安装与前一部分相同;请根据其前面进行安装; 请点击: http://xiaomazi.blog.51cto.com/5891742/1383122 二、编译安装php-5.4.26: 1.解决依赖关系: 1).我接上面的环境做的,所以要先删除:
2).解压、编译、安装:
2.提供配置文件:
3.配置php-fpm: 1).为php-fpm提供SysV init脚本,并将其添加至服务列表: 2).为php-fpm提供配置文件:
三、配置httpd-2.4.9及Xcache为php加速;
1.提供配置文件:httpd.conf 2.编辑配置文件httpd.conf:
3.配置httpd-vhosts.conf文件,使得虚拟主机生效: 1).配置虚拟主机: 2).创建所需目录、测试语法、启动服务、端口: 3).添加本地hosts文件(注意在生产环境下不用添加): 4)本地测试访问(访问是不会成功的因为没有权限的): 5).修改文件并添加相应权限: 6).启动并访问: 4.测试修改改后的index.php: 1).修改网页文件: 2).访问:http:// www.xiaoma1.com(www.xiaoma2.com)
5.配置转发功能: 1).重启服务: 2).查看端口、模块: 3).测试访问:http:// www.xiaoma1.com(www.xiaoma2.com)这里就是php解析的了.
6.安装phpMyAdmin:
1).删除index.php文件: 2).解压phpMyAdmin且复制文件至htdocs中(xiaoma2也是同样的操作): 3).测试访问: http://www.xiaoma1.com/pma/ 4).压力测试-->ab(压力测试进行中试网页还是能快速打开的): 7.安装xcache位php加速: 1).删除之前的文件、解压、phpize(用本地的解释器探测模块所依赖的版本号、扩展API等,生成序列号标记,而后才能编译)、编译、安装: 2).创建所需目录、cpoy配置文件、并且修改配置文件、启动服务: 3).创建index.php文件且: 4).测试访问:http://www.xiaoma1.com/ -->http://www.xiaoma1.com/pma/ 5).ab测试前: 6).压力测试: 7).压力测试后打开的速度很快: (责任编辑:IT) |