nginx下安装php7+php5

yipeiwu_com6年前PHP代码库

起步

之前在服务器搭建了lamp环境,想换用性能更强的nginx作为服务器软件,又想将php5升级为php7.

安装nginx无需赘述:sudo apt-get install nginx,启动ng前修改apache的端口。

安装php7

源码在http://php.net/downloads.php 下载,并解压。

复制代码 代码如下:
# cd php7***
# ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-mcrypt=/usr/include --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-iconv --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache

# make
# make install


为不与5冲突,文件夹都用php7,安装过程中报错的安装响应的依赖。

对接nginx

nginx本身不能处理php脚本,需要发给php解释器处理。nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx。

复制代码 代码如下:
# cp php.ini-production /usr/local/php7/etc/php.ini
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
# chmod +x /etc/init.d/php7-fpm
# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

启动php-fpm

复制代码 代码如下:
# service php7-fpm start

中途如遇到日志文件路径不存在就手动创建并给予写的权限。

复制代码 代码如下:
# service php7-fpm start
Starting php-fpm [07-Apr-2016 11:16:11] ERROR: [pool www] cannot get gid for group 'nobody'
[07-Apr-2016 11:16:11] ERROR: FPM initialization failed
 failed

遇到这个错误时,要添加个nobody组groupadd nobody再重新启动。

nginx的配置

这是访问php文件是变成下载文件,因为ng并未配置响应处理。

location ~ \.php$ {
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include    fastcgi_params;
    }

相关文章

PHP的构造方法,析构方法和this关键字详细介绍

一.什么是构造方法    构造方法是类的一种特殊的方法,它的主要作用是完成对新对象初始化.    特点:1. &nb...

PHP实现链表的定义与反转功能示例

本文实例讲述了PHP实现链表的定义与反转功能。分享给大家供大家参考,具体如下: PHP定义链表及添加、移除、遍历等操作: <?php class Node { pr...

使用PHPStorm+XDebug搭建单步调试环境

使用PHPStorm+XDebug搭建单步调试环境

PHP是一个解释执行的语言,一般来说,进行调试的时候,只要通过使用 var_dump 或者 var_export 两个函数,就可以得到PHP中变量的值,达到调试的地步,但是对于大型项目,...

PHP简单选择排序算法实例

简单的选择排序算法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换 复制代码 代码如下: <?php...

PHP实现懒加载的方法

本文实例讲述了PHP实现懒加载的方法。分享给大家供大家参考。具体分析如下: 寻常php的加载是通过include(),require()等方法来加载外部文件,之后再通过实例调用方法或直接...