升级php版本从7.1.0到7.2.5

upgrading-php7.1.0-to-php7.2.5

Posted by zwtisme on May 6, 2018

最近需要学习lavavel框架,框架需要php7.1.10以上的版本,所以将阿里云机器上的php进行升级,这里记录一下升级的过程。

下载并安装php7.2.5

1.下载安装文件

-O:表示将下载后的文件进行重命名

[root@iZwz9i8fd8lio2yh3oerizZ bmsource]# wget http://am1.php.net/get/php-7.2.5.tar.bz2/from/this/mirror -O php-7.2.5.tar.bz2

解压安装文件

[root@iZwz9i8fd8lio2yh3oerizZ bmsource]# tar -xvf php-7.2.5.tar.bz2 

2.获取7.1.0版本的configure

这次只是php版本的升级,希望所有的扩展需求同7.1.0版本的,所以这里获取一下7.1.0安装的配置信息。

[root@iZwz9i8fd8lio2yh3oerizZ bmsource]# php -i|grep configure
Configure Command =>  './configure'  '--prefix=/usr/local/php '--with-apxs2=/www/bin/apxs' '--with-curl' '--with-freetype-dir' '--with-gd' '--with-gettext' '--with-iconv-dir' '--with-kerberos' '--with-libdir=lib64' '--with-libxml-dir' '--with-mysqli' '--with-openssl' '--with-pcre-regex' '--with-pdo-mysql' '--with-pdo-sqlite' '--with-pear' '--with-png-dir' '--with-xmlrpc' '--with-xsl' '--with-zlib' '--enable-fpm' '--enable-bcmath' '--enable-libxml' '--enable-inline-optimization' '--enable-gd-native-ttf' '--enable-mbregex' '--enable-mbstring' '--enable-opcache' '--enable-pcntl' '--enable-shmop' '--enable-soap' '--enable-sockets' '--enable-sysvsem' '--enable-xml' '--enable-zip'

3.完成安装

通过上面获取到的配置可知,7.1.0版本的安装位置为/usr/local/php,所以将新版本安装到/usr/local/php7.2.5

[root@iZwz9i8fd8lio2yh3oerizZ bmsource]# cd php-7.2.5
[root@iZwz9i8fd8lio2yh3oerizZ bmsource]#  ./configure --prefix=/usr/local/php7.2.5 --with-apxs2=/www/bin/apxs  --with-curl  --with-freetype-dir  --with-gd  --with-gettext  --with-iconv-dir  --with-kerberos  --with-libdir=lib64  --with-libxml-dir   --with-mysqli  --with-openssl  --with-pcre-regex  --with-pdo-mysql  --with-pdo-sqlite  --with-pear  --with-png-dir  --with-xmlrpc  --with-xsl  --with-zlib  --enable-fpm  --enable-bcmath  --enable-libxml  --enable-inline-optimization  --enable-gd-native-ttf  --enable-mbregex  --enable-mbstring  --enable-opcache  --enable-pcntl  --enable-shmop  --enable-soap  --enable-sockets  --enable-sysvsem  --enable-xml  --enable-zip
[root@iZwz9i8fd8lio2yh3oerizZ php-7.2.5]#  make && make install

修改配置

1.php.ini

因为在configure的时候加了--with-apxs2=/www/bin/apxs配置,所以php安装完成后会自动更新/www/modules/libphp7.so。 这时新安装的目录中还没有php.ini配置文件,可以将原来的配置文件复制过来。

[root@iZwz9i8fd8lio2yh3oerizZ php-7.2.5]# cp /usr/local/php/lib/php.ini /usr/local/php7.2.5/lib/php.ini

2.环境变量

使用php -v查看版本,发现还是之前的版本,此时需要修改PATH变量,将php路径修改为新版本的路径。

[root@iZwz9i8fd8lio2yh3oerizZ ~]# php -v
PHP 7.1.0 (cli) (built: May  5 2018 15:38:09) ( ZTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

查看当前PATH变量信息。

[root@iZwz9i8fd8lio2yh3oerizZ redis-3.1.2]# env |grep PATH
PATH=/usr/local/php/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

方法1:export直接设置,注意这里是替换原来php的目录

[root@iZwz9i8fd8lio2yh3oerizZ redis-3.1.2]# export PATH='/usr/local/php7.2.5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin'

方法2:如果以前环境变量还没有,可以修改/etc/profile文件,在最后一行加入配置export PATH="/usr/local/php7.2.5/bin:$PATH",表示在原有设置的基础上增加新的设置。

[root@iZwz9i8fd8lio2yh3oerizZ redis-3.1.2]# vim /etc/profile

重新编译第三方扩展

如果使用了原php版本编译的扩展,因为php升级了,所以相应的扩展也需要重新编译。

1.redis扩展

php-redis扩展

注意:phpize与php-config需要使用新版本的。

[root@iZwz9i8fd8lio2yh3oerizZ bmsource]# tar -xvf redis-3.1.2.tgz 
[root@iZwz9i8fd8lio2yh3oerizZ bmsource]# cd redis-3.1.2
[root@iZwz9i8fd8lio2yh3oerizZ redis-3.1.2]# phpize
[root@iZwz9i8fd8lio2yh3oerizZ redis-3.1.2]# ./configure --with-php-config=/usr/local/php7.2.5/bin/php-config
[root@iZwz9i8fd8lio2yh3oerizZ redis-3.1.2]# make && make install

将新编译的扩展,复制到php加载的扩展目录。

[root@iZwz9i8fd8lio2yh3oerizZ redis-3.1.2]# cp /usr/local/php7.2.5/lib/php/extensions/no-debug-zts-20170718/redis.so /www/modules/redis7.2.5.so

修改php.ini使用新的扩展,extension=redis7.2.5.so

[root@iZwz9i8fd8lio2yh3oerizZ redis-3.1.2]# vim /usr/local/php7.2.5/lib/php.ini 

2.mcrypt扩展

注意:phpize与php-config需要使用新版本的。

[root@iZwz9i8fd8lio2yh3oerizZ redis-3.1.2] cd /bmsource/
[root@iZwz9i8fd8lio2yh3oerizZ bmsource]# wget http://pecl.php.net/get/mcrypt-1.0.1.tgz
[root@iZwz9i8fd8lio2yh3oerizZ bmsource]# tar -xvf mcrypt-1.0.1.tgz
[root@iZwz9i8fd8lio2yh3oerizZ bmsource]# cd mcrypt-1.0.1
[root@iZwz9i8fd8lio2yh3oerizZ mcrypt-1.0.1]# phpize
[root@iZwz9i8fd8lio2yh3oerizZ mcrypt-1.0.1]# ./configure --with-php-config=/usr/local/php7.2.5/bin/php-config
[root@iZwz9i8fd8lio2yh3oerizZ mcrypt-1.0.1]# make && make install

将新编译的扩展,复制到php加载的扩展目录。

[root@iZwz9i8fd8lio2yh3oerizZ mcrypt-1.0.1]# cp /usr/local/php7.2.5/lib/php/extensions/no-debug-zts-20170718/mcrypt.so /www/modules/mcrypt7.2.5.so

修改php.ini使用新的扩展,extension=mcrypt7.2.5.so

[root@iZwz9i8fd8lio2yh3oerizZ redis-3.1.2]# vim /usr/local/php7.2.5/lib/php.ini