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
目录
相关文章
|
分布式计算 监控 数据可视化
阿里云大数据ACA及ACP复习题(211~220)
本人备考阿里云大数据考试时自行收集准备的题库,纯手工整理的,能够覆盖到今年7月份,应该是目前最新的,发成文章希望大家能一起学习,不要花冤枉钱去买题库背了,也希望大家能够顺利通关ACA和ACP考试。
|
8月前
|
存储 弹性计算 Linux
阿里云轻量应用服务器实例规格详解:vCPU、内存、系统盘、峰值带宽、线路类型及固定IP地址全解析
2026年阿里云轻量应用服务器全新升级,支持200M峰值带宽、不限流量,涵盖vCPU、内存、系统盘、公网IP等全配置解析,适用于个人与企业建站、开发测试等多种场景,详情请见官方页面。
|
8月前
|
传感器 人工智能 前端开发
WebGL开发数字孪生项目
WebGL是2026年数字孪生跨平台落地的核心技术,支撑实时遥测、边缘AI与仿真。本文详解Three.js/Babylon/Cesium选型、glTF模型优化、WebSocket数据同步、LOD/实例化/纹理压缩等性能策略,及资产版本、安全与验收标准。(239字)
|
8月前
|
前端开发 小程序 Docker
改论文熬到三点的“格式劫”:肝了几个通宵整出一个小工具,把豆包、DeepSeek、ChatGPT生成内容直接转成了可编辑Word
介绍了一款专为科研、教学人群打造的小工具的设计初衷和设计理念,轻松解决大模型生成内容转Word时的公式乱码、表格错乱、流程图模糊等“格式劫”。自动补全LaTeX符号、修复Markdown表格结构、高清渲染Mermaid图,一键输出可编辑、带样式的Word文档。无需安装、不用懂代码,复制粘贴即用,30秒完成繁琐排版,让写论文、出试卷不再熬夜改格式。
|
传感器 运维 安全
焊接机器人推荐:主流品牌解析与艾利特焊接机器人优势指南
焊接机器人已成为工业自动化的重要设备,广泛应用于汽车制造、新能源等领域。本文重点解析ABB、发那科、库卡、安川、艾利特等主流品牌的技术亮点,结合高精度、重负载、人机协作等场景,提供选型指南,助力企业高效匹配生产需求,提升焊接质量与效率。
|
设计模式 消息中间件 算法
推荐书籍
推荐书籍
|
域名解析 弹性计算 网络协议
nslookup 域名结果正确,但是 ping 域名失败
&gt; 最近两周碰到了不同场景下四个DNS问题,所以记录一下 这几个Case描述如下: 1. 一批ECS nslookup 域名结果正确,但是 ping 域名 返回 unknown host 1. 在公司网下,我的windows7笔记本的wifi总是报dns域名异常无法上网(通过IP地址可以上网) 1. Docker集群中两个容器中 nslookup 同一个域名,返回来的IP不一样
12978 1
|
传感器
GIGE 协议摘录 —— GVSP 协议(三)(上)
GIGE 协议摘录 —— GVSP 协议(三)
2288 1
|
存储 边缘计算 数据处理
边缘计算和云计算的区别
边缘计算和云计算是两种不同的计算范式。云计算通过互联网提供集中式处理、可扩展性和成本效益等优势,而边缘计算则在数据源附近进行分布式处理,具有低延迟、带宽优化和本地化决策等优点。两者在响应时间、网络带宽和安全性方面有显著区别,常互补使用以满足不同应用场景的需求。
2072 3
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能】自然语言处理(NLP)的突破,关注NLP在机器翻译、情感分析、聊天机器人等方面的最新研究成果和应用案例。
自然语言处理(NLP)作为人工智能的一个重要分支,近年来取得了显著的突破,特别在机器翻译、情感分析、聊天机器人等领域取得了显著的研究成果和广泛的应用。以下是对这些领域最新研究成果和应用案例的概述,并附带相应的代码实例。
1669 1