Maison >développement back-end >Problème PHP >Que faire si php cgi se ferme automatiquement
Solution à l'arrêt automatique de PHP cgi : complétez d'abord l'enregistrement de "pthreadgc2.dll" ; puis copiez le répertoire xxfpm dans nginx ; puis modifiez le fichier de démarrage et d'arrêt "RunHiddenConsole" et enfin configurez Windows ; variables d'environnement.
Recommandé : "Tutoriel vidéo PHP"
Pour résoudre le problème que pose le processus php-cgi sous Windows se ferme souvent automatiquement
php-cgi a une gestion fpm sous Linux. Apache n'utilise pas le mode cgi, il apparaît donc sous Windows, lors de l'utilisation de nginx, la surveillance php-cgi activée est très instable. , plante souvent et s'arrête. Ce problème est désormais résolu. Notez que ce problème est résolu sous le système win32 bits. Bien que le système 64 bits fonctionne également sur le serveur, l'environnement est entièrement 32 bits.
À l'aide de ce gestionnaire de processus FastCGI appelé xxfpm : xxfpm
Après le téléchargement, exécutez xxfpm.exe Si une erreur se produit indiquant que pthreadgc2.dll est manquant, vous devez télécharger pthreads-win32 : http : //sourceware .org/pthreads-win32/
Copiez ce fichier dans C:/Windows/System32 (si le système est 64 bits, veuillez copier le fichier 32 bits dll dans le répertoire C : WindowsSysWOW64 );
Ensuite, ouvrez « Démarrer-Exécuter-Enter regsvr32 pthreadgc2.dll » et appuyez sur Entrée. Si une erreur est signalée, utilisez la méthode suivante.
Créez un nouveau fichier "registration.bat" avec le contenu :
@echo 开始注册 copy pthreadgc2.dll %windir%\system32\ regsvr32 %windir%\system32\pthreadgc2.dll /s @echo pthreadgc2.dll注册成功 @pause
Double-cliquez sur Registration.bat, et l'enregistrement de pthreadgc2.dll sera automatiquement terminé (si un système 64 bits installe un Fichier dll 32 bits, veuillez remplacer system32 par SysWOW64). Une fois terminé, vous pouvez supprimer ce fichier.
Ensuite, copiez le répertoire xxfpm téléchargé dans nginx :
Afin de faciliter la modification du fichier de démarrage et d'arrêt de RunHiddenConsole lors de l'installation de nginx (si Si vous avez configuré manuellement l'environnement Nginx dans Windows et l'avez installé comme ceci) :
Modifiez start_nginx.bat en :
@echo off REM Windows 下无效 REM set PHP_FCGI_CHILDREN=5
REM Le nombre maximum de requêtes traitées par chaque processus, ou définissez-le sur une variable d'environnement Windows
set PHP_FCGI_MAX_REQUESTS=1000 echo Starting PHP FastCGI… RunHiddenConsole D:/wnmp/nginx-1.10.2/xxfpm/bin/xxfpm.exe “D:/wnmp/php-5.6/php-cgi.exe -c D:/wnmp/php-5.6/php.ini” -n 5 -i 127.0.0.1 -p 9000 echo Starting nginx… RunHiddenConsole D:/wnmp/nginx-1.10.2/nginx.exe -p D:/wnmp/nginx-1.10.2 exit
Modifier stop_nginx.bat en :
@echo off echo Stopping nginx… taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI… taskkill /F /IM xxfpm.exe > nul exit
Maintenant, au démarrage de nginx, nous ouvrons 5 processus php-cgi en même temps car nous avons passé le paramètre -n à 5.
Si on en casse un manuellement, on constatera qu'il y en a un autre, toujours 5. xxfpm gérera php-cgi et le maintiendra dans 5 processus php-cgi pour empêcher le processus cgi de planter et de s'arrêter. Une autre chose à noter est que le port d'écoute doit être aligné sur le fichier de configuration nginx.
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!