Web Service之LAMP- 2 基于FastCGI 的编译安装以及 Xcache实现PHP的加速
admin
2023-07-04 02:02:50
0

本人对于fastcgi/cgi的理解:

什么是CGI

CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。

CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等.


什么是FastCGI

FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。

FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等。


FastCGI的工作原理
1、Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module)
2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。
3、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
4、FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。

在上述情况中,你可以想象CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部扩展并重初始化全部数据结构。使用FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。



注意: 第一部分的第二部分的基础,所以有什么不懂得请点击:

Web Service之LAMP- 1 基于模块化编译安装以及  Xcache实现PHP的加速:

http://xiaomazi.blog.51cto.com/5891742/1383122



第二部分: 配置apache-2.4.9与fpm方式的php-5.4.26


一、Apache、MySQL的安装与前一部分相同;请根据其前面进行安装;
这里省略了...

请点击: http://xiaomazi.blog.51cto.com/5891742/1383122

二、编译安装php-5.4.26:

1.解决依赖关系:

1).我接上面的环境做的,所以要先删除:

[root@station76 ~]# rm -rf php-5.4.26

2).解压、编译、安装:

[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.提供配置文件:

[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脚本,并将其添加至服务列表:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

2).为php-fpm提供配置文件:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速




三、配置httpd-2.4.9及Xcache为php加速;


1.提供配置文件:httpd.conf

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

2.编辑配置文件httpd.conf:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

3.配置httpd-vhosts.conf文件,使得虚拟主机生效:

1).配置虚拟主机:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

2).创建所需目录、测试语法、启动服务、端口:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

3).添加本地hosts文件(注意在生产环境下不用添加):

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

4)本地测试访问(访问是不会成功的因为没有权限的):

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

5).修改文件并添加相应权限:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

6).启动并访问:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

4.测试修改改后的index.php:

1).修改网页文件:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

2).访问:http:// www.xiaoma1.com(www.xiaoma2.com)

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

5.配置转发功能:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

1).重启服务:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

2).查看端口、模块:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

3).测试访问:http:// www.xiaoma1.com(www.xiaoma2.com)这里就是php解析的了.

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

6.安装phpMyAdmin:

1).删除index.php文件:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

2).解压phpMyAdmin且复制文件至htdocs中(xiaoma2也是同样的操作):

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

3).测试访问: http://www.xiaoma1.com/pma/

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

4).压力测试-->ab(压力测试进行中试网页还是能快速打开的):

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

7.安装xcache位php加速:

1).删除之前的文件、解压、phpize(用本地的解释器探测模块所依赖的版本号、扩展API等,生成序列号标记,而后才能编译)、编译、安装:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

2).创建所需目录、cpoy配置文件、并且修改配置文件、启动服务:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

3).创建index.php文件且:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

4).测试访问:http://www.xiaoma1.com/ -->http://www.xiaoma1.com/pma/

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

5).ab测试前:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

6).压力测试:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

7).压力测试后打开的速度很快:

Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速





A smile is the most beautiful language!!!


Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速以本人的理解而写出博客,如若有错误,欢迎指出.Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速Web Service之LAMP- 2 基于FastCGI 的编译安装以及  Xcache实现PHP的加速

                                                                    ---->小马子


相关内容

热门资讯

日本要搞两个首都? 日本媒体日前报道,日本维新会正在推进将大阪设为“副首都”的构想,定于6月中旬组建一个专门小组。对此,...
稳舵扬帆正当时——5月全国各地... 原标题:稳中求进每月看|稳舵扬帆正当时——5月全国各地经济社会发展观察从多地以法治之力护航民营经济高...
燃气灶打火一会就灭是什么原因呢 原因是1、燃气灶过压保护,可以通过增加减压阀来解决这个问题。2、可能是因为燃气灶电池没有电了,可以将...
燃气开的燃气灶打不了火什么原因 可能是燃气灶电池电量不足。可能是燃气通路不畅通,如果火花声音清脆有力,但是点不着火。可能是燃气灶老化...
好太太燃气灶有电有气打不 这种情况原因有很多种,1、可能的原因就是我们的燃气灶进入了过压保护,我们家中使用的很多燃气灶都有过压...
燃气灶打火就是不着咋办 燃气灶是我们日常生活中经常使用的家用电器,但有时候我们会遇到燃气灶打火不着的情况,让人十分苦恼。那我...
燃气灶光打火没有气进来怎么回事 原因是燃气灶电池没有电了,可以将燃气灶的电池盒拆下来更换一个新的一号电池;还有可能是燃气灶的线路接触...
内蒙古包头:首批投运1000辆... 新华社5月31日消息,近日,我国自主研发的氢能两轮车在内蒙古自治区包头市面向公众投入运营,首批将在公...
缅甸边境发生爆炸,云南群众目击... 5月31日,缅甸掸邦北部南坎镇发生一起爆炸事故,已导致多人伤亡,多处民宅、房屋遭到严重损毁。经初步调...
大湾区打出智造新名片,高域首台... 近日,在广州黄埔区的智能制造产业园内,一架白色多旋翼飞行器缓缓驶出生产线,标志着高域(GOVY)这家...