CentOS7下PHP5.5.38升级PHP7.2.2

2018-02-24 12:59:36

一,备份原先的php文件

查看现有php版本:

[root@localhost local]#php-vPHP5.5.38(cli) (built:Oct24 2017 15:58:09)

备份,由于不是覆盖安装,这里也可以不备份,但是,作为日常操作习惯来说,备份还是很有必要的。

[root@localhost ~]# cd /usr/local/[root@localhostlocal]# cp -a php php5538

二,下载解压PHP的最新稳定版7.2.2

[root@localhost ~]# cd soft[root@localhost soft]# wget http://cn2.php.net/distributions/php-7.2.2.tar.bz2[root@localhost soft]# tar xf php-7.2.2.tar.bz2[root@localhost soft]# cd php-7.2.2/

三,查看之前php的configure信息

升级自然要重新安装,那么之前的configure自然要知晓,怎么查看之前的configure信息呢,一般来说有两种方法,第一种,是通过phpinfo()信息:

第二种,通过命令的方式:

[root@localhost ~]# php -i | grep configureConfigure Command =>'./configure''--prefix=/usr/local/php''--with-config-file-path=/usr/local/php/etc''--with-config-file-scan-dir=/usr/local/php/conf.d''--enable-fpm''--with-fpm-user=www''--with-fpm-group=www''--with-mysql=mysqlnd''--with-mysqli=mysqlnd''--with-pdo-mysql=mysqlnd''--with-iconv-dir''--with-freetype-dir=/usr/local/freetype''--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''--with-gettext''--disable-fileinfo''--enable-opcache''--enable-intl''--with-xsl'

通过sed 将configure命令提取出来:

[root@localhost ~]# php -i | grep configure | sed -e "s/Configure Command => //; s/'//g"./configure  --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --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 --with-gettext --disable-fileinfo --enable-opcache --enable-intl --with-xsl

四,开始编译安装php7.2.2

[root@localhost php-7.2.2]# ./configure  --prefix=/usr/local/php7 \--with-config-file-path=/usr/local/php7/etc \--with-config-file-scan-dir=/usr/local/php7/conf.d \--enable-fpm \--with-fpm-user=www \--with-fpm-group=www \--with-mysql=mysqlnd \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-iconv-dir \--with-freetype-dir=/usr/local/freetype \--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 \--with-gettext \--disable-fileinfo \--enable-opcache \--enable-intl --with-xsl

configure的过程中会报一个警告信息:

configure: WARNING: unrecognized options: --with-mysql, --with-mcrypt, --enable-gd-native-ttf

表示php7.2.2不支持以上三个选项,删掉即可。

下面开始编译:

[root@localhost php-7.2.2]# make && make install

这个过程非常耗时,需要耐心等待。

这里会报一个错误:

/root/soft/php-7.2.2/ext/xmlrpc/libxmlrpc/encodings.c:65:undefinedreference to `libiconv_open'

/root/soft/php-7.2.2/ext/xmlrpc/libxmlrpc/encodings.c:73: undefined reference to `libiconv'

/root/soft/php-7.2.2/ext/xmlrpc/libxmlrpc/encodings.c:93: undefined reference to `libiconv_close'/root/soft/php-7.2.2/ext/xmlrpc/libxmlrpc/encodings.c:93:undefinedreference to `libiconv_close'collect2: error: ld returned1exit statusmake: *** [sapi/cli/php]Error1

报错提示缺少libiconv这个库,缺啥就装啥。

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gztar xf libiconv-1.13.1.tar.gzcdlibiconv-1.13.1/./configure --prefix=/usr/local/libiconvmake && make install

安装完后需要在configure时加入--with-iconv=/usr/local/libiconv参数,然后再次编译就不会报错了

五,复制修改配置文件,启动php-fpm

[root@localhostlocal]# cp php/etc/php.ini php7/etc/[root@localhostlocal]# cp php/etc/php-fpm.conf php7/etc/[root@localhost ~]# service php-fpm stop Gracefully shutting down php-fpm . done#关闭原来的php-fpm

修改php-fpm.conf

[global]pid =/usr/local/php7/var/run/php-fpm.piderror_log =/usr/local/php7/var/log/php-fpm.log

删除/usr/local/php目录

[root@localhostlocal]# rm -rf php

创建指向php7的软链接

[root@localhostlocal]# ln -sv php7 php

启动php-fpm

[root@localhost etc]# service php-fpm start Starting php-fpm [23-Feb-201820:48:41]NOTICE:PHPmessage:PHPWarning:PHPStartup:Unable to load dynamic library'/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/redis.so'(tried:/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/redis.so (/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/redis.so:undefinedsymbol:zval_used_for_init),/usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718//usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/redis.so.so (/usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718//usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/redis.so.so:cannot open shared objectfile:No such fileordirectory))inUnknown on line0[23-Feb-201820:48:41]ERROR:An another FPM instance seems to already listen on /tmp/php-cgi.sock[23-Feb-201820:48:41]ERROR:FPM initialization failed failed

报错了,提示redis扩展没有装。

六,安装redis扩展

下载地址

https://github.com/phpredis/phpredis/archive/php7.zip

unzip php7.zipcdsoft/phpredis-php7//usr/local/php7/bin/phpize./configure --with-php-config=/usr/local/php7/bin/php-configmake && make install

在php.ini中添加如下一行

extension=redis.so

重启php-fpm

[root@localhost etc]# service php-fpm restart Gracefully shutting down php-fpm .doneStarting php-fpmdone

查看php版本

[root@localhost etc]#php-vPHP7.2.2(cli) (built:Feb23 2018 19:25:46)(NTS)Copyright(c) 1997-2018ThePHPGroupZendEnginev3.2.0,Copyright(c) 1998-2018ZendTechnologies

查看phpinfo()

至此,php升级完成。


第二种,通过命令的方式:

[root@localhost ~]# php -i | grep configure



通过sed 将configure命令提取出来:

[root@localhost ~]# php -i | grep configure | sed -e "s/Configure Command => //; s/'//g"


php -i | grep configure | sed -e "s/Configure Command => //; s/'//g"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351

推荐阅读更多精彩内容