<.> Sauvegardez le php7.0 précédent (c'est très important, très important)Ne me demandez pas pourquoi je veux mettre à niveau, je ne suis pas une personne d'exploitation et de maintenance. Si vous n'êtes pas un responsable de l'exploitation et de la maintenance, et que vous êtes le serveur d'une entreprise, alors vous devez quand même être prudent. Je viens de remplir la fosse pendant une journée entière, j'enregistrerai simplement cette journée pitoyable
Si cette étape n'est pas effectuée, mettez à jour directement, je suis sûr que 90% de votre serveur raccrochera. pour pourquoi, parce que vous La configuration précédente a disparu et la configuration php7.1 nouvellement installée est nouvelle Sans diverses extensions, comment votre serveur fonctionnera-t-il ? Bien sûr, si vous n'avez installé aucune extension, félicitations, vous n'avez pas besoin de sauvegarderVérifiez la configuration de php7.0cp -P /usr/local/php /usr/local/php70
Puisque c'est le cas une mise à niveau, bien sûr<.>seulement. Il peut y en avoir plus mais pas moins qu'avant. Si vous oubliez le précédent
configure
(personne ne s'en souviendra avec certitude), consultez phpinfoconfigure
php -i | grep configure
Remplacez-le pour obtenir la
commande précédentephp -i | grep configure | sed -e "s/Configure Command => //; s/'//g"
configure
Téléchargez le code source de php7.1
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/
Commencez l'installation de 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
Cela termine essentiellement l'installation Simple, c'est très simple, mais des pièges arrivent
Démarrer. combler les fosses
Comme il s'agit d'une mise à jour, Bien entendu, la configuration sera la même qu'avant
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
L'écueil des extensions, toutes les extensions installées auparavant devront être réinstallées maintenant, et
, c'est très important, sinon vous le ferez toujours. Il y a des problèmes similaires à ceux suivants lors de l'exécution de 不能在以前的扩展包文件夹下安装,必须是新的扩展包文件夹
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
php -v
Si vous oubliez d'installer des extensions, prenez simplement un regardez ce qu'il y a dans le répertoire d'extension : [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
Parmi eux,
est intégré, et les autres sont tous nouvellement ajoutés. Je ne vous dirai pas comment installer d'autres extensions. Si vous avez installé beaucoup d'autres extensions, félicitations, vous pouvez vous entraîner à nouveauopcache.a opcache.so
Redémarrer php-fpm
systemctl restart php-fpm
Afficher l'état
systemctl status php-fpm -l
Les pièges restants, les pièges du code
C'est un peu gênant Si votre code n'est pas très rigoureux, on estime que
est déjà très gros maintenant, et le reste Il. il vous faudra beaucoup de temps pour corriger à nouveau votre propre code. Pourquoi est-ce que j'en parle ? Principalement parce que je change ce code de compatibilité toute la journée (le code est si mal écrit). Par exemple, une seule instance d’une classe créera un énorme gouffre. . . . . Bonne chance à vouserror.log