janvier
2010
Windows et PHP … Une longue histoire d’humour
Rappel des faits : Windows n’est pas fort en fork de processus, il s’en sort mieux avec les threads.
Le MPM d’Apache pour Windows est donc « Winnt », il utilise des threads pour traiter les requêtes parallèles (s’il utilisait des forks, on traiterait beaucoup moins de clients à la seconde et Windows n’en pourrait plus).
Conclusion : PHP doit être compilé avec la ThreadSafety(TS) (–enable-maintainer-zts) pour pouvoir tourner sous Windows avec Apache en module. C’est le cas historique, depuis la nuit des temps.
Ceci mène à des problèmes : les extensions PHP utilisées doivent être threadsafes(TS), y compris les débogueurs (qui ne sont autres que des extensions, un peu particulières certes).
Le problème est que Zend ne supporte plus le mode TS dans ZendDebugger pour PHP5.3 et proposent comme solution de télécharger ZendServer.
Conclusion : pour déboguer sous Windows avec PHP5.3 : soit vous faites une croix sur ZendDebuggeur et téléchargez Xdebug qui supporte la Thread Safety, soit vous utilisez PHP5.3 en mode NTS mais vous ne pourrez l’utiliser en module Apache, vous devrez donc vous tourner vers du FCGI, soit vous téléchargez ZendServer qui (il me semble) embarque un Apache et un PHP NTS en FCGI (tout fermé comme une boite noire …)
Pour savoir quel PHP vous possédez : php -v
ou encore phpinfo(INFO_GENERAL) (chercher "thread safety")
La plupart du temps, vous ne trouverez que des versions TS de PHP pour Windows, les versions NTS se trouvent sur windows.php.net
Après évidemment si vous le compilez vous-même, vous faites ce que vous voulez.
Ma recommandation : passez sous Linux Vous pourrez compiler vous-mêmes PHP sans grands efforts et le personnaliser au maximum. De plus vous disposerez de toutes les extensions PECL, bref : la liberté (article à venir)
Commentaires récents
Archives
- novembre 2010
- août 2010
- juillet 2010
- juin 2010
- mai 2010
- avril 2010
- mars 2010
- février 2010
- janvier 2010
- décembre 2009
- novembre 2009
- octobre 2009
- septembre 2009
- août 2009
- juillet 2009
- juin 2009
- mai 2009
- avril 2009
- mars 2009
- février 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juillet 2008
- juin 2008
- mai 2008
- avril 2008
- mars 2008
- février 2008
- janvier 2008
- décembre 2007
- novembre 2007
- octobre 2007
- septembre 2007
- août 2007
- juillet 2007
- juin 2007
- mai 2007
- avril 2007
- mars 2007
- février 2007