仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 655|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 来一发CentOS基于FastCGI完成Xcache完成PHP的减速

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:37:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!LAMP的了解:
LAMP:是Linux+Apache+Mysql+Perl/PHP/Python一组经常使用来搭建静态网站大概办事器的开源软件,自己都是各自自力的步伐,可是由于常被放在一同利用,具有了愈来愈高的兼容度,配合构成了一个壮大的Web使用步伐平台.

第一局部:编译装置历程的按次:httpd2.4.9+mysql-5.5.33+php-5.4.26:

1、装置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
2、编译装置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~]#tarxfhttpd-2.4.9.tar.bz2
[root@www~]#cdhttpd-2.4.9
[root@wwwhttpd-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@wwwhttpd-2.4.9]#make&&makeinstall



增补:
(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
#
#httpdStartupscriptfortheApacheHTTPServer
#
#chkconfig:-8515
#description:ApacheisaWorldWideWebserver.Itisusedtoserve
#HTMLfilesandCGI.
#processname:httpd
#config:/etc/httpd/conf/httpd.conf
#config:/etc/sysconfig/httpd
#pidfile:/var/run/httpd.pid
#Sourcefunctionlibrary.
./etc/rc.d/init.d/functions
if[-f/etc/sysconfig/httpd];then
./etc/sysconfig/httpd
fi
#StarthttpdintheClocalebydefault.
HTTPD_LANG=${HTTPD_LANG-"C"}
#Thiswillpreventinitlogfromswallowingupapass-phrasepromptif
#mod_sslneedsapass-phrasefromtheuser.
INITLOG_ARGS=""
#SetHTTPD=/usr/sbin/httpd.workerin/etc/sysconfig/httpdtouseaserver
#withthethread-based"worker"MPM;BEWARNEDthatsomemodulesmaynot
#workcorrectlywithathread-basedMPM;notablyPHPwillrefusetostart.
#Pathtotheapachectlscript,serverbinary,andshort-formformessages.
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_LANGdaemon--pidfile=${pidfile}$httpd$OPTIONS
RETVAL=$?
echo
[$RETVAL=0]&&touch${lockfile}
return$RETVAL
}
stop(){
echo-n$"Stopping$prog:"
killproc-p${pidfile}-d10$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$"notreloadingduetoconfigurationsyntaxerror"
failure$"notreloading$httpdduetoconfigurationsyntaxerror"
else
killproc-p${pidfile}$httpd-HUP
RETVAL=$?
fi
echo
}
#Seehowwewerecalled.
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}"
exit1
esac
exit$RETVAL




3).到场办事列表:

4.供应PATH情况变量:

5.修正hosts文件(免的在当地启动时会报错):

6.只需是编译模块就必要它:

7.编纂apache的主设置文件:

8.启动httpd24,并测试会见默许页面:
1).启动办事:

2).检察80端口是不是启动:

1
2
3
4
[root@wwwinit.d]#ss-tunlp|grep:80
tcpLISTEN0128:::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@wwwinit.d]#




3).测试会见:


3、编译装置php-5.4.26:

1.办理依附干系->设置好yum;

2.编译装置php-5.4.26:
1).装置:
1
2
3
4
[root@www~]#tarxfphp-5.4.26.tar.bz2
[root@www~]#cdphp-5.4.26
[root@wwwphp-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@wwwphp-5.4.26]#make&&makeinstall



2).参数先容:

注重:
申明:
1、这里为了撑持apache的worker或event这两个MPM,编译时利用了--enable-maintainer-zts选项。
2、假如利用PHP5.3以上版本,为了链接MySQL数据库,能够指定mysqlnd,如许在本机就不必要先装置MySQL或MySQL开辟包了。mysqlnd从php5.3入手下手可用,能够编译时绑定到它(而不必和详细的MySQL客户端库绑定构成依附),但从PHP5.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/)



4、装置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

1、Apache、MySQL的装置与前一局部不异;请依据其后面举行装置;
这里省略了...
请点击:http://xiaomazi.blog.51cto.com/5891742/1383122
2、编译装置php-5.4.26:
1.办理依附干系:
1).我接下面的情况做的,以是要先删除:

1
[root@station76~]#rm-rfphp-5.4.26



2).解压、编译、装置:
<divclass="syntaxhighlighterbashie"id="highlighter_732066">1
2
3
4
5
<divclass="container">[root@www~]#tarxfphp-5.4.26.tar.bz2
[root@wwwphp-5.4.26]#cdphp-5.4.26
[root@wwwphp-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@wwwphp-5.4.26]#make&&makeinstall
若相依 该用户已被删除
沙发
发表于 2015-1-16 21:03:28 | 只看该作者

来一发CentOS基于FastCGI完成Xcache完成PHP的减速

感谢老师和同学们在学习上对我的帮助。
山那边是海 该用户已被删除
板凳
发表于 2015-1-24 10:32:56 | 只看该作者
Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
活着的死人 该用户已被删除
地板
发表于 2015-2-1 10:17:18 | 只看该作者
有疑问前,知识学习前,先用搜索。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-7 07:00:20 | 只看该作者
掌握在Linux系统中安装软件,在安装Linux工具盘后大致日常所需的软件都会有,一般网络提供下载的软件都会有安装说明。
老尸 该用户已被删除
6#
发表于 2015-2-21 17:18:15 | 只看该作者
老实说,第一个程序是在C中编译好的,调试好了才在Linux下运行,感觉用vi比较麻烦,因为有错了不能调试,只是提示错误。
深爱那片海 该用户已被删除
7#
发表于 2015-3-6 21:41:11 | 只看该作者
就这样,我们一边上OS理论课,一边上这个实验,这样挺互补的,老师讲课,一步一步地布置任务
再见西城 该用户已被删除
8#
发表于 2015-3-13 23:07:13 | 只看该作者
对Linux命令熟悉后,你可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。
飘灵儿 该用户已被删除
9#
 楼主| 发表于 2015-3-20 22:46:28 | 只看该作者
写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 22:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表