Table des matières
1 Créez un utilisateur php et un groupe d'utilisateurs, et téléchargez le code source php7 depuis github
2 Configuration des paramètres de compilation de PHP7 (ps : je posterai les slash ci-dessous, vous pouvez les copier directement)
3 Commencez à compiler et à installer PHP7
4 Étape facultative : exécutez la commande make test pour tester
5 Vérifiez le répertoire d'installation de PHP7 après une compilation réussie
6 Commencez à configurer les fichiers de configuration PHP7 php.ini, php-fpm.conf, www.conf et les scripts php-fpm
7 Ajouter la variable d'environnement de php
8 Définir le répertoire des journaux PHP et le répertoire du fichier de processus php-fpm (php-fpm.sock)
9 Configurez le démarrage de PHP et testez si le fichier de configuration est correct
10 Démarrez le service php
11 Afficher les informations sur la version PHP7
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 ?

Jun 15, 2021 am 09:26 AM
php7

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
Copier après la connexion
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
Copier après la connexion
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
Copier après la connexion

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
Copier après la connexion
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
Copier après la connexion
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
Copier après la connexion
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
Copier après la connexion
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
Copier après la connexion

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Apr 02, 2024 pm 07:39 PM

Pour résoudre le problème du plugin n'affichant pas installé dans PHP 7.0 : Vérifiez la configuration du plugin et activez le plugin. Redémarrez PHP pour appliquer les modifications de configuration. Vérifiez les autorisations du fichier du plugin pour vous assurer qu'elles sont correctes. Installez les dépendances manquantes pour garantir le bon fonctionnement du plugin. Si toutes les autres étapes échouent, reconstruisez PHP. D'autres causes possibles incluent des versions de plugin incompatibles, le chargement d'une mauvaise version ou des problèmes de configuration PHP.

Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Mar 22, 2023 am 09:30 AM

En php5, nous pouvons utiliser la fonction fsockopen() pour détecter le port TCP. Cette fonction peut être utilisée pour ouvrir une connexion réseau et effectuer certaines communications réseau. Mais en php7, la fonction fsockopen() peut rencontrer certains problèmes, comme ne pas pouvoir ouvrir le port, ne pas pouvoir se connecter au serveur, etc. Afin de résoudre ce problème, nous pouvons utiliser la fonction socket_create() et la fonction socket_connect() pour détecter le port TCP.

Comment installer l'extension mongo dans php7.0 Comment installer l'extension mongo dans php7.0 Nov 21, 2022 am 10:25 AM

Comment installer l'extension mongo dans php7.0 : 1. Créez le groupe d'utilisateurs et l'utilisateur mongodb ; 2. Téléchargez le package de code source mongodb et placez le package de code source dans le répertoire "/usr/local/src/" ; Entrez le répertoire « src/ » ; 4. Décompressez le package de code source ; 5. Créez le répertoire de fichiers mongodb ; 6. Copiez les fichiers dans le répertoire « mongodb/ » 7. Créez le fichier de configuration mongodb et modifiez la configuration.

Comment installer et déployer php7.0 Comment installer et déployer php7.0 Nov 30, 2022 am 09:56 AM

Comment installer et déployer php7.0 : 1. Accédez au site officiel de PHP pour télécharger la version d'installation correspondant au système local ; 2. Extrayez le fichier zip téléchargé dans le répertoire spécifié 3. Ouvrez la fenêtre de ligne de commande et accédez à ; le répertoire "E:\php7" Exécutez simplement la commande "php -v".

Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Apr 09, 2024 pm 01:33 PM

Les solutions courantes pour les environnements de serveur PHP consistent à s'assurer que la version correcte de PHP est installée et que les fichiers pertinents ont été copiés dans le répertoire du module. Désactivez SELinux temporairement ou définitivement. Vérifiez et configurez PHP.ini pour vous assurer que les extensions nécessaires ont été ajoutées et configurées correctement. Démarrez ou redémarrez le service PHP-FPM. Vérifiez les paramètres DNS pour les problèmes de résolution.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Lequel est le meilleur, php8 ou php7 ? Lequel est le meilleur, php8 ou php7 ? Nov 16, 2023 pm 03:09 PM

Par rapport à PHP7, PHP8 présente certains avantages et améliorations en termes de performances, de nouvelles fonctionnalités et améliorations de la syntaxe, du système de types, de la gestion des erreurs et des extensions. Cependant, le choix de la version à utiliser dépend de vos besoins spécifiques et des circonstances du projet. Introduction détaillée : 1. Amélioration des performances, PHP8 introduit le compilateur Just-in-Time (JIT), qui peut améliorer la vitesse d'exécution du code ; 2. Nouvelles fonctionnalités et améliorations de la syntaxe, PHP8 prend en charge la déclaration des paramètres nommés et des paramètres facultatifs, création de fonctions L'appel est plus flexible ; des classes anonymes, des déclarations de propriétés de type, etc. sont introduites.

Pourquoi une erreur se produit-elle lors de l'installation d'une extension à l'aide de PECL dans un environnement Docker? Comment le résoudre? Pourquoi une erreur se produit-elle lors de l'installation d'une extension à l'aide de PECL dans un environnement Docker? Comment le résoudre? Apr 01, 2025 pm 03:06 PM

Causes et solutions pour les erreurs Lors de l'utilisation de PECL pour installer des extensions dans un environnement Docker Lorsque nous utilisons un environnement Docker, nous rencontrons souvent des maux de tête ...

See all articles