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,
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 }