千家信息网

Nginx+php-fpm环境配置详细步骤

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,Nginx+php-fpm环境配置详细步骤最全的Nginx各种版本下载地址:http://nginx.org/download/一、编译安装php-fpm什么是PHP-FPMPHP-FPM是一个PHP
千家信息网最后更新 2026年11月03日Nginx+php-fpm环境配置详细步骤

Nginx+php-fpm环境配置详细步骤

最全的Nginx各种版本下载地址:http://nginx.org/download/

一、编译安装php-fpm

什么是PHP-FPM

PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到.

PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 -enable-fpm参数即可开启PHP-FPM,其它参数都是配置php的,具体选项含义可以查看这里。

安装前准备
centos下执行

yum -y install gcc gcc-c++ glibc libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel

新版php-fpm安装(推荐安装方式)

wget http://cn2.php.net/distributions/php-5.4.7.tar.gztar zvxf php-5.4.7.tar.gzcd php-5.4.7./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt --enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath --enable-inline-optimization --with-bz2  --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --with-gd --with-jpeg-dir make all install

 php的默认安装位置上面已经指定为/usr/local/php,接下来配置相应的文件:

cp php.ini-development /usr/local/php/lib/php.inicp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.confcp sapi/fpm/php-fpm /usr/local/bin

然后设置php.ini,使用: vim /usr/local/php/lib/php.ini 打开php配置文件找到cgi.fix_pathinfo配置项,这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的***,所以此项应该去掉注释并设置为0

  

  设置完毕保存并退出

  另外注意一个地方就是php.ini配置文件的位置可以在编译前配置参数中设置,编译参数可以写成:--with-config-file-path=/usr/local/php 这样的话php就回去指定的目录下读取php.ini配置文件,如果不加这个参数默认位置就是php安装目录下的lib目录,具体也可以在phpinfo()输出界面查看,如果php.ini放到其他位置,php读取不到,那么所有的配置修改后都是不生效的,这点要注意

  此时首先应该创建web用户:

groupadd www-datauseradd -g www-data www-data

  然后网上一些教程说让修改php-fpm.conf添加以上创建的用户和组,这时候使用 vim /usr/local/etc/php-fpm.conf 打开文件后找不到官方所提示的位置:

  

  如果此时随便在一个位置添加,那么接下来启动php-fpm的时候,会报目录找不到的错误,所以不要在php-fpm.conf中添加用户和组,这个时候翻到php-fpm.conf最后一行会发现如下内容(如果编译时添加--prefix选项以下位置会自动补全,默认是下面是空的,要注意):

  

  这里引入了php-fpm.d目录下所有的conf配置文件,但是NONE需要修改为我们的实际目录:/usr/local

  

  默认情况下etc/php-fpm.d/下有一个名为www.conf.defalut的配置用户的文件,执行下面命令复制一个新文件并且打开:

cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.confvim /usr/local/etc/php-fpm.d/www.conf

  默认user和group的设置为nobody,将其改为www-data

  

  修改完成之后,保存并退出,然后执行以下命令启动php-fpm服务:

/usr/local/bin/php-fpm

  启动完毕之后,php-fpm服务默认使用9000端口,使用 netstat -tln |grep 9000 可以查看端口使用情况:

  

  9000端口正常使用,说明php-fpm服务启动成功

  然后执行 vim /usr/local/nginx/nginx.conf 编辑nginx配置文件,具体路径根据实际的nginx.conf配置文件位置编辑,下面主要修改nginx的server {}配置块中的内容,修改location块,追加index.php让nginx服务器默认支持index.php为首页:

  

  然后配置.php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的,此时去掉注释并修改为以下内容:

  

  这里面很多都是默认的,root是配置php程序放置的根目录,主要修改的就是fastcgi_param中的/scripts为$document_root

  修改完上面的,回到nginx.conf第一行,默认是#user nobody; 这里要去掉注释改为user www-data;或者user www-data www-data;表示nginx服务器的权限为www-data

  修改完这些保存并退出,然后重启nginx:

/usr/local/nginx/nginx -s stop/usr/local/nginx/nginx

  接下来编辑一个测试的php程序,在nginx下的html目录下创建info.php文件,打印一下php配置:

  然后打开浏览器输入对应的地址进行访问,看到输出页面,说明nginx和php都配置成功了:


配置 文件 位置 目录 参数 注释 服务 编译 用户 接下来 内容 官方 就是 情况 时候 端口 进程 管理 成功 一行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳恒合互联网络科技有限公司 科技创新与互联网经济 朗涯互联网科技 极限挑战互联网科技 西安互联网科技公司 上游互联网科技 江阴互联网智能科技产品进口 注册互联网科技公司经营范围大全 成都互联网科技公司工作好不好 朱啸虎曾投资哪些互联网科技企业 世界互联网领先科技成果获奖 徐州市互联网科技有限公司 保险科技服务互联网营销体系 互联网第三次科技革命特征 江苏苏星互联网科技有限公司 中天科技中国工业互联网 兰石爱特工业互联网科技分公司 同城互联网络科技 第三届互联网大会安防黑科技 六子台科技互联网展会 山东特亿宝互联网科技有限公司 互联网科技工作委员会 互联网科技作文 广西拼得多互联网科技有限公司 随着互联网科技发展 科技与互联网哪个更好 玉溪新华互联网科技好不好 上海互联网科技公司ppt 神州科技互联网有限公司 银川新华互联网科技学校原画
0