Maison >développement back-end >PHP7 >Comment mettre à niveau le serveur nginx de php5.5.7 vers php7 ?

Comment mettre à niveau le serveur nginx de php5.5.7 vers php7 ?

醉折花枝作酒筹
醉折花枝作酒筹avant
2021-06-15 09:26:492438parcourir

Cet article vous présentera comment mettre à niveau le serveur nginx de php5.5.7 vers php7 ? méthode. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Comment mettre à niveau le serveur nginx de php5.5.7 vers php7 ?

① Le serveur nginx, php et mysql sont tous installés, je souhaite donc mettre à jour php7 directement.

②Suivez l'article : https:// typecodes .com/web/centos7compilephp7.html?utm_source=tuicool&utm_medium=referral Lors de l'exécution de l'opération, quelque chose de différent apparaît au milieu.

③Référence de résolution de problèmes : http://blog.chinaunix.net/uid-25266990-id-2915395.html

Ligne de séparation------------ - ------------------------------------------------- - ------------------------------------------------- - ------------------------------------------------- - -----------

Je republierai l'étape 2 ci-dessous pour mon propre usage.

1 Créez un utilisateur php et un groupe d'utilisateurs, et téléchargez le code source php7 depuis github

Créez d'abord un utilisateur nommé php sans autorisations de connexion et un groupe d'utilisateurs nommé php, puis accédez à GitHub Téléchargez le package de code source php7.

#######新建php用户和php组
[root@typecodes ~]# groupadd -r php && useradd -r -g php -s /bin/false -d /usr/local/php7 -M php
######从GitHub下载php7安装包
[root@typecodes ~]# wget -c --no-check-certificate -O php7-src-master.zip https://github.com/php/php-src/archive/master.zip
######开始解压php7包
[root@typecodes ~]# unzip -q php7-src-master.zip && cd php-src-master
#####安装编译php7时需要的依赖包
[root@typecodes php-src-master]# yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel
2 Configuration des paramètres de compilation de PHP7 (ps : je posterai les slash ci-dessous, vous pouvez les copier directement)

Une fois les préparatifs terminés, commencez à configurer formellement les détails d'installation de php7 . Attention, vous devez d'abord supprimer le texte du commentaire ajouté après la barre oblique inverse "" ci-dessous ! ! !

######开始生成配置文件
[root@typecodes php-src-master]# ./buildconf
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
rebuilding aclocal.m4
rebuilding configure
rebuilding main/php_config.h.in
######开始配置
[root@typecodes php-src-master]# ./configure \
--prefix=/usr/local/php7 \                              [PHP7安装的根目录]
--exec-prefix=/usr/local/php7 \
--bindir=/usr/local/php7/bin \
--sbindir=/usr/local/php7/sbin \
--includedir=/usr/local/php7/include \
--libdir=/usr/local/php7/lib/php \
--mandir=/usr/local/php7/php/man \
--with-config-file-path=/usr/local/php7/etc \           [PHP7的配置目录]
--with-mysql-sock=/var/run/mysql/mysql.sock \           [PHP7的Unix socket通信文件]
--with-mcrypt=/usr/include \
--with-mhash \
--with-openssl \
--with-mysql=shared,mysqlnd \                           [PHP7依赖mysql库]              
--with-mysqli=shared,mysqlnd \                          [PHP7依赖mysql库]
--with-pdo-mysql=shared,mysqlnd \                       [PHP7依赖mysql库]
--with-gd \
--with-iconv \
--with-zlib \
--enable-zip \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--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 \                                      [允许php会话session]
--with-curl \                                           [允许curl扩展]
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache \                                      [使用opcache缓存]
--enable-fpm \
--enable-fastcgi \
--with-fpm-user=nginx \                                 [php-fpm的用户]
--with-fpm-group=nginx \                                [php-fpm的用户组]
--without-gdbm \
--disable-fileinfo
rrree
3 Commencez à compiler et à installer PHP7

Par rapport à la consommation importante de processeur et de mémoire liée à la compilation et à l'installation de MySQL, la compilation et l'installation de PHP7 sont beaucoup plus faciles et l'ensemble du processus prend environ une heure.

./configure
--prefix=/usr/local/php7 
--exec-prefix=/usr/local/php7
--bindir=/usr/local/php7/bin 
--sbindir=/usr/local/php7/sbin 
--includedir=/usr/local/php7/include 
--libdir=/usr/local/php7/lib/php 
--mandir=/usr/local/php7/php/man 
--with-config-file-path=/usr/local/php7/etc         
--with-mysql-sock=/var/run/mysql/mysql.sock 
--with-mcrypt=/usr/include 
--with-mhash 
--with-openssl 
--with-mysql=shared,mysqlnd   
--with-mysqli=shared,mysqlnd 
--with-pdo-mysql=shared,mysqlnd 
--with-gd 
--with-iconv 
--with-zlib 
--enable-zip 
--enable-inline-optimization 
--disable-debug 
--disable-rpath 
--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                                        
--with-jpeg-dir 
--with-freetype-dir 
--enable-opcache                                  
--enable-fpm 
--enable-fastcgi 
--with-fpm-user=nginx                                
--with-fpm-group=nginx                                 
--without-gdbm 
--disable-fileinfo

Voir l'image ci-dessous signifie que PHP7 a été compilé et installé ! (ps : Une erreur s'est produite lors de la compilation. Une référence non définie à `libiconv_open ne peut pas compiler PHP ;

Pour plus de détails sur la solution, voir le lien ci-dessus : Modifiez le Makefile vers la ligne 77 :

EXTRA_LIBS = .. ... -lcrypt

Ajoutez -liconv à la fin, par exemple :

EXTRA_LIBS = ..... -lcrypt -liconv

puis exécutez make. )

4 Étape facultative : exécutez la commande make test pour tester

Il s'agit d'une étape facultative, exécutez la commande make test. Une chose intéressante est : pendant le test, une connexion TCP sera établie avec une adresse IP 72.52.91.14, qui correspond au site officiel de PHP http://www.php.net.

5 Vérifiez le répertoire d'installation de PHP7 après une compilation réussie

Puisque vous devez communiquer avec MySQL, vous devez spécifiquement vérifier le répertoire de la bibliothèque d'extension lib après l'installation de PHP7 (/usr/local/php7 /lib/php/extensions/no-debug-non-zts-20141001/). Vous devez vous assurer qu'il existe au moins deux fichiers de bibliothèque dynamique mysqli.so et pdo_mysql.so, comme indiqué dans la figure ci-dessous.

6 Commencez à configurer les fichiers de configuration PHP7 php.ini, php-fpm.conf, www.conf et les scripts php-fpm

Vous pouvez copier le fichier de configuration compilé dans le répertoire de configuration PHP7 (/usr/local/php7/etc/), il est recommandé d'utiliser les trois fichiers de configuration PHP7 et le script de contrôle de service php-fpm compilés dans l'article "Configuration de php.ini, php-fpm et www.conf en PHP7 ".

[root@typecodes php-src-master]# make clean && make && make install
7 Ajouter la variable d'environnement de php

Ajouter le répertoire bin généré par la compilation php à la variable d'environnement du système Linux actuel

#######方法一:直接使用编译后未经优化处理的配置
[root@typecodes php-src-master]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@typecodes php-src-master]# cp /root/php-src-master/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@typecodes php-src-master]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@typecodes php-src-master]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
#######方法二:使用https://typecodes.com/web/php7configure.html文中的配置 
[root@typecodes php-src-master]# mv ~/php.ini /usr/local/php7/etc/php.ini && mv ~/php-fpm /etc/init.d/php-fpm
[root@typecodes php-src-master]# mv ~/php-fpm.conf /usr/local/php7/etc/php-fpm.conf && mv ~/www.conf /usr/local/php7/etc/php-fpm.d/www.conf
8 Définir le répertoire des journaux PHP et le répertoire du fichier de processus php-fpm (php-fpm.sock)

Parmi eux, définissez l'utilisateur et le groupe d'utilisateurs du répertoire de processus php-fpm sur nginx et créez un répertoire de session de session php.

[root@typecodes ~]# echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile
9 Configurez le démarrage de PHP et testez si le fichier de configuration est correct
#######设置PHP日志目录和php-fpm的运行进程ID文件(php-fpm.sock)目录
[root@typecodes ~]# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm
#######修改session的目录配置
[root@typecodes etc]# mkdir -p /var/lib/php/session
[root@typecodes etc]# chown -R nginx:nginx /var/lib/php
10 Démarrez le service php

Après avoir terminé les opérations ci-dessus, vous pouvez officiellement utiliser le php service. La commande pour démarrer le service de processus php est la suivante :

######配置开机自启动,增加到主机sysV服务
[root@typecodes php-src-master]# chmod +x /etc/init.d/php-fpm
[root@typecodes php-src-master]# chkconfig --add php-fpm
[root@typecodes php-src-master]# chkconfig php-fpm on
######测试PHP的配置文件是否正确合法
[root@typecodes sbin]# php-fpm -t
[03-May-2015 17:50:04] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successful

Ensuite, vous pouvez vérifier s'il a réussi grâce à la commande ps -aux|grep php (le nombre de processus php-fpm et l'utilisateur du processus nginx dans les images sont toutes deux déterminées par pm dans www.conf. Les valeurs de start_servers et user sont déterminées respectivement) :

11 Afficher les informations sur la version PHP7

Enfin, vous pouvez afficher le PHP actuel. informations de version via la commande php -v Vous pouvez voir sur la figure que la version actuelle de PHP7 est également utilisée. Le cache Zend OPcache est désactivé car la configuration zend_extension=opcache.so est ajoutée au fichier php.ini.

configure : error : xslt-config not found. Veuillez réinstaller la distribution libxslt >= 1.1.0

L'erreur suivante se produit lors de la compilation et de l'installation de PHP

./ configure :

configure : error : xslt-config not found. Veuillez réinstaller la distribution libxslt >= 1.1.0

Solution :

yum install libxslt-devel* - y

Apprentissage recommandé : Tutoriel vidéo php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer