fastcgi安装

fastcgi安装

这里及以下的web服务器都是以nginx为例子和说明,php以5.3为例子。

php-fpm

fastcgi在服务器上会启动多个进程进行解析,这个时候就需要一个fastcgi的管理器,管理哪个子进程可以结束,哪个进行应该开启了。

fastcgi的进程管理器有两种,spawn-fcgi和php-fpm。其中的spawn-fcgi一般是和lighttp配合使用的。而php-fpm一般会配合nginx来使用。

安装

下载php和php-fpm源码包

php下载地址:http://php.net/downloads.php

php-fpm下载地址:http://php-fpm.org/downloads/

在下载php-fpm的时候,需要尽量使php版本和php-fpm版本一致或者版本差别最小,否则有可能会出现兼容性的问题。

配置安装环境

php需要下面软件的支持,如果没有安装,请自行安装:

gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  zlib zlib-devel glibc glibc-devel glib2 glib2-devel

编译安装php和php-fpm

[root@localhost local]#tar zxvf php-5.2.13.tar.gz
[root@localhost local]#gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1
[root@localhost local]#cd php-5.2.13
[root@localhost php-5.2.13]#./configure  --prefix=/usr/local/php --enable-fastcgi --enable-fpm
[root@localhost php-5.2.13]#make
[root@localhost php-5.2.13]#make install
[root@localhost php-5.2.13]cp php.ini-dist /usr/local/php/lib/php.ini

配置与优化php-fpm

php的配置文件存放在 /usr/local/php/lib/php.ini中。

而php-fpm的配置文件存放在 /usr/local/php/etc/php-fpm.conf中

其中的几项配置需要注意:

标签listen_address是配置fastcgi进程监听的IP地址以及端口,默认是127.0.0.1:9000。

<value name="listen_address">127.0.0.1:9000</value>

标签display_errors用来设置是否显示PHP错误信息,默认是0,不显示错误信息,设置为1可以显示PHP错误信息。

<value name="display_errors">0</value>

标签user和group用于设置运行FastCGI进程的用户和用户组。需要注意的是,这里指定的用户和用户组要和Nginx配置文件中指定的用户和用户组一致。

<value name="user">nobody</value>
<value name="group">nobody</value>

标签max_children用于设置FastCGI的进程数。根据官方建议,小于2GB内存的服务器,可以只开启64个进程,4GB以上内存的服务器可以开启200个进程。也可以根据服务的内存数来估计需要开启多少fastcgi进程数。大概一个fastcgi进程占20M的内存。

<value name="max_children">5</value>

标签request_terminate_timeout用于设置FastCGI执行脚本的时间。默认是0s,也就是无限执行下去,这个参数设置好了可以用于保证不会有执行时间过长的php阻塞住fastcgi进程。

<value name="request_terminate_timeout">s</value>

标签rlimit_files用于设置PHP-FPM对打开文件描述符的限制,默认值为1024。这个标签的值必须和Linux内核打开文件数关联起来,例如要将此值设置为65535,就必须在Linux命令行执行'ulimit -HSn 65536'。

<value name="rlimit_files">1024</value>

标签max_requests指明了每个children最多处理多少个请求后便会被关闭,默认的设置是500。

为什么会需要这个参数设置呢?php和fastcgi都是C写的,一些php模块什么的有可能实际上存在着内存泄露等问题,所以一般php作为守护进程一直执行是不大可取的行为。既然php有可能有内存泄露的问题,那么如果fastcgi进程一直执行着,那么就有可能导致机器的内存出现吃爆的现象。所以在执行一段时间之后,我们是希望fastcgi能自动重启动。这个参数就是做这个用的。

<value name="max_requests">500</value>

标签allowed_clients用于设置允许访问FastCGI进程解析器的IP地址。如果不在这里指定IP地址,Nginx转发过来的PHP解析请求将无法被接受。

<value name="allowed_clients">127.0.0.1</value>

启动php-fpm

/usr/local/php/sbin/php-fpm  start
时间: 2024-08-02 21:17:05

fastcgi安装的相关文章

Nginx + PHP(FastCGI)安装配置笔记

这是站长在2011年时一次安装服务器时所记录的Nginx和PHP的安装笔记.安装过程记录的比较简略,仅仅是一个大致的流程,一些细节描述的不够详细,请多多谅解,我会在日后重新整理一份详细的安装过程,本文仅供参考! 软件环境:CentOS 5.7 + PHP 5.2.17 + Nginx 0.8.55   1. 编译安装 PHP 和 PHP-FPM 提示: 安装PHP前应先安装MySQL,具体方法请自行baidu或google: PHP所需支持库的安装这里不做过多介绍,可上网搜索参照相关教程进行安装

linux+nginx+python+fastcgi 安装配置及 django+web.py 部署

linux下nginx+python+fastcgi部署总结(django版) 注意:虽然本文成功的搭建了django运行fastcgi的实例,但是在实际运行中发现了很多问题,比如程序执行异常,进程在每次请求之后退出之类的.可能是我机器的问题,也可能是程序本身bug,大家如果用来搭建外网环境,请务必多多测试. 一.编译nginx 在网上买了一本<实战nginx-取代Apache的高性能服务器>,写的比较浅,主要是些配置方面的东西,不过却正是目前我所需要的.由于需要支持https和rewrite

Winodws2003中IIS6配置PHP环境FastCGI的安装配置详解

我们知道php配置有几种: 1.CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少. 特点是:稳定,但效率太低. 2.ISAPI方式加载PHP环境,通常就是IIS里面配置解释器为php5isapi.dll,目前使用最多,应用最广. 特点是:多线程,效率较高,但不够稳定. 3.FastCGI方式加载PHP环境,在IIS环境里并不常见,但其它系统环境应用还是有的,不过IIS7.0开始内置FastCGI了. 特点是:高效率,高稳定性,属于将来发展趋势.

Win2003+IIS6+PHP5.33(FastCGI)+MySQl5.1.50安装配置

操作系统:Windows 2003 Server SP2 IIS6.0 所需软件:3个 fcgisetup_1.5_x86_rtw mysql-essential-5.1.50-win32 php-5.3.3-Win32-VC9-x86 请自行下载 一.安装FastCGI 双击运行fcgisetup_1.5_x86_rtw.msi进行安装, 安装后在 C:WINDOWSsystem32inetsrv 目录下产生了五个文件.如下图: 同时在 IIS 的 "Web 服务扩展"里多了 Fas

apache的fastcgi配置导致的故障

[Tue Jan 10 13:54:30 2012] [alert] [client 192.168.1.200] (13)Permission denied: FastCGI: failed to connect to (dynamic) server "/var/www/extsuite/extmail/cgi/index.cgi": something is seriously wrong, any chance the socket/named_pipe directory w

Nginx+FastCGI配置

安装过程中参考:张宴 http://blog.s135.com/nginx_php_v5/nginx对我来说是一个新的内容,安装的包比较多,在经过了一段时间对nginx的了解之后,才真正的配置成功,本文在经过第二轮的nginx配置学习过程中,不断的完善,不断的理解.对以后再次配置是一个很好的总结. 1.1 nginx概述nginx简介Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为"engine X", 是一个高性能的HTTP和反向代理服务器,同时也是一个I

fastcgi配置

fastcgi配置 我们这里说的fastcgi配置专指nginx对fastcgi的配置,fastcgi本身的配置介绍在fastcgi 安装文中有说明. nginx的fastcgi模块提供的命令 fastcgi_pass 这个命令是指定将http代理到哪个fastcgi服务端接口.fastcgi_pass后面是填写fastcgi服务端地址的,这个地址可以是域地址,也可以是Uninx-域套接字. fastcgi_pass localhost:9000; fastcgi_pass unix:/tmp/

IIS7配置PHP环境图文教程(fastcgi快速最新版)_win服务器

我们知道php配置有几种: 1.CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少. 特点是:稳定,但效率太低. 2.ISAPI方式加载PHP环境,通常就是IIS里面配置解释器为php5isapi.dll,目前使用最多,应用最广. 特点是:多线程,效率较高,但不够稳定. 3.FastCGI方式加载PHP环境,在IIS环境里并不常见,但其它系统环境应用还是有的,不过IIS7.0开始内置FastCGI了. 特点是:高效率,高稳定性,属于将来发展趋势.

IIS+FastCGI+PHP5.3+MySQL5.1+Gzip配置图文详细教程_win服务器

说明: 本帖是我经过一天一夜完成的,不同于一般网上文章,除详细的将整个配置过程和 测试过程都详细截图说明外,尤其在FastCGI方面采用微软的"web平台安装程序"来配置,网上相关内容很少,对gzip的设置也很详细,保证按图操 作即可独立完成.另外,还有详细的测试gzip压缩率的方法和比较. 文中对于理论几乎没有阐述,只是对配置过程进行了最详细的介绍,这样 使新手即使不太明白,照本文也可以配置出一样的环境来,本文章的错误及疏漏之处,还请大家指出来,大家在配置中有何问题,我们一起来探讨解