php7安装及和php5的共存

php7安装及和php5的共存

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 查看所有选项

3.1、设置不同的

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

配置文件 --with-config-file-path=

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... 才通过
复制代码
./configure 
--prefix=/alidata/server/php71 
--with-config-file-path=/alidata/server/php71/etc 
--with-config-file-scan-dir=/alidata/server/php71/etc/php.d 
--with-mcrypt 
--with-mhash 
--with-mysqli 
--with-pdo-mysql 
--with-gd 
--with-iconv 
--with-zlib 
--with-curl 
--enable-zip 
--enable-inline-optimization 
--enable-sockets 
--enable-soap 
--enable-session 
--enable-opcache 
--enable-mysqlnd 
--enable-fpm 
--disable-fileinfo 
--enable-mbstring 
--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 从源代码目录下 到设定的配置目录(见补记4)

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

6.2、php-fpm配置文件 在安装目录(/usr/local/php7/)

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

7.1、 php-fpm启动脚本

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

此处启动方法7.2依然可以使用,但推荐直接使用安装目录下php-fpm命令

7.2、启动php7-fpm

/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

在末尾追加

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

或者使用一步到位脚本:

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

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

复制代码
location ~ .*.(php|php5)?$
        {
            fastcgi_pass  127.0.0.1:9001; #注意此端口
            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脚本 支持的操作:

  • 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”

相关推荐

如何在 CentOS 7 中在 HHVM 和 Nginx 之上安装 WordPress

HHVM (HipHop Virtual Machine) 是一个用于执行以 PHP 和 Hack 语言编写的代码的虚拟环境。它是由 Facebook 开发的,提供了当前 PHP 7 的大多数功能。要在你的服务器上运行 HHVM,你需要使用 FastCGI 来将 HHVM 和 Nginx 或 Apache 衔接起来,或者你也可以使用 HHVM 中的内置 Web 服务器 Proxygen。

暂无评论

微信扫一扫,分享到朋友圈

php7安装及和php5的共存