Je ne suis pas du monde Perl, donc c'est nouveau pour moi. J'utilise Ubuntu Hardy LTS avec les paquets apache2 et mod_fcgid installés. Je voudrais que MT4 fonctionne sous fcgid plutôt que mod-cgi (il semble fonctionner correctement avec CGI).Pourquoi mon script simple fastCGI Perl échoue?
Je n'arrive pas à obtenir un simple script Perl à exécuter sous fcgid. J'ai créé une application "Hello World" simple et inclus le code de this previous question pour tester si FCGI est en cours d'exécution.
J'ai appelé mon script HelloWorld.fcgi (actuellement, fcgid est configuré pour gérer les fichiers .fcgi uniquement). Code:
#!/usr/bin/perl
use FCGI;
print "Content-type: text/html\n\n";
print "Hello world.\n\n";
my $request = FCGI::Request();
if ($request->IsFastCGI) {
print "we're running under FastCGI!\n";
} else {
print "plain old boring CGI\n";
}
Lorsqu'il est exécuté à partir de la ligne de commande, il imprime « bon vieux ennuyeux ... » Quand il est invoqué via une requête http à apache, je reçois une erreur 500 Internal Server et la sortie du script est imprimé vers le journal des erreurs Apache:
Content-type: text/html
Hello world.
we're running under FastCGI!
[Wed Dec 03 22:26:19 2008] [warn] (104)Connection reset by peer: mod_fcgid: read data from fastcgi server error.
[Wed Dec 03 22:26:19 2008] [error] [client 70.23.221.171] Premature end of script headers: HelloWorld.fcgi
[Wed Dec 03 22:26:25 2008] [notice] mod_fcgid: process /www/mt/HelloWorld.fcgi(14189) exit(communication error), terminated by calling exit(), return code: 0
Lorsque je lance la version .cgi du même code, cela fonctionne correctement. Une idée de pourquoi la sortie du script va dans le journal des erreurs? config Apache est la configuration par défaut mod_fcgid plus, dans une directive VirtualHost:
ServerName test1.example.com
DocumentRoot /www/example
<Directory /www/example>
AllowOverride None
AddHandler cgi-script .cgi
AddHandler fcgid-script .fcgi
Options +ExecCGI +Includes +FollowSymLinks
</Directory>
Essayé cela, résultat similaire. Également essayé en utilisant un simple CGI :: Fast Hello World - échoue également. Tellement bizarre ... – sstrudeau