mageekblog - Mot-clé - Serveur web intégré - CommentairesLe blog personnel de Frédéric Hardy. Au menu, PHP, agilité, FreeBSD, cuisine et photographies.2021-12-02T08:20:54+01:00Frédéric Hardyurn:md5:26874ca5b8cd4cac8d08b0e68e64f63aDotclearTest du serveur http intégré à PHP 5.4 - arnolemurn:md5:688ea18414b4ac794e43de74b60013b42012-03-12T14:31:18+01:002012-03-12T22:13:31+01:00arnolem<p>Pour ma part, je ne pense pas que ce serveur intégré permette réellement d'être utilisé en tant que serveur de développement tout simplement parce qu'il ne sera jamais utilisé en production. Si le serveur de production est du Linux/Apache, les développements ne doivent pas être fait sous Windows/PHP5.4-server.<br />
A la limite, il peut être utile pour lancer un test ou un petit script pour ceux qui n'aime pas utiliser PHP en CLI.</p>Test du serveur http intégré à PHP 5.4 - Matthieuurn:md5:1b5d9f7511b8e04d853a7a5ffc927b7f2011-07-10T22:40:30+02:002011-07-10T22:35:27+02:00Matthieu<p>En local, j'ai l'habitude d'installer un LAMP/WAMP/MAMP. Je vais donc préférer cette solution tout en un, plutôt que de m'embeter à télécharger et installer PHP + MySql + PhpMyAdmin manuellement. Bref, ça ne me semble pas utile.</p>
<p>De plus, l'idée d'avoir un serveur intégrée au langage PHP, ça me semble aussi logique que d'avoir un serveur MySql d'intégré à PHP... C'est à dire, pas très pertinent. À la limite, proposer une version PHP au téléchargement qui intègre directement un serveur HTTP (apache ou autre), automatiquement configuré pour du dev. Une sorte de PHP-dev quoi. Tiens, ça ressemble un peu à WAMP tout ça... Bref, on tourne en boucle. Et perdre du temps à redévelopper un nouveau serveur HTTP... Ils auraient mieux fait d'en utiliser un existant.</p>
<p>L'article et le test étaient en tout cas très intéressants.</p>Test du serveur http intégré à PHP 5.4 - Nicolas Laforêturn:md5:6732fb7bdb266363efd565ec334c4ae22011-07-08T10:20:08+02:002011-07-08T10:17:08+02:00Nicolas Laforêt<p>Ok, c'est vrai que ce serveur est encore en stade alpha, mais ces perspectives d'évolutions sont intéressantes.</p>
<p>Dommage qu'il n'y ai rien de prévu autour de PHP 5.4 pour le PHP Tour de Lille.</p>Test du serveur http intégré à PHP 5.4 - Olivier Lavialeurn:md5:4f13da555ce6c5007323f11eaf968e8c2011-07-06T22:08:37+02:002011-07-06T21:51:32+02:00Olivier Laviale<p>J'aime bien ta conclusion <img src="/themes/default/smilies/smile.png" alt=":)" class="smiley" /> Pour en revenir à "l'utilisation négligeable des ressources" je parlais bien sûr d'une utilisation en local. Je ne sais pas ce que cela représente sur le serveur de Nintendo. De toute façon, je reste fidèle à Apache, comme ça je peux jouer avec Ruby en même temps <img src="/themes/default/smilies/wink.png" alt=";)" class="smiley" /></p>Test du serveur http intégré à PHP 5.4 - Namiurn:md5:53ffc18d935a567cc054343eeaa485302011-07-06T18:18:21+02:002011-07-06T21:51:32+02:00Nami<p>Il faudra que je fasse mes tests !</p>
<p>Légère erreur sinon : "Pour ceux qui ne le saurait"</p>Test du serveur http intégré à PHP 5.4 - mageekguyurn:md5:30b80cca5e0b4a96dae4791f869642bd2011-07-06T14:09:35+02:002011-07-06T13:22:12+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/07/05/Test-du-serveur-http-int%C3%A9gr%C3%A9-%C3%A0-PHP-5.4#c3159" rel="nofollow">Olivier Laviale</a> : Tu as un dépôt Debian en local ?</p>
<p>Et tu serais bien le premier qui aurait un apache qui ne consomme pas de ressources.</p>
<p>Quand aux performances, en local, avec un unique client qui fait une requête toutes les minutes (si tant est que tu rafraichis ta page à ce rythme, ce qui m'étonnerait énormément), je ne vois pas en quoi les performances d'un serveur HTTP sont un facteur à prendre en compte dans l'environnement de développement.</p>
<p>Maintenant, si tu préfères faire ton installation et ta configuration juste pour ne pas utiliser une solution plus simple, fonctionnelle et disponible nativement, libre à toi.</p>
<p>HTTP serait supporté par les serveurs HTTP de la même manière que Javascript par les navigateurs, je pourrais comprendre ce besoin d'avoir en développement le même serveur que celui de destination (voir même la totalité des serveurs HTTP du marché).</p>
<p>Cependant, le support d'HTTP est uniforme entre les serveurs, et heureusement, d'ailleurs, sinon le Web ne serait pas tel qu'il est.</p>
<p>D'ailleurs, qui peut savoir à l'avance sur quel serveur HTTP son code sera amené à être exécuté ?</p>
<p>Encore une fois, les développements spécifiques à un serveur HTTP sont largement plus l'exception que la règle, ne serait-ce que par la nature même du web.</p>
<p>Quand à la <q>concentration sur le langage</q>, le patch existe depuis des mois, et il y a bien longtemps que les développeurs sont passés à autre choses.</p>
<p>De plus, ce serveur est une contribution d'un développeur qui participe assez peu au développement du langage en lui-même.</p>
<p>L'ajout de cette fonctionnalité a donc eu un impact négligeable sur la disponibilité des ressources.</p>
<p>Et de toute façon, chaque développeur est indépendant et travaille sur ce qui lui plaît et en fonction de ses disponibilités.</p>
<p>C'est d'ailleurs ce qui a tué PHP 6.</p>Test du serveur http intégré à PHP 5.4 - Olivier Lavialeurn:md5:e46168af8593674c8c6b09c19c1782e82011-07-06T12:14:56+02:002011-07-06T13:22:12+02:00Olivier Laviale<p>La bande passante n'est pas vraiment une préoccupation lorsque je travaille en local, et l'utilisation des ressources par Apache est négligeable. De plus, comme le dis @grunk, je préfère travailler dans un environnement semblable à celui de production.</p>
<p>D'après tes tests les performances ne sont pas non plus au rendez-vous. Le temps passé sur l'intégration du serveur ne serai-t-il pas mieux dépensé sur le langage lui-même (syntaxe plus simple pour les tableaux ? intégration de runkit ?).</p>Test du serveur http intégré à PHP 5.4 - mageekguyurn:md5:c4c8c2b5d2cc75e4e3cb976f11be1c1c2011-07-06T10:26:43+02:002011-07-06T09:34:12+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/07/05/Test-du-serveur-http-int%C3%A9gr%C3%A9-%C3%A0-PHP-5.4#c3157" rel="nofollow">Olivier Laviale</a> : Vu que tu le gère manuellement et que tu peux lui spécifier son répertoire de travail, la notion d'hôte virtuel n'a pas d'intérêt dans le cas du serveur HTTP de PHP 5.4.</p>
<p>Il te suffit de le lancer sur le port de ton choix et le répertoire adéquate, et tu pourras parfaitement te passer d'apache.</p>
<p>Parce que je suis d'accord avec le fait que faire une installation d'apache n'est pas forcément la chose la plus difficile au monde, mais il reste tout de même à le configurer, et je ne parle même pas de la bande passante et des autres ressources consommée inutilement pour remplacer une solution intégrée parfaitement fonctionnelle et extrêmement simple à utiliser.</p>
<p>Franchement, j'ai vraiment du mal à voir l'intérêt qu'il y aura à encore installer apache, en dehors des cas particuliers qui demanderaient une fonctionnalité particulière de tel ou tel serveur HTTP.</p>Test du serveur http intégré à PHP 5.4 - Olivier Lavialeurn:md5:a3dc3bdf450100187a2d5a58c6bb4fa22011-07-06T09:54:58+02:002011-07-06T09:34:20+02:00Olivier Laviale<p>Pareil que @grunk. Est-ce que le serveur intégré gère les hôtes virtuels ? S'il écoute sur un port, j'imagine que non. Au boulot, tous nos projets sont accessibles en tant que sous domaines de notre domaine de dev, et chez moi ils sont accessibles en tant que sous domaines de "localhost", alors je vais rester avec Apache encore un moment. "$sudo aptitude install apache2" fastoche !</p>Test du serveur http intégré à PHP 5.4 - mageekguyurn:md5:44457ed34b823bd0206132c1f6498bdb2011-07-06T09:25:07+02:002011-07-06T08:28:40+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/07/05/Test-du-serveur-http-int%C3%A9gr%C3%A9-%C3%A0-PHP-5.4#c3155" rel="nofollow">Nicolas Laforêt</a> : Je n'ai rien vu à ce sujet pour le moment.</p>
<p>Le serveur web intégré est quelque chose de nouveau, et il ne fait pas l'unanimité parmi les contributeurs, que ce soit au niveau de son utilité ou de la façon dont il est implémenté.</p>
<p>Et pour l'instant, c'est également un <a href="https://bugs.php.net/search.php?search_for=&boolean=0&limit=30&order_by=&direction=DESC&cmd=display&status=Open&bug_type=All&package_name[]=Built-in+web+server&php_os=&phpver=&cve_id=&assign=&author_email=&bug_age=0&bug_updated=0" rel="nofollow">nid à bugs</a>.</p>
<p>Il est donc prématuré d'envisager l'avenir, étant donné que le présent n'est même pas encore clairement défini.</p>
<p>Ce qui est par contre certain, c'est que cette fonctionnalité suscite l'enthousiasme.</p>Test du serveur http intégré à PHP 5.4 - Nicolas Laforêturn:md5:70ca4582b4dfba22ef32c8012f1685082011-07-06T08:26:00+02:002011-07-06T08:28:50+02:00Nicolas Laforêt<p>Hello,</p>
<p>Est-il prévu des outils particuliers sur ce serveur ? Du genre débugger intégré ou autres joyeusetés qui pourraient être sympa, vu que c'est un serveur de dev, avoir des outils non disponibles ou difficile à paramétrer, ce serait sympa. Je ne dis pas que xdebug est difficile a paramétrer par exemple, mais dans l'esprit du serveur intégré, un debugger intégré semble approprié, ou un profiler pour benchmarker les scripts .... enfin moi je trouve l'idée séduisante ^^</p>
<p>Bonne journée</p>Test du serveur http intégré à PHP 5.4 - mageekguyurn:md5:8e11ac20755318920c91f329ea2ecf3b2011-07-06T00:26:34+02:002011-07-05T23:40:30+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/07/05/Test-du-serveur-http-int%C3%A9gr%C3%A9-%C3%A0-PHP-5.4#c3152" rel="nofollow">Fred</a> : Je pense que tu n'as pas compris que ce serveur ne sera JAMAIS destiné à la production et son champ d'application est précisément le développement.</p>
<p>On s'en tamponne donc à un point inimaginable des éventuels problèmes de sécurité, et même des performances (je force intentionnellement le trait pour que le message passe, vu que cela semble difficile).</p>
<p>Quand à l'argument de dire que ce n'est pas une bonne pratique de développer sur autre chose que le serveur HTTP qui sera finalement utilisé, c'est ne pas voir plus loin que le bout de sa propre lorgnette.</p>
<p>En effet, suivant le projet, le code peut être amené à être exécuté sur plusieurs configurations très différentes, que ce soit au niveau de l'OS, du serveur HTTP ou de la SAPI PHP (CGI, mod_php, FastCGI, FPM, j'en passe et des meilleurs).</p>
<p>Alors certes, si le code est destiné à tourner sur une plate-forme précise, utiliser le même serveur dans la même configuration est une bonne pratique, mais dans les faits, cela arrive relativement rarement, et même dans ce cas, étant donné qu'il n'est pas possible de prédire l'avenir, personne ne peut dire que cela n'arrivera vraiment jamais.</p>
<p>De plus, ce qui fait la différence entre deux serveurs web sont les performances et la facilité de configuration, et non leur implémentation de HTTP.</p>
<p>Le contexte est donc très différent de celui de Javascript, par exemple, qui, même s'il est normalisé, a des comportements bien différents suivant les navigateurs.</p>
<p>Évidement, il peut y avoir besoin de fonctionnalités spécifiques dans certain cas, comme les rewrites rules d'apache, et donc dans ce cas, le serveur web intégré de PHP ne peut être utilisé pour le développement (encore que cette fonctionnalité puisse certainement être émulée), mais là encore, il ne faut pas croire que ce cas de figure soit très répandu.</p>
<p>Enfin, je vois mal ce que vient faire mysql ou postgresql dans l'équation à ce niveau, vu que ces logiciels sont indépendant du serveur web.</p>
<p>Et évite le <q>SMS style</q> dans tes commentaires à l'avenir s'il te plaît ;).</p>Test du serveur http intégré à PHP 5.4 - Fredurn:md5:8e3769428042faa530a5f1814fe2265b2011-07-05T23:48:03+02:002011-07-05T23:42:23+02:00Fred<p>A priori une bonne nouvelle si ça aide par exemple au déboggage dans un premier temps... par contre apres c'est vrai que j'aurai tendance a préférer être sur le même type de serveur entre un serveur de développement et de production pour pas avoir de mauvaises surprises ... Qu'en est-il aussi de l'intégration avec mysql, postgresql,... ? A mon avis il restera dédié au développement tant qu'il n'aura pas acquis la maturité suffisante pour ne pas connaitre de problème qui risqueraient de le discréditer (charge, sécurité, ...) ...autant dire que que ce n'est pas pour demain !</p>Test du serveur http intégré à PHP 5.4 - grunkurn:md5:ebbb918724ef902b6a83f6f33d0d749c2011-07-05T22:23:29+02:002011-07-05T23:39:12+02:00grunk<p>J'avoue ne pas bien saisir l'intérêt d'un tel serveur web. L'argument que tu évoques dans ton article n'a pas vraiment de sens. Quel développeur prendrait le risque de développer sur une plateforme complètement différente de la plateforme finale ?<br />
Quand bien même ce ne serait pas un problème, les stacks lamp/xamp/mamp sont tellement facile à installer que encore une fois je trouve pas ce serveur intégré très pertinent.<br />
Après effectivement pour un développement très ponctuel pourquoi pas ...</p>Test du serveur http intégré à PHP 5.4 - mageekguyurn:md5:280b473d81db238799bae6cd0f6f63942011-07-05T22:07:59+02:002011-07-05T21:09:05+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/07/05/Test-du-serveur-http-int%C3%A9gr%C3%A9-%C3%A0-PHP-5.4#c3146" rel="nofollow">Paul</a> : La RFC indique que tu peux passer au serveur web lors de son lancement un script PHP qui peut se charger de faire le routage.</p>
<p>Cependant, n'ayant pas testé cette fonctionnalité, j'ai préféré ne pas en parler dans le cadre de ce billet, d'autant que ce n'était pas son objet.</p>Test du serveur http intégré à PHP 5.4 - naholyrurn:md5:1a619fb354709e67aa531129f7e2236b2011-07-05T21:43:15+02:002011-07-05T21:07:52+02:00naholyr<p>Excellent outil, et très bonne nouvelle qu'il soit bien performant <img src="/themes/default/smilies/smile.png" alt=":)" class="smiley" /> Ça veut dire que la machine de dév ne souffrira d'aucune manière en faisant tourner les scripts d'une manière ou d'une autre.</p>
<p>Pourquoi uniquement un outil de dév ? Je dirais naïvement "parce qu'il est fait pour ça". Et ce n'est pas si naïf finalement, en effet un outil qui a été développé dès le départ dans l'optique "plateforme de développement" ne se fixe pas les mêmes contraintes, notamment en terme de robustesse et de sécurité. Alors il peut être très performant, mais il aura sûrement des comportements inattendus, des crash anecdotiques, chose inadmissible pour de la prod mais tout-à-fait tolérable en dév. Peut-être que dans l'avenir l'outil changera d'optique, mais en attendant rien que son positionnement le disqualifie <img src="/themes/default/smilies/wink.png" alt=";)" class="smiley" /></p>Test du serveur http intégré à PHP 5.4 - Paulurn:md5:b2300e00837d94468caecc016372f8052011-07-05T14:49:15+02:002011-07-05T21:07:52+02:00Paul<p>Très intéressant comme article.</p>
<p>Tu parles de tests avec Symfony, dans la configuration d'apache pour un project Symfony, on a souvent besoin de virtualhost et d'alias ( /sf )</p>
<p>C'est possible avec le serveur intégré de faire des alias ?</p>Test du serveur http intégré à PHP 5.4 - mageekguyurn:md5:64e89cdce21822372d10b93a35e1524a2011-07-05T14:42:55+02:002011-07-06T08:44:16+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/07/05/Test-du-serveur-http-int%C3%A9gr%C3%A9-%C3%A0-PHP-5.4#c3144" rel="nofollow">Amaury</a> : Sans réfléchir plus à que cela à la question, je peux déjà te dire que s'il se plante pour une raison ou pour une autre, plus rien n'écoute sur l'interface (pas de fork, thread, etc.).</p>
<p>Bon, tu vas me sortir l'argument <code>inetd</code>, mais bon... on va dire que je ne vais pas l'entendre dans ce contexte ;).</p>
<p>Je ne peux pas te répondre plus en détails, car je n'ai pas mis le nez dans l'implémentation, mais rien que ce que j'ai indiqué plus haut suffit pour le disqualifier en production, de toute façon.</p>Test du serveur http intégré à PHP 5.4 - Amauryurn:md5:25b1083a0a129ca9985dce6aa335dba62011-07-05T14:41:00+02:002011-07-05T13:48:12+02:00Amaury<p>Très intéressant. Merci pour ce retour.</p>
<p>Question idiote, juste par curiosité : J'ai bien compris que ce serveur HTTP n'était prévu que pour le développement. Mais qu'est-ce qui le limite au dév, au final ? Qu'est-ce qui le rend intrinsèquement incapable de gérer une plate-forme de production, techniquement parlant ?</p>