Cet article vous présentera comment mettre à niveau ThinkPHP3.2.3 de php5 vers php7. 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.
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. Grâce à l'analyse de sécurité du réseau du client, de nombreuses vulnérabilités ont été trouvées, dont des centaines de vulnérabilités à haut risque dans Apache et PHP. il a parfois besoin d’être réparé de toute urgence. 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.
1. Mettez à niveau Apache, adresse de téléchargement http://httpd.apache.org/download.cgi, la version téléchargée est 2.4.33
La plus importante est le fichier de configuration comme indiqué ci-dessous :
apache chargeant le support php
PHPIniDir d:/GPS-LOCK/php/php.ini
LoadModule php7_module D : / GPS-LOCK/php/php7apache2_4.dll
J'ai rencontré de nombreux problèmes dans cette étape. Lorsque le chemin PHPiniDir était activé, Apache ne pouvait pas démarrer. Finalement, il a été constaté que le fichier php.ini faisait référence à php_ptheads. dll multi-thread. 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. 🎜>
Cela est dû au fait que php7 ne charge pas par défaut la DLL associée au serveur SQL
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, omettez simplement php_.dll pour ext et configurez-le comme indiqué ci-dessus. Actuellement, vous devez copier le fichier décompressé dans le répertoire phpext
3. Je pensais que le système pouvait fonctionner. normalement sous php7. Par conséquent, le projet utilise le multi-threading, ce qui nécessite que PHP supporte pthreads, mais il est sur le point de planter. 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.
Apprentissage recommandé :
Tutoriel vidéo phpCe 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!