Lighttpd + PHP ?

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

11 mars 2006, 11:56

Dans ma quête de la performance absolue, je me suis décidé à essayer lighttpd, en étant tout particulièrement intéressé par ça: Cache Meta Language.

Je suis sous WinXP, et jusqu'à maintenant j'ai téléchargé lighttpd, je l'ai installé et index.html s'affiche correctement. Là où ça se corse c'est quand je veux activer PHP... Après avoir activé mod_fastcgi, configuré doc_root dans php.ini et ajouté ça à lighttpd.conf

Code : Tout sélectionner

fastcgi.server = ( ".php" => (( "host" => "127.0.0.1", "port" => 55554, "mode" => "responder", "bin-path" => "php-cgi.exe", "docroot" => "C:/lighttpd/htdocs/" )) )
voici ce que j'obtiens au démarrage:

Code : Tout sélectionner

C:\lighttpd\sbin>2006-03-11 10:52:50: (mod_fastcgi.c.1035) the fastcgi-backend C:/PROGRA~1/EasyDev/PHP5.1/php-cgi.exe failed to start: 2006-03-11 10:52:50: (mod_fastcgi.c.1039) child exited with status 0 C:/PROGRA~1/EasyDev/PHP5.1/php-cgi.exe 2006-03-11 10:52:50: (mod_fastcgi.c.1042) if you try do run PHP as FastCGI backend make sure you use the FastCGI enabled version. You can find out if it is the right one by executing 'php -v' and it should display '(cgi-fcgi)' in the output, NOT (cgi) NOR (cli) For more information check http://www.lighttpd.net/documentation/fastcgi.html#preparing-php-as-a-fastcgi-program 2006-03-11 10:52:50: (mod_fastcgi.c.1047) If this is PHP on Gentoo add fastcgi to the USE flags 2006-03-11 10:52:50: (mod_fastcgi.c.1337) [ERROR]: spawning fcgi failed. 2006-03-11 10:52:50: (server.c.834) Configuration of plugins failed. Going down.
À noter que php-cgi fonctionne normalement lorsque je l'appelle séparement:

Code : Tout sélectionner

C:\lighttpd\sbin>php-cgi.exe c:\lighttpd\htdocs\helloworld.php Content-type: text/html Hello World!
Toute aide sera la bienvenue ;)

PS: j'ai lu la doc et le wiki plusieurs fois, mais personne n'est à l'abri d'avoir raté un paragraphe. Néanmoins, si c'est réellement aussi difficile d'installer lighttpd alors j'ai du souci à me faire pour l'installation de LUA (le language de CML)

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

11 mars 2006, 13:36

Je me demande s'il ne faut pas une version recompilée de PHP, rapport à
if you try do run PHP as FastCGI backend make sure you use the FastCGI enabled version.
You can find out if it is the right one by executing 'php -v' and it should display '(cgi-fcgi)' in the output, NOT (cgi) NOR (cli)
For more information check http://www.lighttpd.net/documentation/f ... gi-program
Edit: confirmé
You have to recompile the php from source to enable the FastCGI interface as it is normally not enabled by default in the distributions.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

11 mars 2006, 20:55

En fait je pense qu'il font allusion à la version Linux de PHP. La version Windows offre plusieurs incarnations de PHP par défault, dont php-cgi.exe qui est la version (Fast)CGI.

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

11 mars 2006, 21:36

C:\Documents and Settings\naholyr>php-cgi -v
PHP 5.0.4 (cgi-fcgi) (built: Mar 31 2005 02:45:43)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies
with Zend Extension Manager v1.0.6, Copyright (c) 2003-2004, by Zend Technol
ogies
with Zend Optimizer v2.5.7, Copyright (c) 1998-2004, by Zend Technologies
you're right...
ça m'intrigue du coup ça, je vais tester la bête et te dire ce que ça donne chez moi.

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

11 mars 2006, 22:07

Aucune idée de comment faire marcher le bidule :
- que je précise l'hote ou non ne change rien.
- quand je précise le "socket", il me répond bad file descriptor (j'ai même essayé de créer le fichier pour lui macher le travail, ça ne lui convient pas)
- quand je ne précise pas le "socket", il me répond missing key (short) fastcgi.server .php 0 port
- quand je précise le "port" sur 80, il me répond la même chose que toi.

En gros j'ai l'impression que du moment qu'on active mod_fastcgi on est baisé :D
Je n'ai rien trouvé non plus sur le support pour l'instant...

Je ne vais pas insister, personnellement plus les années passent, et plus je préfère quelque chose qui marche - tout simplement - plutot que quelque chose qui va vite :langue:

Eléphant du PHP | 417 Messages

11 mars 2006, 22:31

---
Modifié en dernier par JazzFinder le 28 juin 2006, 16:29, modifié 1 fois.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

12 mars 2006, 03:50

J'en suis à peu près au même point qu'au départ sauf que je n'ai plus aucun message d'erreur à l'allumage. J'utilise un host:port pour FastCGI, mais lorsque je vais sur ma page PHP tout ce que je reçois c'est un fichier vide portant le nom de la page.

D'après le "Gestionnaire de tâches de Windows" il semblerait que php-cgi.exe ne soit même pas lancé lorsque j'appelle la page... :/

En tout cas, merci d'avoir jeté un œil ;) Je vous tiens au courant de tout développement futur ;)

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

12 mars 2006, 03:58

Au fait, j'ai regardé l'error.log, j'ai ça:

Code : Tout sélectionner

2006-03-12 02:49:32: (mod_fastcgi.c.3385) fcgi: got a FDEVENT_ERR. Don't know why.
J'essaierai de trouver sur Google.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

12 mars 2006, 04:46

J'ai désactivé fastcgi, activé cgi, ajouté

Code : Tout sélectionner

cgi.assign= (".php" => "C:\PROGRA~1\EasyDev\PHP5.1\php-cgi.exe")
et phpinfo.php marche... hourra.

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

12 mars 2006, 05:10

Idem, mais c'est tout de même dommage de ne pas pouvoir faire marcher FastCGI, parce que je ne sais pas chez toi mais chez moi en mode cgi le "hello, world" met un bon tiers de seconde avant de répondre (disons que je le "vois à l'oeil nu"), alors que le même script en module avec apache me répond du tac au tac.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

12 mars 2006, 05:33

Erm, disons que je ne m'en servirai pas pour faire des benchmarks :lol:
De toutes façons, dans l'immédiat mon objectif c'est de voir si CML correspond à mes besoins, j'irai benchmarker sur un vrai serveur ;)

Code : Tout sélectionner

C:\Program Files\EasyDev\Apache2.2\bin>ab -k -c 5 -n 50 http://127.0.0.1:81/phpinfo.php This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright 1997-2005 The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient).....done Server Software: lighttpd/1.4.10a Server Hostname: 127.0.0.1 Server Port: 81 Document Path: /phpinfo.php Document Length: 40226 bytes Concurrency Level: 5 Time taken for tests: 5.698193 seconds Complete requests: 50 Failed requests: 0 Write errors: 0 Keep-Alive requests: 50 Total transferred: 2019400 bytes HTML transferred: 2011300 bytes Requests per second: 8.77 [#/sec] (mean) Time per request: 569.819 [ms] (mean) Time per request: 113.964 [ms] (mean, across all concurrent requests) Transfer rate: 346.07 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 220 548 226.1 520 1201 Waiting: 220 548 226.1 520 1201 Total: 220 548 226.1 520 1201 Percentage of the requests served within a certain time (ms) 50% 520 66% 590 75% 600 80% 610 90% 881 95% 1131 98% 1201 99% 1201 100% 1201 (longest request)