Home  >  Article  >  Operation and Maintenance  >  How to upgrade centos7 php7.0 to php7.1

How to upgrade centos7 php7.0 to php7.1

藏色散人
藏色散人forward
2021-06-19 16:28:132692browse

The following tutorial column from centos will introduce to you how to upgrade centos7 php7.0 to php7.1. I hope it will be helpful to friends in need!

Don’t ask me why I want to upgrade, I am not an operation and maintenance person. If you are not an operation and maintenance person, and you are a company's server, then you still have to be cautious. I just filled in the pit for a whole day. I will simply record this pitiful day

Back up the previous php7.0 (this is very important, very important)

If you have not done this step, upgrade directly, I am sure 90% of your server will hang up. As for why, because you The previous configuration is gone, and the newly installed php7.1 configuration is new. Without various extensions, how will your server run? Of course, if you have not installed any extensions, congratulations, you don’t need to back up

cp -P /usr/local/php /usr/local/php70

Check the configure of php7.0

Since it is an upgrade, of courseconfigure can only be more than before but not less. If you forget the previous configure (no one will remember it for sure), check phpinfo

 php -i | grep configure

How to upgrade centos7 php7.0 to php7.1

Replace it to get the previous configure command

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

How to upgrade centos7 php7.0 to php7.1

Download php7.1 source code

cd /usr/local/src
wget -c http://cn2.php.net/get/php-7.1.0.tar.gz/from/this/mirror -O php-7.1.0.tar.gz

tar -zxvf php-7.1.0.tar.gz
cd php-7.1.0/

Start installing 7.1

cd php-7.1.0

./configure  --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc --with-mhash --with-openssl --with-mcrypt --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --enable-opcache --enable-fpm

make 

make install

This basically completes the installation, simple, it is very simple, but there are pitfalls

Start Filling the pit

Since it is an upgrade, of course the configuration should be the same as before

cp /usr/local/php70/etc/php.ini /usr/local/php/etc/php.ini
cp /usr/local/php70/etc/php-fpm.conf /usr/local/php/etc/php-fpm.conf
cp /usr/local/php70/etc/php-fpm.d/www.conf /usr/local/php/etc/php-fpm.d/www.conf

The pitfall of extensions, whatever extensions were installed before, now have to be reinstalled, andCannot be installed under the previous expansion pack folder, it must be a new expansion pack folder, this is very important, otherwise you will have problems similar to the following if you keep executing php -v

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/memcached.so' - /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/memcached.so: cannot open shared object file: No such file or directory in Unknown on line 0

If you forget to install any extensions, just take a look at what is in the extension directory:

[root]$ /usr/local/php/bin/php-config --extension-dir
 /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303
[root]$  ls /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303

opcache.a opcache.so is built-in, and the others are All are new. I won’t tell you how to install other extensions. If you have installed a lot of other extensions, congratulations, you can practice again

Restart php-fpm

 systemctl restart php-fpm

View Status

systemctl status php-fpm -l

The remaining pitfalls, the pitfalls of the code

This is a bit embarrassing. If your code is not written very rigorously, it is estimated that error.log is now gone It's very big, and there will be a long time left before you have to fix your own code. Why do I bring this up? Mainly because I am changing this compatibility code all day long? (The code is so poorly written). For example, a single instance of a class will create a huge hole. . . . . Wish ya'll good luck

The above is the detailed content of How to upgrade centos7 php7.0 to php7.1. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete