Maison développement back-end PHP7 Parlons du chemin difficile de la mise à niveau de ThinkPHP3.2.3 de php5 vers php7

Parlons du chemin difficile de la mise à niveau de ThinkPHP3.2.3 de php5 vers php7

Mar 02, 2021 am 09:17 AM
php5 php7

Parlons du chemin difficile de la mise à niveau de ThinkPHP3.2.3 de php5 vers php7

Tout d'abord, ThinkPHP3.2.3 prend-il en charge php7 absolument ?

Sous Windows, le projet précédent a été déployé dans la version Apache2.4.17+php5.x car l'analyse de sécurité du réseau du client a détecté de nombreuses vulnérabilités, y compris des vulnérabilités à haut risque dans Apache et PHP, jusqu'à des centaines de fois. , il a un besoin urgent de réparation. S'il n'est pas réparé, il risque de fermer le site.

J'ai donc contacté le fournisseur du logiciel, qui a promis de coopérer avec la mise à niveau, mais n'a finalement pas réussi à mettre à niveau. La réponse donnée a été que ThinkPHP3.2.3 ne pouvait pas être déployé dans php7.

J'ai donc dû compter sur moi-même et j'ai tâtonné pendant trois ou quatre jours. Finalement, la mise à niveau a réussi. J'aimerais maintenant partager avec vous le processus général.

Recommandé (gratuit) : PHP7

1 Mettre à niveau Apache, adresse de téléchargement http://. httpd.apache.org/download.cgi, la version téléchargée est 2.4.33

La chose la plus importante est le fichier de configuration comme indiqué ci-dessous :

apache Load php support

PHPIniDir d:/GPS-LOCK/php/php.ini
LoadModule php7_module D:/GPS-LOCK/php/php7apache2_4.dll

Rencontré dans ce step Après de nombreux problèmes, Apache n'a pas pu démarrer lorsque le chemin PHPIniDir était activé. Finalement, il a été constaté que le fichier php.ini faisait référence au multi-threading php_ptheads.dll. Après plusieurs tentatives, le problème a été résolu.

2. Mise à niveau de php, adresse de téléchargement : https://windows.php.net/download/ Ce qui est téléchargé ici est la version 7.2.26,

Nous allons maintenant résumer les problèmes attendus lors de la mise à niveau. php7

1. Ici, vous devez installer la version compilée de la bibliothèque de classes vc++ correspondant à php7, vc_redist.x64.exe L'installation est vc15

2. 🎜>

Ceci est dû au fait que php7 ne charge pas la DLL associée au serveur SQL par défaut

3 Vous devez télécharger les pilotes Microsoft pour PHP pour SQL Server https://www. microsoft.com/en-us /download/details.aspx?id=20098, j'ai téléchargé la version 7.2

Modifiez le fichier d'emplacement comme suit

4 . Fichier php.ini dans php7, ext est omis

Configurez-le simplement comme indiqué ci-dessus. Actuellement, vous devez copier le fichier décompressé dans le répertoire

php_.dllphpext 3. Je pensais que le système pouvait fonctionner. normalement sous php7, mais le projet utilise le multi-threading, php doit prendre en charge pthreads, et il plante presque maintenant. Après avoir ajouté extension=pthreads au fichier php.ini, Apache ne peut pas redémarrer. Il s'avère que ptheads doit être exécuté en mode cli. L'adresse de téléchargement de ptheads est https://windows.php.net/downloads/pecl/releases/pthreads/

Décompressez le package de téléchargement

1. Mettez pthreadVC2. Le fichier dll est placé dans le répertoire racine de php

2. Copiez php_pthreads.dll dans le répertoire phpext

Démarrez à nouveau Apache et constatez qu'il ne peut pas être démarré. . Après avoir recherché de nombreuses informations, il s'avère que ptheads doit être exécuté en mode cli, ma solution est de créer deux fichiers de configuration php.ini, l'un pour que le site utilise php.ini et l'autre php-cli. ini que les ptheads peuvent utiliser. Le contenu du fichier est le même. À ce stade, la mise à niveau est enfin terminée.

Comme l'auteur n'est pas né dans une spécialisation PHP, il a fait de nombreux détours, mais la faille a finalement été corrigée. Si tout le monde rencontre également ce problème, vous pouvez communiquer et discuter ensemble

.

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
3 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)

Quelle est la différence entre php5 et php8 Quelle est la différence entre php5 et php8 Sep 25, 2023 pm 01:34 PM

Les différences entre php5 et php8 concernent les performances, la structure du langage, le système de types, la gestion des erreurs, la programmation asynchrone, les fonctions de bibliothèque standard et la sécurité. Introduction détaillée : 1. Amélioration des performances. Par rapport à PHP5, PHP8 présente une énorme amélioration des performances. PHP8 introduit un compilateur JIT, qui peut compiler et optimiser certains codes d'exécution à haute fréquence, améliorant ainsi la vitesse d'exécution. PHP8 introduit de nouvelles structures et fonctions de langage. PHP8 prend en charge les paramètres nommés, permettant aux développeurs de transmettre les noms des paramètres au lieu de l'ordre des paramètres, etc.

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 changer le port 80 en php5 Comment changer le port 80 en php5 Jul 24, 2023 pm 04:57 PM

Comment changer le port 80 dans php5 : 1. Modifiez le numéro de port dans le fichier de configuration du serveur Apache ; 2. Modifiez le fichier de configuration PHP pour vous assurer que PHP fonctionne sur le nouveau port ; 3. Redémarrez le serveur Apache et l'application PHP le fera. commencez à exécuter sur le nouveau port.

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 ...

See all articles