Bonsoir
Le serveur de mon site partenaire, va bientôt être refait avec des disques durs neufs, car l'un des actuels disques durs, est en train de rendre l'âme... Problème insoluble par les moyens habituels de gestion du raid, à cause d'un contexte particulier.
Le problème, c'est que le système d'exploitation que souhaite mon Dirlo, est la Relaase 2 d'OVH... qui ne supporte que des interpréteurs PHP en mode CGI, pas en mode CLI. ( Dixit le support d'OVH ).
Or... J'utilise, lancés à partir de scripts en Bourne Shell, des commandes de lancement de scripts php comme en ligne de commande, de cette manière :
php -q -f script.php $param 1 $param2 2>/dev/null
Là, l'interpréteur php est censé être en mode CGI, et le paramètre -q ( d'après le PHP Manual ), fait que cette commande ne générera pas les en-têtes HTTP que génère php en mode CGI.
Donc, théoriquement, ce paramètre -q fait que, tout se passe comme si php était en mode CLI.
Première question : Celà est-il vrai, à partir du moment où le problème du répertoire par défaut dans le script script.php , ne se pose pas ?
Maintenant, lors de ces lancements, le script script.php rend une valeur à la fin de son exécution, par des instructions genre : exit(0); ou : exit(-1); dans ce script.
Ces valeurs de retour, seront-elles disponubles dans la variable Shell $? , après le lancement de cette commande, comme si php était en mode CLI ?
Par exemple, voici un morceau d'un script en Bourne Shell :
Celà va-t-il fonctionner, même si php est en mode CGI ?
Le paramètre -q sera-t-il suffisant, pour que tout se passe comme si php était en mode CLI ? ?
Troisième question : Les paramètres $param1 et $param2, sont récupérées dans le script script.php , de cette manière :
Voici le script script.php :
Est-ce que les valeurs de $param1 et $param2 seront correctement lues dans $SERVER['argv'] ?
Normalement, le résultat du lancement du script en Bourne Shell, devrait donner :
ab
cd
Est-ce que ce sera le cas, sinon où est l'erreur ?
Merci beaucoup de vos réponses.
Bien amicalement.
Jean François Ortolo
Le serveur de mon site partenaire, va bientôt être refait avec des disques durs neufs, car l'un des actuels disques durs, est en train de rendre l'âme... Problème insoluble par les moyens habituels de gestion du raid, à cause d'un contexte particulier.
Le problème, c'est que le système d'exploitation que souhaite mon Dirlo, est la Relaase 2 d'OVH... qui ne supporte que des interpréteurs PHP en mode CGI, pas en mode CLI. ( Dixit le support d'OVH ).
Or... J'utilise, lancés à partir de scripts en Bourne Shell, des commandes de lancement de scripts php comme en ligne de commande, de cette manière :
php -q -f script.php $param 1 $param2 2>/dev/null
Là, l'interpréteur php est censé être en mode CGI, et le paramètre -q ( d'après le PHP Manual ), fait que cette commande ne générera pas les en-têtes HTTP que génère php en mode CGI.
Donc, théoriquement, ce paramètre -q fait que, tout se passe comme si php était en mode CLI.
Première question : Celà est-il vrai, à partir du moment où le problème du répertoire par défaut dans le script script.php , ne se pose pas ?
Maintenant, lors de ces lancements, le script script.php rend une valeur à la fin de son exécution, par des instructions genre : exit(0); ou : exit(-1); dans ce script.
Ces valeurs de retour, seront-elles disponubles dans la variable Shell $? , après le lancement de cette commande, comme si php était en mode CLI ?
Par exemple, voici un morceau d'un script en Bourne Shell :
Code:
#!/bin/sh
# On suppose que le PATH est suffisant pour accéder à l'interpréteur php en mode CGI...
$tmp_php=`which php`
$param1="ab"
$param2="cd"
$result=$tmp_php -q -f script.php $param1 $param2 2>/dev/null
if( [ $result -eq 0 ]; then
# Traitement OK, le script s'est correctemenet exécuté.
else
# Traitement d'erreur.
fi
exit 0
Celà va-t-il fonctionner, même si php est en mode CGI ?
Le paramètre -q sera-t-il suffisant, pour que tout se passe comme si php était en mode CLI ? ?
Troisième question : Les paramètres $param1 et $param2, sont récupérées dans le script script.php , de cette manière :
Voici le script script.php :
Code:
<?php
$argv = $SERVER['argv'];
$param1 = $argv[1];
$param2 = $argv[2];
echo $param1 . "\n";
echo $param2 . "\n";
exit(0);
?>
Est-ce que les valeurs de $param1 et $param2 seront correctement lues dans $SERVER['argv'] ?
Normalement, le résultat du lancement du script en Bourne Shell, devrait donner :
ab
cd
Est-ce que ce sera le cas, sinon où est l'erreur ?
Merci beaucoup de vos réponses.
Bien amicalement.
Jean François Ortolo