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 course
configure
can only be more than before but not less. If you forget the previousconfigure
(no one will remember it for sure), check phpinfo
php -i | grep configure
Replace it to get the previousconfigure
command
php -i | grep configure | sed -e "s/Configure Command => //; s/'//g"
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 executingphp -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 thaterror.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