Web Service之LAMP- 2 基于FastCGI 的编译安装以及 Xcache实现PHP的加速
本人对于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脚本,并将其添加至服务列表:
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).压力测试后打开的速度很快:
A smile is the most beautiful language!!!
以本人的理解而写出博客,如若有错误,欢迎指出.
—->小马子