Perl CGI ou CGI :: Fast sous Apache 2.2 sur Debian Lenny

J’ai 2 serveurs Web différents sur une machine Debian Lenny. L’un d’entre eux exécute FastCGI (TRAC) et l’autre serveur exécute PHP et certains scripts CGI. J’ai donc actuellement les 2 modules Apache2 activés (cgi et fcgi) et les 2 hôtes configurés en conséquence. Je n’ai pas d’autre intérêt particulier pour ces deux modules fonctionnant simultanément.

Donc, je veux garder ONLY Apache fastcgi module en cours d’exécution car il semble être le plus efficace.

Pourriez-vous confirmer les évaluations suivantes pour être correct ou correct?
1- Je n’aurai rien à faire / changer pour le site TRAC (déjà en cours d’exécution fcgi)
2- Je devrai régler l’autre serveur web vhost avec un gestionnaire de scripts fastcgi
3- Je ne devrais changer que les modules perl de “use CGI” pour “utiliser CGI :: Fast”
4- Je pourrai conserver le rest des scripts CGI existants sans autres modifications
5- Je n’ai pas besoin d’utiliser CGI :: Apache mais CGI :: FastCGI (E / S du module CGI actuel) dans les scripts du serveur Web

J’espère que mon sharepoint vue est clair car tout cela me semble un peu étranger …

THX

EDIT :
merci pour les indices à Naveed et J-16,
Voici ce que j’ai fait pour que ça marche si ça peut aider les autres:

  • hum, installé CGI :: Fast avec CPAN, alors ça marche mieux ..
    Sur Debian avec libperl déjà installé

    perl -MCPAN -e shell cpan> install CGI::Fast 
  • a changé le nom de fichier de * .cgi à * .fcgi,

  • inclus la boucle fastcgi while telle que conseillée ci-dessous par Naveed,
  • configurer apache concerné vhost avec le bon gestionnaire pour fastcgi (voir doc fastcgi )
  • activé le module Apache fastcgi (a2enmod fastcgi) et désactivé le module cgi,
  • vérifié le fichier fastcgi.conf dans les parameters Apache,
  • redémarré Apache,
  • vérifié le fastcgi fonctionnant comme un sous-processus Apache (ps -afx),
  • correction de certains problèmes de script, déjà présents, mais apparus récemment lors de l’exécution de fastcgi, comme indiqué (erreurs détectées lors de la vérification des journaux Apache),
  • EDIT : a adapté le code de téléchargement de fichier car le script initial ne fonctionnait plus (ne comprend toujours pas pourquoi), j’ai donc dû remplacer la boucle while par un tel:

     open(FILE,">$upload_dir/$file_name") while ($bytes_count = read($file_query,$buffer,2096)) { $size += $bytes_count; print FILE $buffer; } close(FILE); 
  • terminé.

Le monde n’est pas encore parfait mais ça marche enfin.

Vous devrez faire un peu plus que modifier simplement CGI pour utiliser CGI :: Fast. Assurez-vous de bien envelopper les scripts CGI avec une boucle while, comme l’indique la documentation http://p3rl.org/CGI::Fast

 use CGI::Fast; while (CGI::Fast->new()) { # The original CGI code goes in here }