文档章节

PHP与PHP-FPM的安装及优化

xinson
 xinson
发布于 2014/06/20 10:31
字数 1337
阅读 232
收藏 0
点赞 0
评论 0

1.下载安装包

www.php.net官方网站下载PHP源码包,这里下载的是稳定版php-5.2.13.tar.gz。从http://php-fpm.org/downloads/下载对应的PHP-FPM源码包,这里下载的是php-5.2.13-fpm-0.5.13.diff.gz

需要注意,在下载软件包版本时,尽量使PHPPHP-FPM版本一致,如果版本之间相差太大,可能会出现兼容的问题。

2.配置安装环境

安装PHP需要下面软件包的支持,如果没有安装,请自行安装。
gcc  gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-ee freetype  freetype-devel zlib  zlib-devel  glibc  glibc-devel  glib2  glib2-
devel

由于各个Linux系统版本有不确定性,读者也可以在安装PHP过程中,根据错误提示信息,安装对应的软件库。

3.开始编译安装PHPPHP-FPM

编译安装PHPPHP-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-52.13 -p1
[root@localhost  local]#cd php-5.2.13
[roo t@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源码中。

“./configure”编译选项中,指定将PHP安装到/usr/local下;“--enable-fastcgi”是启用对PHPFastCGI支持;“--enable-fpm”是激活对FastCGI模式的fpm支持。

在编译PHP时可以加入很多编译选项,但是这里为了介绍PHPFastCGI功能没有加入更多的编译选项。

4.配置与优化PHP-FPM

PHP的全局配置文件是php.ini,在上面的步骤中,已经将此文件复制到了/usr/local/php/lib/php.ini下。可以根据每个应用需求的不同,对php.ini进行相应的配置。

下面重点介绍PHP-FPM引擎的配置文件。

根据上面指定的安装路径,PHP-FPM的默认配置文件为/usr/local/php/etc/php-fpm.confphp-fpm.conf是一个XML格式的纯文本文件,其内容很容易看明白。这里重点介绍几个重要的配置标签。

标签listen_address是配置FastCGI进程监听的IP地址以及端口,默认是127.0.0.1:9000
<valuename="listen_address">127.0.0.1:9000</value>

标签display_errors用来设置是否显示PHP错误信息,默认是0,不显示错误信息,设置为1可以显示PHP错误信息。
<valuename="display_errors">0</value>

标签usergroup用于设置运行FastCGI进程的用户和用户组。需要注意的是,这里指定的用户和用户组要和Nginx配置文件中指定的用户和用户组一致。
<value name="user">nobody</value>
<value name="group">nobody</value>

标签max_children用于设置FastCGI的进程数。根据官方建议,小于2GB内存的服务器,可以只开启64个进程,4GB以上内存的服务器可以开启200个进程。
<valuename="max_children">5</value>

标签request_terminate_timeout用于设置FastCGI执行脚本的时间。默认是0秒,也就是无限地执行下去,可以根据情况对其进行修改。
<valuename="request_terminate_timeout">0s</value>

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

标签max_requests指明了每个children最多处理多少个请求后便会被关闭,默认的设置是500
<valuename="max_requests">500</value>

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

5.管理FastCGI进程

在配置完PHP_FPM后,就可以启动FastCGI进程了。启动FastCGI进程有以下两种方式:
/usr/local/php/bin/php-cgi--fpm

或者
/usr/local/php/sbin/php-fpmstart

建议采用第二种方式启动FastCGI进程。
/usr/local/php/sbin/php-fpm还有其他参数,具体为start|stop|quit|restart|reload|logrotate
每个启动参数的含义如下:
start,启动PHPFastCGI进程。
stop,强制终止PHPFastCGI进程。
quit,平滑终止PHPFastCGI进程。
restart,重启PHPFastCGI进程。
reload,重新加载PHPphp.ini
logrotate,重新启用log文件。

reload是个很重要的参数,它可以在PHPFastCGI进程不中断的情况下重新加载改动过的php.ini,因此通过PHP_FPM可以平滑地变更FastCGI模式下的PHP设置。

FastCGI进程启动后,其监听的IP地址和端口也随即启动,可以通过psnetstat查看相关信息。
[root@localhost  php]# netstat -antl|grep 9000
tcp        0       0 127.0.0.1:9000              0.0.0.0:*                   LISTEN 
[roo t@localhost  php]# ps -ef|grep php-cgi
root       3567       1      0  17:06 ?            0 0 : 0 0 : 0 0   / u s r / l o c a l /
php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
nobo dy        3568    3567    0    17:06  ?                00:00:00  /usr/local/php/bin/php-cgi  --fpm
--fpm-config /usr/local/php/etc/php-fpm.conf
nobo dy        3569    3567    0    17:06  ?                00:00:00  /usr/local/php/bin/php-cgi  --fpm
--fpm-config /usr/local/php/etc/php-fpm.conf
nobo dy        3570    3567    0    17:06  ?                00:00:00  /usr/local/php/bin/php-cgi  --fpm
--fpm-config /usr/local/php/etc/php-fpm.conf
nobo dy        3571    3567    0    17:06  ?                00:00:00  /usr/local/php/bin/php-cgi  --fpm
--fpm-config /usr/local/php/etc/php-fpm.conf
nobo dy        3572    3567    0    17:06  ?                00:00:00  /usr/local/php/bin/php-cgi  --fpm
--fpm-config /usr/local/php/etc/php-fpm.conf
root      3583  3524  0 17:09 pts/1    00:00:00 grep php-cgi


本文转载自:http://book.2cto.com/201307/27398.html

共有 人打赏支持
xinson
粉丝 15
博文 133
码字总数 29814
作品 0
广州
程序员
配置一个nginx+php-fpm的web服务器

一、基本信息 系统(L):CentOS 6.9 #下载地址:http://mirrors.sohu.com Web服务器(N):NGINX 1.14.0 #下载地址:http://nginx.org/en/download.html 数据库服务器(M):MySQL 5.6.40 #下载...

大松哥
06/28
0
0
fastcgi安装

fastcgi安装 这里及以下的web服务器都是以nginx为例子和说明,php以5.3为例子。 php-fpm fastcgi在服务器上会启动多个进程进行解析,这个时候就需要一个fastcgi的管理器,管理哪个子进程可以...

王二狗子11
01/07
0
0
nginx、fastCGI、php-fpm关系梳理

前言:   Linux下搭建nginx+php+memached(LPMN)的时候,nginx.conf中配需要配置fastCGI,php需要安装php-fpm扩展并启动php-fpm守护进程,nginx才可以解析php脚本。那么,这样配置的背后原理...

大圈
2015/08/25
0
1
Centos7+Nginx+PHP 基础WEB运行环境手工部署

Centos7+nginx+php(php-fpm)基础web运行环境手工部署 准备工作 1.安装编译支持库 2.安装PCRE 3.安装zlib 4.安装openssl 安装nginx 官方下载 http://nginx.org/en/download.html 安装PHP 安...

Eller
2017/05/06
0
0
实战Nginx与PHP(FastCGI)的安装、配置与优化

一、什么是 FastCGI FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多...

前台满300减30
2012/03/16
0
1
自动化部署必备技能—定制化RPM包

这里也不介绍rpmbuild这个打包工具了,想了解的朋友自行谷歌百度。但我不建议大家花太多的时间去学习这个命令,比较晦涩,而且我会在下面介绍更简单的命令。 FPM打包工具 FPM的作者是jordans...

兄之老久
2017/05/20
0
0
php参数详解

[root@lnmp01 tools]# tar xf php-5.3.27.tar.gz解压压缩包 [root@lnmp01 tools]# cd php-5.3.27 进入php安装目录 ./configure 编译参数 –prefix=/application/php5.3.27 指定php的安装路径......

xiaofeng886
2017/03/24
0
0
实战 Nginx 与 PHP(FastCGI)的安装、配置与优化

一、什么是 FastCGI FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多...

大数据之路
2012/09/04
0
1
nginx +php-fpm 发挥更大的php作用

简介 编辑 PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)对于PHP 5.3.3之前的php来说,是一个补丁包[1] ,旨在将FastCGI进程管理整合进PHP包中。如果你使用的是PHP5.3.3之前的PHP的话...

bengozhong
2015/12/31
123
0
centos 6.5 编译安装zabbix3.2

centos 6.5 编译安装zabbix3.2 注意zabbix需要 mysql、http、PHP为基础环境 1.安装mysql5.7.17 1).解压: tar xvf mysql-5.7.17-1.el6.x86_64.rpm-bundle.tar 2).移除已经安装的早期版本 ...

梦在这里
2017/08/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

20位活跃在Github上的国内技术大牛 leij 何小鹏 亚信

本文列举了20位在Github上非常活跃的国内大牛,看看其中是不是很多熟悉的面孔? 1. lifesinger(玉伯) Github主页: https://github.com/lifesinger 微博:@ 玉伯也叫射雕 玉伯(王保平),...

海博1600
7分钟前
0
0
高性能服务器本质论

一 服务器分类 从软件性能角度,高性能服务器分:cpu密集型服务器/IO密集型服务器 (1)CPU密集型:该类服务器没有对io的访问/没有同步点,性能瓶颈在于对cpu的充分利用。 典型的如转发服务器/...

码代码的小司机
9分钟前
0
0
Mybatis收集配置

一、Mybatis取Clob数据 1、Mapper.xml配置 <resultMap type="com.test.User" id="user"> <result column="id" property="id"/> <result column="json_data" property="jsonData" ......

星痕2018
34分钟前
0
0
centos7设置以多用户模式启动

1、旧版本linux系统修改inittab文件,在新版本执行vi /etc/inittab 会有以下提示 # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON......

haha360
今天
0
0
OSChina 周日乱弹 —— 局长:怕你不爱我

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ andonny :分享周二珂的单曲《孤独她呀》 《孤独她呀》- 周二珂 手机党少年们想听歌,请使劲儿戳(这里) @孤星闵月 :没事干,看一遍红楼梦...

小小编辑
今天
181
9
Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式 Factory工厂模式 Singleton单例模式 Delegate委派模式 Strategy策略模式 Prototype原型模式 Template模板模式 Spring5 beans 接口实例化 代理Bean操作 ...

小致dad
今天
0
0
SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
11
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
17
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
251
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部