欢迎各位来投稿,投稿邮箱 admin@veimx.com 欢迎各位爱好PHP,linux的朋友们加入我们

Linux 下编译安装php5.6和php7.2 实现两个版本的共存

Linux spade 756℃

前言:由于项目需要需要安装php7.2的版本 但是服务器上同时也跑着php5.6的程序。网上查找了下也没有类似的文章,故写此文章来做个笔记。

下面是需要安装的包

yum -y install make gcc gcc-c++ flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel gd freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel unzip libcap lsof

依赖包下载地址

http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

http://iweb.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

http://hivelocity.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2

http://iweb.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

 

libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换。 错误提示:configure: error: Please reinstall the iconv library.

[root@spade server]# tar zxf libiconv-1.14.tar.gz

[root@spade server]# cd libiconv-1.14

[root@spade libiconv-1.14]# ./configure –prefix=/usr/local/libiconv

[root@spade libiconv-1.14]# make -j 4 && make install

 

libmcrypt是加密算法扩展库。 错误提示:configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.

[root@spade server]# tar jxf libmcrypt-2.5.8.tar.bz2

[root@spade server]# cd libmcrypt-2.5.8

[root@spade libmcrypt-2.5.8]# ./configure

[root@spade libmcrypt-2.5.8]# make -j 4 && make install

 

Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。 mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存 错误提示:configure: error: “You need at least libmhash 0.8.15 to compile this program. http://mhash.sf.net/

 

[root@spade server]# tar zxf mhash-0.9.9.9.tar.gz

[root@spade server]# cd mhash-0.9.9.9

[root@spade mhash-0.9.9.9]# ./configure

[root@spade mhash-0.9.9.9]# make -j 4 && make install

 

指定库文件路径

[root@spade ~]# vim /etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/lib

/server/mysql/lib/libmysqlclient.so.20      /*这儿我的mysql是编译安装到这个路径的 如果你的不是就重新指定下路径*/

[root@spade ~]# ldconfig

mcrypt 是 php 里面重要的加密支持扩展库,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。

 

[root@spade server]# tar zxf mcrypt-2.6.8.tar.gz

[root@spade server]# cd mcrypt-2.6.8

[root@spade mcrypt-2.6.8]# ./configure

[root@spade mcrypt-2.6.8]# make -j 4 && make install

 

[root@spade mcrypt-2.6.8]# yum -y install php-pear

pear按照一定的分类来管理pear应用代码库,你的pear代码可以组织到其中适当的目录中,其他人可以方便的检索并分享到你的成果;pear不仅仅是一个代码仓库,它同时也是一个标准,使用这个标准来书写你的php代码,将会增强你的程序的可读性,复用性,减少出错的几率;Pear通过两个类为你搭建了一个框架,实现了诸如析构函数,错误捕获功能,你通过继承就可以使用这些功能

在PHP.NET官网上下载php7.2版本的压缩包解压到服务器上

[root@spade server]#cd /server/phpfiles/

[root@spade phpfiles]#tar -xvf php-7.2.6.tar.gz

[root@spade phpfiles]#cd php-7.2.6

在./configure 的时候确定我们需要安装的扩展都安装好了

[root@spade php-7.2.6]#./configure –prefix=/server/php72 –with-config-file-path=/server/php72/ –enable-fpm  –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-iconv-dir –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –enable-mbregex –enable-mbstring –with-mcrypt –enable-ftp –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –disable-fileinfo –enable-maintainer-zts

如果上面有报缺少什么包 就yum执行安装下(如 yum -y install openssl-devel )在继续上个步骤 …

执行完后开始编译安装

[root@spade php-7.2.6]# make -j 4 && make install 

当你看到如下信息表示已经安装成功


GeSHi Error: GeSHi could not find the language shell (using path /home/web/veimx.com/wp-content/plugins/wp-synhighlight/geshi/geshi/) (code 2)

现在我们来做配置

[root@spade php-7.2.6]# cp /server/php72/etc/php-fpm.conf.default /server/php72/etc/php-fpm.conf    ##php-fpm 

[root@spade php-7.2.6]# cp /server/phpfilse/php-7.2.6/php.ini-production /server/php72/php.ini  ##配置文件

[root@spade php-7.2.6]# cp /server/phpfilse/php-7.2.6/sapi/fpm/init.d.php-fpm /etc/init.d/php72-fpm  ##切记改名 避免覆盖了以前的php-fpm

[root@spade php-7.2.6]# chowd +x !$

[root@spade php-7.2.6]#chkconfig –add php72-fpm

[root@spade php-7.2.6]#chkconfig php72-fpm on 

//下面最总要的一部就是修改端口号

[root@spade php-7.2.6]# cp /server/php72/etc/php-fpm.d/www.conf.defaut  /server/php72/etc/php-fpm.d/www.conf

[root@spade php-7.2.6]# vim /server/php72/etc/php-fpm.d/www.conf 

listen = 127.0.0.1:9000  ## 在36行

修改成 listen = 127.0.0.1:9001

//启动php72-fpm

[root@spade php-7.2.6]# service php72-fpm start

输出 Starting php-fpm done  表示成功

来查看下端口

 

 

 

查看下phpinfo信息 现在 php5.6 和 php 7.2 就完成了 其实原理就是让nginx 监听不同的端口



转载请注明:巴蜀风博客-个人爱好博客-你的私人博客 » Linux 下编译安装php5.6和php7.2 实现两个版本的共存

喜欢 (0)or分享 (0)