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. Après avoir tâtonné pendant trois ou quatre jours, j'ai finalement réussi la mise à niveau. Je vais maintenant partager avec vous le processus général.
Recommandé (gratuit) : PHP7
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 chose 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. chemin. Apache n'a pas pu démarrer. Finalement, il a été constaté que le fichier php.ini faisait référence au multithreading 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 les dll liées 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. Dans le fichier php.ini de php7, ext omet php_.dll. Configurez-le simplement comme indiqué ci-dessus. Actuellement, vous devez copier le fichier décompressé dans le répertoire phpext
3. Pensez. que le système peut fonctionner normalement sous php7. Le projet résultat Multi-threading est utilisé et PHP doit prendre en charge pthreads. 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 en communiquer et en 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!