Crash php5ts.dll et redémarrage apache

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Crash php5ts.dll et redémarrage apache

Re: Crash php5ts.dll et redémarrage apache

par Rukien » 18 juin 2015, 09:30

J'ai posté un ticket sur l'issue tracker de xDebug.
En parallèle, je vais essayer de comparer la configuration d'un xampp 5.6.8, qui reprend la même configuration que la mienne.

J'ai également eu vent d'un autre type de débugger directement intégré à PHP depuis la 5.6 : phpdbg. Je pense m'y intéresser si mes recherches ne donnent rien !

Re: Crash php5ts.dll et redémarrage apache

par @rthur » 17 juin 2015, 13:30

Malheureusement, j'arrive à court d'idée...
La version de PHP 5.6.10 étant très récente (sortie il y a moins d'une semaine), en dernier ressort j'essayerai de downgrader de version de PHP pour une qui aurait + de maturité.

Et sinon, effectivement, contacter le support/la communauté xdebug, peut être qu'ils auront des pistes plus prometteuses...

Re: Crash php5ts.dll et redémarrage apache

par Rukien » 17 juin 2015, 12:31

Oui, j'ai testé ce système un peu avant de te répondre ce matin. Il me propose la version que j'ai installé (2.3.2 5.6 VC11) !

Re: Crash php5ts.dll et redémarrage apache

par @rthur » 17 juin 2015, 12:22

As-tu essayé leur système pour identifier la bonne version de xdebug à installer :
http://xdebug.org/wizard.php

Re: Crash php5ts.dll et redémarrage apache

par Rukien » 17 juin 2015, 10:31

Salut, et merci pour la réponse,

J'avais déjà ajouté au PATH l'emplacement de PHP5.
MSSQL etait déjà désactivé : pour tout dire ma version de PHP a été compilée avec les options "--without-pdo-mssql" et "--without-mssql" suivantes :
cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--without-analyzer" "--with-pgo"
J'en ai quand même profité pour commenter toutes les lignes faisant allusion au paramétrage de l'extension MSSQL mais sans résultats.

En revanche, j'ai de plus en plus de raisons de penser que c'est xdebug qui pose problème.
Concrètement, c'est la seule extension parmi celles que j'ai installé moi même que je n'ai pas encore utilisé à fond sur cette config, j'utilise simplement var_dump qui affiche une callstack avec cette extension (j'ai déjà utilisé sqlsrv pour passer de mssql à sqlsrv au niveau des acces BDD justement, et aucun souci).

J'ai donc de nouveau désactivé purement et simplement l'extension, puis après un redémarrage du service apache la page fonctionne à nouveau. En réactivant xdebug PHP plante à nouveau.
Ce qui m’embête quand même pas mal car je retape du code pas forcément propre avec des appels de fonctions un poil alambiqués, que ça fonctionnait parfaitement sur le transfert des premières applications, et que la fonctionnalité de débuggage distant m’intéressait tout particulièrement. Autant dire que cette extension me fait gagner pas mal de temps !

Voilà la ligne qui me permet de charger xdebug (la DLL se trouve bien à l'emplacement spécifié) :
;zend_extension = "C:/php5.6.10/ext/php_xdebug-2.3.2-5.6-vc11.dll"
Visiblement la downgrade de xdebug ne solutionne pas le problème ; si quelqu'un a une suggestion je suis preneur, sinon je pense ouvrir un ticket sur leur support voir ce qu'ils en pensent.

Re: Crash php5ts.dll et redémarrage apache

par @rthur » 16 juin 2015, 22:27

Bonjour,

Généralement ce genre d'erreur arrive quand on a mélangé des versions de soft compilés avec des versions différentes de Visual C++ (par exemple VC6 mélangé avec VC9 ou VC10 ou VC11) ou un mélange entre Thread-Safe (TS) et Non Thread Safe (NTS).
D'après ton message, tu sembles n'avoir pris que du VC11 TS donc c'est bon.

En revanche ça peut venir d'une des extensions dll qui n'est pas la bonne.

J'ai trouvé 2 pistes :
- ajouter le répertoire de PHP5 dans son PATH : http://dandar3.blogspot.fr/2008/12/faul ... lting.html
- désactiver mssql : http://www.farinspace.com/php-error-fau ... me-php5ts/

Crash php5ts.dll et redémarrage apache

par Rukien » 16 juin 2015, 17:28

Hello phpfrance,

Je viens d'installer le combo Apache/PHP/MySQL sur un serveur Windows 2008 R2 Standard dans le but de mettre à jour des applications développées en PHP. L'installation s’était à priori bien passée, j'ai pu porter une/deux applications sans soucis d'infra...

En revanche, lorsque je cherche à bosser sur une application, PHP ne marche plus. Dans les journaux Windows, j'ai bien des messages qui m'informent de ceci :
Nom de l’application défaillante httpd.exe, version : 2.4.12.0, horodatage : 0x550b7a15
Nom du module défaillant : php5ts.dll, version : 5.6.10.0, horodatage : 0x5578c6e7
Code d’exception : 0xc0000005
Décalage d’erreur : 0x0000a7af
ID du processus défaillant : 0x66c
Heure de début de l’application défaillante : 0x01d0a832f791d300
Chemin d’accès de l’application défaillante : C:\Apache24\bin\httpd.exe
Chemin d’accès du module défaillant: C:\php5.6.10\php5ts.dll
ID de rapport : b3a45c8e-1426-11e5-a675-000c2934de47
Avant de voir ce message, j'avais d'abord pensé à un problème coté Apache car ce dernier redémarrait systématiquement avec le code erreur 255 dans les logs apache :
[Tue Jun 16 17:22:42.983680 2015] [mpm_winnt:notice] [pid 1116:tid 572] AH00428: Parent: child process 2784 exited with status 255 -- Restarting.
[Tue Jun 16 17:22:43.342492 2015] [mpm_winnt:notice] [pid 1116:tid 572] AH00455: Apache/2.4.12 (Win32) mod_authn_ntlm/1.0.0 PHP/5.6.10 configured -- resuming normal operations
[Tue Jun 16 17:22:43.342492 2015] [mpm_winnt:notice] [pid 1116:tid 572] AH00456: Server built: Mar 19 2015 18:23:40
[Tue Jun 16 17:22:43.342492 2015] [mpm_winnt:notice] [pid 1116:tid 572] AH80000: Distributed by: The Apache Haus
[Tue Jun 16 17:22:43.342492 2015] [mpm_winnt:notice] [pid 1116:tid 572] AH80001: Compiled with: Visual Studio 2008
[Tue Jun 16 17:22:43.342492 2015] [core:notice] [pid 1116:tid 572] AH00094: Command line: 'C:\\Apache24\\bin\\httpd.exe -d C:/Apache24'
[Tue Jun 16 17:22:43.342492 2015] [mpm_winnt:notice] [pid 1116:tid 572] AH00418: Parent: Created child process 3600
[Tue Jun 16 17:22:44.980544 2015] [mpm_winnt:notice] [pid 3600:tid 492] AH00354: Child: Starting 64 worker threads.
Bref, j'ai regardé sur internet à quoi tout cela correspondait, et il semblerait que PHP tente un accès mémoire non autorisé...
Voici la configuration du serveur :

* Windows Server 2008 R2 Standard 64bits
* Apache 2.4.12 32bits (VC11)
* PHP 5.6.10 32bits (VC11)
* MySQL 5.6.24 64bits

J'ai également ajouté l'extension php_xdebug-2.3.2-5.6 (vc11) et les extensions pdo_sqlsrv-ts et sqlsrv-ts pour PHP5.6 qui me permettent d'accéder à une base de données SQL server.

J'ai cru avoir résolu le problème après avoir désactivé puis downgradé l'extension xdebug en 2.2.7, mais le problème est subitement réapparu 1h environ après.

J'avoue ne plus trop savoir où chercher pour corriger ce problème, d'autant plus que l'application sur laquelle j'ai un plantage de PHP n'utilise pas de fonctionnalités d'extensions PHP. Si vous avez une piste, je suis preneur !

Merci de votre aide !