http://blog.csdn.net/liuxinmingcode/article/details/50319145

http://www.jb51.net/article/109228.htm

centos7 下安装nginx,mysql都很方便,直接使用 yum install就可以。

php添加源也可以使用yum安装。但有时会用到双php,所以手工安装。

LNMP

FastCGI 是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。

HTTP server 是 Apache,nginx等,而动态语言包括php。

Nginx -> PHP-FastCGI -> PHP

Nginx中根据需求配置调用不同的PHP-FastCGI的访问端口,即可实现不同版本PHP共存了。

一、已有php5

二、安装php7

1、下载 php.net (wget...) 解压 (tar zxvf...)

2、安装依赖

yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel 
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel
gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

3、配置

  ./configure 默认配置 可添加修改

  可用 ./configure -h 查看所有选项

  7.3.3 的参见 https://www.cnblogs.com/mitang/p/10625444.html

3.1、设置不同的安装目录,共存

  安装目录 –prefix=/usr/local/php7 #默认/usr/local/php, 多版本共存,需要修改一下

  配置文件 --with-config-file-path= #相应的变化,默认 /etc/php 可以改到安装目录下etc目录

3.2、添加模块 -with-... 即可,重要是开启fpm -enable-fpm等

3.3、7.1要求openssl版本,需要先升级openssl, (openssl version -a 查看openssl目录)

--with-openssl=/usr/local/ssl

update: centos7 + php7.2 需要设置--with--openssl-dir=/usr... 才通过
7.3.3 默认安装的libzip也出错,手工重新安装。(7.3出现多个问题)
./configure
--prefix=/alidata/server/php71
--with-config-file-path=/alidata/server/php71/etc
--with-config-file-scan-dir=/alidata/server/php71/etc/php.d
--enable-zip
--enable-inline-optimization
--enable-sockets
--enable-soap
--enable-session
--enable-opcache
--enable-mysqlnd
--enable-fpm
--disable-fileinfo
--enable-mbstring
--with-mcrypt #7.3.3 configure -h 已经没有该设置项
--with-mhash
--with-mysqli
--with-pdo-mysql
--with-gd
--with-jpeg-dir #jpeg修改支持
--with-freetype-dir #freetype 字体支持?
--with-iconv
--with-zlib
--with-curl
--with-openssl
--with-openssl-dir=/usr/local/ssl

4、编译 make 即可,可能会报错:make: *** [sapi/cli/php] error 1 ,使用

 make ZEND_EXTRA_LIBS='-liconv'

5、安装

make install 

6、配置文件

6.1、php.ini 从源代码目录下 到设定的配置目录(见3.1 另见补记4)

cp php.ini-production /路径/php7/etc/php.ini #复制php.ini配置

6.2、php-fpm配置文件修改(安装目录下,复制一份)

cp etc/php-fpm.conf.default etc/php-fpm.conf
cp etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf

6.3、修改监听端口 #注意多版本不相同

www.conf  配置 linsten 127.0.0.1:9001

6.4 修改php.ini

  修改时区 data.timezone = “Asia/Shanghai”

7 启动php-fpm

复制源文件目录下php-fpm启动脚本,(为了多版本共存,改下文件名),用脚本启动服务
cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm chmod  /etc/init.d/php-fpm
/etc/init.d/php7-fpm start #开启start 关闭stop

 此处启动方法7.2依然可以使用,但推荐直接下面方法:

/usr/local/php7/sbin/php-fpm #启动

pkill/killall php-fpm  #关闭

#/usr/local/php7/sbin/php-fpm -h 查看帮助,-i是信息,-v是版本等

8、环境变量 (可选: 将目录加入路径,直接可以使用命令,不需要在连接到 /usr/bin 等目录)

vi /etc/profile

在末尾追加

PATH=$PATH:/usr/local/php/bin
export PATH

执行命令使得改动立即生效

source /etc/profile

或者使用一步到位脚本:

echo -e '\nexport PATH=/路径/php7/bin:/路径/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile

9、Nginx配置FastCGI 访问 PHP7 (按需配置)

location ~ .*.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9001; #注意此端口,决定使用的php版本
fastcgi_index index.php;
include fcgi.conf;
}

即可正常访问。

补记

1、遇到 session 的开启问题,查网络是session.save_path 的设置问题,但我php5.5也是默认没设置

最后,直接清空 tmp目录后正常(1、so上有人说tmp满了(不太可能,2、session文件冲突)

2、php7默认模块比较少,需自己添加。

参考说明:https://www.cnblogs.com/HKUI/p/5137115.html

3、 init.d/php-fpm脚本 支持的操作:7.2以后使用安装目录下的 sbin/php-fpm

  • start,启动PHP的FastCGI进程。
  • stop,强制终止PHP的FastCGI进程。
  • quit,平滑终止PHP的FastCGI进程。
  • restart, 重启PHP的FastCGI进程。
  • reload, 重新加载PHP的php.ini。
  • logrotate, 重新启用log文件。

4、Php.ini位置修改方法如下:

php默认php.ini文件放在/usr/local/lib内,可以在编译的时候使用--with-config-file-path参数来修改php.ini的存放位置,例如你可以使用--with- config-file-path=/etc把它存放到/etc下面,然后可以从源码包中拷贝php.ini到/etc/php.ini。

注意,不要忘记修改时区 data.timezone = “Asia/Shanghai”

php7安装及和php5的共存的更多相关文章

  1. php7 安装 及和php5的共存

    http://blog.csdn.net/liuxinmingcode/article/details/50319145 LNMP FastCGI 是一个可伸缩地.高速地在HTTP server和动态 ...

  2. PHP7安装笔记

    PHP7安装笔记 时间 -- :: 喵了个咪 原文 http://www.hdj.me/php7-install-note 主题 PHP # 安装mcrypt yum install -y php-m ...

  3. 转:Windows下PHP7安装Redis和Redis扩展phpredis

    原文地址:Windows下PHP7安装Redis和Redis扩展phpredis Windows下PHP7安装Redis和Redis扩展phpredis 2016-06-08 17:53:00 标签: ...

  4. 在centos7中为php7安装redis扩展

    在此之前一直是用php5.6,安装redis也没遇到啥问题,嗖嗖的就安装上了 更新php版本到php7后,编译的时候报错 include <ext/standard/php_smart_str. ...

  5. mysql_connect() php7不支持,php5.5可以,是废弃函数

    天用了PHP7,发现和PHP5变化还挺大的,最大的就是MySQL的连接库变了. PHP5中使用mysql_connect()函数进行连接,但实际上,PHP5.5开始,MySQL就不推荐使用了,属于废弃 ...

  6. CentOS下源码安装Apache2.4+PHP5.4+MySQL5.5

    一.准备(把所有的源文件放在‘/home/yuanjun’目录下) apr http://mirror.bjtu.edu.cn/apache/apr/apr-1.4.6.tar.gz apr-util ...

  7. linux下php7安装memcached、redis扩展

    linux下php7安装memcached.redis扩展 1.php7安装Memcached扩展 比如说我现在使用了最新的 Ubuntu 16.04,虽然内置了 PHP 7 源,但 memcache ...

  8. centos系统中php7安装memcached 扩展

    #编译安装php-7.1.16 #wget http://cn2.php.net/distributions/php-7.1.16.tar.gz#tar -zxvf php-7.1.16.tar.gz ...

  9. centos7,php7 安装mysqli扩展

    首先安装MySQL https://www.cnblogs.com/manzb/p/9560403.html   php7安装后没有安装mysqli扩展的话: 安装mysqli扩展 1.到php文件e ...

随机推荐

  1. Hadoop2.5.2集群部署(完全分布式)

    环境介绍 硬件环境 CPU 4 MEM 4G 磁盘 60G  软件环境 OS:centos6.5版本 64位 Hadoop:hadoop2.5.2 64位 JDK: JDK 1.8.0_91 主机配置 ...

  2. EM算法浅析(一)-问题引出

    EM算法浅析,我准备写一个系列的文章: EM算法浅析(一)-问题引出 EM算法浅析(二)-算法初探 一.基本认识 EM(Expectation Maximization Algorithm)算法即期望 ...

  3. winform 端口serialport简用

    最近的一个小项目中需要从串口读取摄像机的应答指令,因此在程序中用到了SerialPort控件(使用SerialPort类也可以). 在SerialPort控件的属性列表中主要注意3个地方: (1)Po ...

  4. Python中运算符"=="和"is"的差别分析

    前言 在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识).python type()(数据类型)和value(值).is和==都是对对象进行比 ...

  5. 【iOS开发】多线程下NSOperation、NSBlockOperation、NSInvocationOperation、NSOperationQueue的使用

    http://blog.csdn.net/crycheng/article/details/21799611 本篇文章主要介绍下多线程下NSOperation.NSBlockOperation.NSI ...

  6. 面试题中经常遇到的SQL题:删除重复数据,保留其中一条

    如题,解决思路如下: 1.首先我们需要找出拥有重复数据的记录 ---以name字段分组 select Name,COUNT(Name) as [count] from Permission group ...

  7. 深夜浅谈我理解的DIV对SEO的影响

    又到了夜深人静的时候,对于以前的我来说每天的这个时候都是在敲一下代码啊或者看一会书,但是今夜突然间又一次心血来潮,想写一篇博文来记录一下这一段时间做SEO优化所遇到的问题. 其实对于我来说SEO并不是 ...

  8. 通过数据库评估存储设备IO性能-Oracle11gIO校准功能介绍

    通过数据库评估存储设备IO性能 ---------Oracle11g IO校准功能介绍 前言 I/O子系统是ORACLE数据库的一个重要组成部分,因为I/O操作是贯穿数据库管理全过程,它操作的对象包括 ...

  9. BZOJ4446 SCOI2015小凸玩密室(树形dp)

    设f[i][j]为由根进入遍历完i子树,最后一个到达的点是j时的最小代价,g[i][j]为由子树内任意一点开始遍历完i子树,最后一个到达的点是j时的最小代价,因为是一棵完全二叉树,状态数量是nlogn ...

  10. dva的基本用法

    dva是一个状态管理工具,整合了redux,redux-saga,react-router,fetch等框架,目前只能用于react的状态管理 1. dva的models dva的主要作用还是整合了r ...