2010-06-07 12 views
2

J'ai une application web FastCGI Perl (écrit en utilisant CGI::Fast, mais cela ne devrait pas d'importance), que je voudrais tester en mode FastCGI.Test de script FastCGI en Perl utilisant le serveur web autonome Perl FastCGI/FCGI

Quel module Perl puis-je utiliser pour exécuter l'application FastCGI (le module doit être installé à partir du CPAN, de préférence s'il n'utilise pas de bibliothèques supplémentaires), afin que je puisse pointer vers un navigateur Web, par ex. à http://localhost:5000 pour vérifier si cela fonctionne correctement?

Mieux, existe-t-il un module Test :: * qui permet de tester automatiquement les applications FastCGI, en tant qu'applications FastCGI?


Ajouté 06-07-2010:
On dirait qu'il n'y a aucun serveur FastCGI autonome en Perl; ou au moins je n'en ai pas trouvé. Les modules FCGI/FastCGI sur CPAN que j'ai trouvés concernent l'écriture d'une application FastCGI ou la connexion à un serveur FastCGI existant.

+0

Je travaille sur une mise en œuvre de FastCGI en C. Il est conçu comme un analyseur interruptible (mis en œuvre au moyen d'un EFM) pour les modèles de serveur asynchrone, il n'effectue aucune E/S en lui-même. Il peut être facilement intégré dans n'importe quel serveur ou modèle de programme. Il prévoit le besoin des deux côtés du fil. N'hésitez pas à [vérifier] (https://github.com/AndreLouisCaron/cfcgi). –

Répondre

3

Je ne connais pas de module qui vous permet de tester spécifiquement les applications Fast CGI. Pour exécuter un script Fast CGI pour les tests tout en développant je généralement mis en place un petit serveur lighttpd comme ceci:

$HTTP["url"] =~ "^/[^/]*$" { 
    fastcgi.server = (
     "/" => ((
      "socket" => "/tmp/myapp.sock", 
      "bin-path" => "/path/to/my/fastcgi/script.pl", 
      "check-local" => "disable", 
      "allow-x-send-file" => "enable", 
     )), 
    ) 
} 

# Use this if you also want to serve static files directly (not through your CGI app). 
$HTTP["url"] =~ "^/static/.*$" { 
    url.rewrite-once = ("^/static/\(.*\)$" => "static/$1") 
} 

Vous pouvez également définir le port 5000 ou quoi que ce soit supérieur à 1024, vous pouvez donc l'exécuter en tant qu'utilisateur . Enregistrez le fichier dans vos projets et exécutez lighttpd comme ceci:

/usr/sbin/lighttpd -f lighttpd.conf -D 
+0

début lighttpd comme celui-ci lighttpd -f config.cnf -D je besoin d'ajouter ces lignes ci-dessus pour une lighttpd autonome pleine conf: server.document-root = "/ var/www /" server.port = 8082 server.errorlog = "erreur.log" statique-fichier.exclude-extensions = (".php", ".pl", ".fcgi") serveur.modules + = ("" mod_fastcgi ") – h4ck3rm1k3

+0

archivé exemple ici https://github.com/h4ck3rm1k3/fluxflex-perl-example/blob/master/lighttpd/config.cnf – h4ck3rm1k3