Essayant de faire un script Perl simple qui regarde un paramètre GET pour déterminer quelle version de php à utiliser, puis passer à la demande. Voici le script tout:Perl requête de script CGI passer à PHP
#!/usr/bin/perl
use FCGI;
$cnt = 0;
local ($buffer, @pairs, $pair, $name, $value);
while(FCGI::accept >= 0){
$php = "php";
$ENV{PHP_FCGI_CHILDREN}=3;
$ENV{PHP_FCGI_MAX_REQUESTS}=5000;
$buffer = $ENV{'QUERY_STRING'};
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
if($name == "php") {
$php = "php".$value;
}
}
print "Content-Type: text/html\r\n\r\n";
print `$php $ENV{PATH_TRANSLATED}`;
}
L'idée est que la version PHP peut être commuté avec un paramètre GET ... cette partie semble fonctionner très bien quand je test avec phpversion()
.
Donc, cette chose semble fonctionner, mais un fichier de test avec un simple <?php phpinfo(); ?>
sort une chaîne pure, PAS le format HTML. Il donne la sortie exacte comme si phpinfo() était exécuté à partir de la ligne de commande, parce que c'est exactement ce qui se passe.
Ainsi, les deux parties à ma question sont
- Est-ce vraiment un problème?
- Comment devrais-je "passer la requête" à PHP, au lieu d'invoquer la ligne de commande?