nginx环境下配置支持php5.6(nginx+PHP)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

该文主要讲述在nginx环境下如何配置支持php5.6,主要分为三部分:配置安装PHP5.6.25,配置php-fpm组件,配置nginx支持PHP(请自行编译安装nginx 

1、配置安装PHP5.6.25

[root@localhost share]# cp php-5.6.25.tar.gz/usr/local

[root@localhost share]# cd /usr/local

[root@localhost local]# tar -zvxf php-5.6.25.tar.gz

[root@localhost local]# cd php-5.6.25

[root@localhost php-5.6.25]# ./configure--prefix=/usr/local/php --enable-fpm

要想使php支持php-fpm,只需要在编译的时候带上 --enable-fpm 就可以了

configure error xml2-config not found. pleasecheck your libxml2 installation

编译时报以上错误,此时安装相关包再重新编译安装即可。

[root@localhost php-5.6.25]# yum install libxml2

[root@localhost php-5.6.25]# yum install libxml2-devel

[root@localhost php-5.6.25]# ./configure--prefix=/usr/local/php --enable-fastcgi --enable-fpm

[root@localhost php-5.6.25]# make

[root@localhost php-5.6.25]# makeinstall

Installing shared extensions:    /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

Installing PHP CLI binary:        /usr/local/php/bin/

Installing PHP CLI man page:      /usr/local/php/php/man/man1/

Installing PHP FPM binary:        /usr/local/php/sbin/

Installing PHP FPM config:        /usr/local/php/etc/

Installing PHP FPM man page:      /usr/local/php/php/man/man8/

Installing PHP FPM status page:   /usr/local/php/php/php/fpm/

Installing PHP CGI binary:        /usr/local/php/bin/

Installing PHP CGI man page:      /usr/local/php/php/man/man1/

Installing build environment:     /usr/local/php/lib/php/build/

Installing header files:           /usr/local/php/include/php/

Installing helper programs:       /usr/local/php/bin/

 program: phpize

 program: php-config

Installing man pages:             /usr/local/php/php/man/man1/

 page: phpize.1

 page: php-config.1

Installing PEAR environment:      /usr/local/php/lib/php/

[PEAR] Archive_Tar    - installed: 1.4.0

[PEAR] Console_Getopt - installed: 1.4.1

[PEAR] Structures_Graph- installed: 1.1.1

[PEAR] XML_Util       - installed: 1.3.0

[PEAR] PEAR           - installed: 1.10.1

Wrote PEAR system config file at:/usr/local/php/etc/pear.conf

You may want to add: /usr/local/php/lib/phpto your php.ini include_path

/usr/local/php-5.6.25/build/shtool install-c ext/phar/phar.phar /usr/local/php/bin

ln -s -f phar.phar /usr/local/php/bin/phar

Installing PDO headers:           /usr/local/php/include/php/ext/pdo/

 

查看是否成功编译安装PHP

[root@localhost php-5.6.25]# php -v

PHP 5.3.3 (cli) (built: May 10 2016 21:39:50)

Copyright (c) 1997-2010 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2010 ZendTechnologies

[root@localhost php-5.6.25]# cd/usr/local/php/sbin/

[root@localhost sbin]# ls

php-fpm

[root@localhost sbin]# cd/usr/local/php/

[root@localhost php]# ls

bin  etc include  lib  php sbin  var

[root@localhost fpm]# cd/usr/local/php/etc/

[root@localhost etc]# ls

pear.conf  php-fpm.conf.default

[root@localhost etc]#

 

编译安装完成后PHP不具备配置文件php.ini,此时只需复制php.ini-production到 /usr/local/lib/php.ini即可,php.ini文件一般在/usr/local/lib/和/etc目录下

[root@localhost php-5.6.25]# cp php.ini-production/usr/local/lib/php.ini

也可以在编译时直接在 make install 后面加一个编译参数 --with-config-file-path=/usr/local/php/etc 指定自己的php.ini路径 然后从源码里面cp过去php.ini 源码里面有个php.ini-development和php.ini-production 如果不是本地调试模式的 选择后者

 

2、配置php-fpm组件

LNMP环境中的nginx是不支持php的,需要通过fastcgi插件来处理有关php的请求。而php需要php-fpm这个组件提供该功能。在php5.3.3以前的版本php-fpm是以一个补丁包的形式存在的,而php5.3.3以后只需在编译安装时使用–enable-fpm加载该模块即可,无需另行安装。

[root@localhost php-5.6.25]#/usr/local/php/sbin/php-fpm

[29-Aug-2016 17:36:05] ERROR: failed toopen configuration file '/usr/local/php/etc/php-fpm.conf': No such file ordirectory (2)

[29-Aug-2016 17:36:05] ERROR: failed toload configuration file '/usr/local/php/etc/php-fpm.conf'

[29-Aug-2016 17:36:05] ERROR: FPMinitialization failed

 

启动php-fpm发现缺乏配置文件/usr/local/php/etc/php-fpm.conf

此时只需复制php-fpm的配置文件在安装php时提供的配置文件的模版/usr/local/php/etc/php-fpm.conf.default到相应目录下即可,此处有两种方法,均可提供配置文件,即分别将末班复制到/usr/local/php/etc/或者 /usr/local/etc/并重命名为php-fpm.conf

①  

[root@localhost etc]# cd /usr/local/php/etc/

[root@localhost etc]# ls

pear.conf php-fpm.conf.default

[root@localhost etc]# cp/usr/local/php/etc/php-fpm.conf /usr/local/etc/php-fpm.conf

利用/usr/local/php/sbin/php-fpm启动FPM

[root@localhost etc]# /usr/local/php/sbin/php-fpm

②  

[root@localhost etc]# cp php-fpm.conf.defaultphp-fpm.conf

[root@localhost etc]# /usr/local/php/sbin/php-fpm

 

至此php-fpm配置完成,鉴于fpm是置于PHP和Nginx之间的一层应用,所以配置成服务开机自启。

下面配置php-fpm以服务形式启动

[root@localhost etc]# cd /usr/local/php-5.6.25/

[root@localhost php-5.6.25]# cp./sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm

[root@localhost php-5.6.25]# ll /etc/init.d/php-fpm

-rw-r--r-- 1 root root 2354 8月  3115:54 /etc/init.d/php-fpm

[root@localhost php-5.6.25]# chmod a+x/etc/init.d/php-fpm

[root@localhost php-5.6.25]# ll /etc/init.d/php-fpm

-rwxr-xr-x 1 root root 2354 8月  3115:54 /etc/init.d/php-fpm

[root@localhost php-5.6.25]# /etc/init.d/php-fpmstart

Starting php-fpm [31-Aug-2016 15:56:00]ERROR: unable to bind listening socket for address '127.0.0.1:9000': Addressalready in use (98)

[31-Aug-2016 15:56:00] ERROR: FPMinitialization failed

Failed

[root@localhost php-5.6.25]# netstat -tunlp |grep9000

tcp        0     0 127.0.0.1:9000             0.0.0.0:*                   LISTEN      4928/php-fpm       

 [root@localhost etc]# /etc/init.d/php-fpm stop

Gracefully shutting down php-fpm warning,no pid file found - php-fpm is not running ?

关闭php-fpm服务时发现报错,缺乏pid文件,解决方法为编辑配置文件,启用pid文件

[root@localhost etc]# vim php-fpm.conf

pid = run/php-fpm.pid

[root@localhost etc]# kill -INT `cat/usr/local/php/var/run/php-fpm.pid`

cat: /usr/local/php/var/run/php-fpm.pid: 没有那个文件或目录

[root@localhost etc]# /etc/init.d/php-fpm stop

Gracefully shutting down php-fpm warning,no pid file found - php-fpm is not running ?

尝试关闭服务时再次报错,手动建立php-fpm.pid文件即可

[root@localhost etc]# cd /usr/local/php/var/run/

[root@localhost run]# vim php-fpm.pid

[root@localhost run]# ls

php-fpm.pid

[root@localhost run]# service php-fpm stop

Gracefully shutting down php-fpm . done

[root@localhost run]# service php-fpm start

Starting php-fpm done

[root@localhost run]# netstat -tunlp |grep 9000

tcp       0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      3008/php-fpm       

[root@localhost run]# kill -INT `cat/usr/local/php/var/run/php-fpm.pid`

[root@localhost run]# netstat -tunlp |grep 9000

[root@localhost run]#  /etc/init.d/php-fpm start

Startingphp-fpm  done          

将服务添加到chkconfig列表,设置开机启动

[root@localhost run]# chkconfig --add php-fpm

[root@localhost run]# chkconfig php-fpm on

 

至此,php-fpm配置完成,下面提供两种控制方式

① PHP-FPM使用信号控制:

master进程可以理解以下信号

INT, TERM 立刻终止

QUIT 平滑终止

USR1 重新打开日志文件

USR2 平滑重载所有worker进程并重新载入配置和二进制模块

启动

[root@localhost run]# /usr/local/php/sbin/php-fpm

关闭:

[root@localhost run]# kill -INT `cat/usr/local/php/var/run/php-fpm.pid`

重启:

[root@localhost run]# kill -USR2 `cat/usr/local/php/var/run/php-fpm.pid`

②  

服务方式控制

Usage: /etc/init.d/php-fpm {start|stop|force-quit|restart|reload|status}

[root@localhost run]# service php-fpm start

Starting php-fpm done

[root@localhost run]# service php-fpm stop

Gracefully shutting down php-fpm . done

[root@localhost run]#  /etc/init.d/php-fpm restart

Gracefully shutting down php-fpm . done

Starting php-fpm done

[root@localhost run]#

 

3、配置nginx支持PHP

[root@localhost php-5.6.25]# cd /opt/nginx/conf/

[root@localhost conf]# vim nginx.conf

user  fieldyang;

error_log  logs/error.log;

pid        logs/nginx.pid;

events{

    use epoll;

    worker_connections  1024;

}

………

……..

        # pass the PHP scripts to FastCGIserver listening on 127.0.0.1:9000

        #

       location ~ \.php$ {

            root           /opt/nginx/sbin/html;

            fastcgi_pass   127.0.0.1:9000;

           fastcgi_index  index.php;

          fastcgi_param  SCRIPT_FILENAME$document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

创建phpinfo.php测试nginx是否支持PHP

[root@localhost conf]# cd /opt/nginx/sbin

[root@localhost sbin]# ls

html  nginx

[root@localhost sbin]# cd html/

[root@localhost html]# vim phpinfo.php

<?php phpinfo(); ?>

启动nginx

[root@localhost conf]# /opt/nginx/sbin/nginx

[root@localhost conf]# netstat -tnlp | grep nginx

tcp       0      0 0.0.0.0:8088                0.0.0.0:*                   LISTEN      4790/nginx         

[root@localhost conf]# kill -USR2 4790

[root@localhost conf]# kill -QUIT 4790

[root@localhost conf]# netstat -tnlp | grep nginx

tcp        0     0 0.0.0.0:8088               0.0.0.0:*                  LISTEN      5207/nginx         

[root@localhost conf]# kill -USR2 5207

[root@localhost conf]# netstat -tnlp | grep nginx

tcp       0      0 0.0.0.0:8088                0.0.0.0:*                   LISTEN      5207/nginx 

在网页上输入http://192.168.56.102:8088/phpinfo.php进行测试     

 

####################################################################

附:Nginx的启动关闭和重启

nginx可以通过信号指令控制进程,常用的信号有:

QUIT:处理完当前请求后关闭进程

HUP:重新加载配置,也就是关闭原有的进程,开启新的进程,此操作不会中断用户的访问请求,所以又称为平滑重启nginx

USR1:用于nginx的日志切换,也就是重新打开一个日志文件,每天要生成一个新的日志文件时,可以使用该信号控制。

USR2:平滑升级可执行程序

WINCH :从容关闭工作进程

常用的方法控制有:

①  kill –XXX主进程号

[root@localhost run]# ps -ef |grep nginx

root     2771     1  0 10:34 ?        00:00:00 nginx: master process/opt/nginx/sbin/nginx

503      2772  2771  010:34 ?        00:00:00 nginx: workerprocess

503      2773  2771  0 10:34 ?        00:00:00 nginx: worker process

503      2774  2771  0 10:34 ?        00:00:00 nginx: worker process

503      2775  2771  0 10:34 ?        00:00:00 nginx: worker process

root     3575  2730  0 12:08 pts/1    00:00:00 grep nginx

[root@localhost run]# kill -QUIT2771

[root@localhost run]# ps -ef |grep nginx

root     3578  2730  0 12:09 pts/1    00:00:00 grep nginx

[root@localhost run]# /opt/nginx/sbin/nginx

[root@localhost run]# ps -ef |grep nginx

root     3580     1  0 12:09 ?        00:00:00 nginx: master process/opt/nginx/sbin/nginx

503      3581  3580  0 12:09 ?        00:00:00 nginx: worker process

503      3582  3580  0 12:09 ?        00:00:00 nginx: worker process

503      3583  3580  0 12:09 ?        00:00:00 nginx: worker process

503      3584  3580  0 12:09 ?        00:00:00 nginx: worker process

root     3588  2730  0 12:10 pts/1    00:00:00 grep nginx

[root@localhost run]# kill -HUP3580

[root@localhost run]# ps -ef |grep nginx

root     3580     1  0 12:09 ?        00:00:00 nginx: master process/opt/nginx/sbin/nginx

503      3590  3580  0 12:10 ?        00:00:00 nginx: worker process

503      3591  3580  0 12:10 ?        00:00:00 nginx: worker process

503      3592  3580  0 12:10 ?        00:00:00 nginx: worker process

503      3593  3580  0 12:10 ?        00:00:00 nginx: worker process

root     3596  2730  0 12:10 pts/1    00:00:00 grep nginx

[root@localhost run]# kill -WINCH3580

[root@localhost run]# ps -ef |grep nginx

root     3580     1  0 12:09 ?        00:00:00 nginx: master process/opt/nginx/sbin/nginx

 

② kill -信号类型`cat /安装目录/logs/nginx.pid`

使用该方法时需要nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginxlogs目录下。有了pid件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:

kill -信号类型`cat /安装目录/logs/nginx.pid`

[root@localhost conf]# cd /opt/nginx/logs/

[root@localhost logs]# ls

access.log error.log  nginx.pid

[root@localhost logs]# ps -ef |grep nginx

root     3580     1  0 12:09 ?        00:00:00 nginx: master process/opt/nginx/sbin/nginx

503      3680  3580  0 12:28 ?        00:00:00 nginx: worker process

503      3681  3580  0 12:28 ?        00:00:00 nginx: worker process

503      3682  3580  0 12:28 ?        00:00:00 nginx: worker process

503      3683  3580  0 12:28 ?        00:00:00 nginx: worker process

root     3687  2730  0 12:28 pts/1    00:00:00 grep nginx

[root@localhost logs]# kill -HUP`cat /opt/nginx/logs/nginx.pid`

[root@localhost logs]# ps -ef |grep nginx

root     3580     1  0 12:09 ?        00:00:00 nginx: master process/opt/nginx/sbin/nginx

503      3689  3580  0 12:28 ?        00:00:00 nginx: worker process

503      3690  3580  0 12:28 ?        00:00:00 nginx: worker process

503      3691  3580  0 12:28 ?        00:00:00 nginx: worker process

503      3692  3580  0 12:28 ?        00:00:00 nginx: worker process

root     3694  2730  0 12:28 pts/1    00:00:00 grep nginx

[root@localhost logs]#

Linux服务器CentOs7部署Nginx1.21+Mysql5.7+php5.6 记录php项目部署CentOs7服务器,使用nginx+mysql 阅读详情

相关推荐

LNMP架构(nginx-1.20.1+php-7.1.33+ mysql-5.6.40)

Nginx+PHP+Mysql安装在公网IP为x.x.x.x的服务器上 需要下载安装的软件版本:nginx-1.20.1+php-7.1.33+mysql-5.6.40

weixin_43268590的博客 1403

nginx+php-fpm5.6搭建wordpress

这个重要,之前请求首页一直403,发现这个也会影响,具体原因应该是觉得nginx没有权限才会出现403。通过docker安装php-fpm安装之前提提前将配置文件提取出来,参考 文章。

weixin_44416039的博客 406

alpine创建lnmp环境alpine安装nginx+php5.6+mysql

alpine创建lnmp环境alpine安装nginx+php5.6+mysql

win10安装nginx+php,win10下nginx整合php

下载跳过拉,前面有 安装 lamp 基础的应该不打紧也都是下载 zip 后解压修改nginx配置文件 nginx.conf监听 8080端口listen 8080;增加 php入口文件location / {root html;#index index.html index.htm;index index.php index.html index.htm;}# 整合nginx...

weixin_29513663的博客 711

php创建一个nginx的master,nginx环境配置支持php5.6nginx+PHP

该文主要讲述在nginx环境下如何配置支持php5.6,主要分为三部分:配置安装PHP5.6.25配置php-fpm组件,配置nginx支持PHP(请自行编译安装nginx)1、配置安装PHP5.6.25[root@localhostshare]# cp php-5.6.25.tar.gz /usr/local[root@localhostshare]# cd /usr/local[root@l...

weixin_30412847的博客 270

centos7安装nginxphp5.5、mysql5.6

一、nginx 1、安装 yum install nginx 2、启动 systemctl start nginx 关闭:systemctl stop nginx 重启:systemctl restart nginx 检查状态:systemctl status nginx 3、测试 浏览器直接访问http://ip,应该会看到以下界面: 4、支持php 打开/etc/ng...

小唯一的博客 1575

ubuntu14.06.6上编译安装nginxphp5php-fmp环境

系统信息 cmp@ubuntu:~/work_dir$ uname -a Linux ubuntu 4.4.0-142-generic #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux php-5.6.7源码包下载地址 https://www.php.net/distributions/php-5.6.7.tar.gz 安装方案概述 nginx采用apt安装 php采用编译安装 1.ph

ronnie88597的博客 270

【转】php5.6 php-fpm nginx安装配置

今天发现有个网站是基于php版本的,然后上网收集资料后安装一遍试试。 一、先安装php依赖包。 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib...

ii0789789789的博客 538

php5.6 mysql nginx_centos7 nginx+php5.6+mysql安装配置

安装配置php 56安装php配置写在 php.ini,可在phpinfo()中查看//查找已安装yum list installed | grep php// php卸载yum -y remove php56*yum remove httpd* php*可用的资源:centos 安装php56+nginxnginx + php-fpmnginx安装sudo rpm -Uvh http://...

weixin_32950759的博客 251

linux php5.4 nginx配置,linux+php5.4+nginx+支持redis安装部署

系统环境[[emailprotected]~]# cat /etc/redhat-releaseCentOSrelease 6.5 (Final)Linuxlocalhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013x86_64 x86_64 x86_64 GNU/Linuxphp5.4 yum源r...

weixin_42591413的博客 429

安装配置PHP 5.6 + Nginx 1.8

安装配置 PHP 5.6 + Nginx 1.8

Liigo's blog 1万+

mysql 1.6安装_centos 6.6编译安装nginx1.6.2+mysql5.6.21+php5.6.3.docx

centos 6.6编译安装nginx1.6.2+mysql5.6.21+php5.6.3.docx还剩12页未读,继续阅读下载文档到电脑,马上远离加班熬夜!亲,喜欢就下载吧,价低环保!内容要点:至此,CentOS 6.6 编译安装 Nginx1.6.2+MySQL5.6.21+PHP5.6.3 教程完成。在最后一行添加:zend_extension=opcache.so #开启 opcode ...

weixin_39737492的博客 126

php环境配置nginx安装配置教程

首先先下载php php-5.6.30-Win32-VC11-x64压缩包 下载完了直接解压(最好解压在C盘根目录,到时候更好找) 解压完了点进去找到 php.ini-development配置文件 修改为php.ini 点进php.ini里面Ctrl+F 搜索extension_dir = "ext" 修改 "ext" 为 "(php解压路径)/ext" (我的路径...

aqmo5170的博客 263

php做星星字体,nginx+php

最近安装nginx+php,用于测试,因为第一次安装,所以在安装过程中遇到各种问题,网上搜索了许多关于这方面的资料。网上资料很多要么是不负责的copy,有误人之嫌,要么就是因版本过低,不适合目前版本的安装。经过多日摸索和群里热心Q友的帮助,终于成功地搭建了nginx+php.环境:centos6.5nginx1.6.2php5.5.10一、安装nginx1、安装nginx依赖包(gcc、opens...

weixin_28879085的博客 107

nginx php 源码安装,CentOS编译安装Nginx1.6PHP5.6

在Linux系统下,现在越来越多的LNMP(Linux + Nginx +MySQL +PHP)代替LAMP(Linux + Apache+MySQL +PHP)。主要是Nginx处理并发会更优越,也比较轻量级。记录了Linux(centos)lnmp环境搭建,lnmp编译安装nginx+php步骤:[root@Linux ~]# yum -y install gcc gcc-c++ autoco...

weixin_42389421的博客 150

NginxPHP整合问题

刚买了mac笔记本,积攒了两年的心血,终于狠下心买了,激动的我又狠狠地观赏了一番我的mac book pro,O(∩_∩)O哈哈~言归正传:这两天没事在mac上装了PHP nginx ,发现mac系统上自带,Apache与PHP7.1虽然已经安装好了,但是傲娇的我就是不想用这么高版本的PHP版本(其实是我的项目在PHP7.1上有很多的不兼容问题,所以我还是回归到PHP5.6)我发现mac终端很不友...

Run_Function_Online的博客 1113

php-redis5.4.x,linux+php5.4+nginx+支持redis安装部署

系统环境[iyunv@localhost~]# cat /etc/redhat-releaseCentOSrelease 6.5 (Final)[iyunv@localhost~]# uname -aLinuxlocalhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013x86_64 x86_64 x8...

weixin_39760389的博客 275

Ubuntu 安装php5.6

第一步: apt install python-software-properties -y 第二步:安装ppa源 apt install software-properties-common python-software-properties 第三步: LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/p...

孔叔叔的小屋 8393

编译安装php-5.6.30.tar.gz

1、查看当前系统版本 # cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 2、yum安装依赖的程序包 yum install zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel free...

ceiling的博客 9728
上一篇: Nginx的启动、关闭和重启
下一篇: 配置使用yum安装升级linux系统和软件
Field_Yang
博客等级 码龄11年 85粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值