|
Quel est le chemin de sendmail et de perl ?
Le chemin de sendmail sur nos serveurs est : /usr/sbin/sendmail
Le chemin vers Perl est : /usr/bin/perl
Mon script CGI marche correctement, par contre l’envoi de mails ne fonctionne pas.
Pour des raisons de sécurité les CGI sont executés dans un environnement CHROOT (environnement isolé du système). L'envoi des mails est fait par mini_sendmail (version light du sendmail) qui fonctionne dans cet environnement isolé.
Le problème alors vient du fait que mini_sendmail ne supporte pas les options -bm -f -oem -oi, seul -t est supporté. Vous devez modifier ceci dans vos scripts afin que l'envoi de mails fonctionne.
En règle générale vous devez toujours appeler mini_sendmail de la manière suivante : /usr/sbin/sendmail -t
Pourquoi la variable globale $ENV{' REMOTE_HOST '} ne me retourne rien ?
Nous utilisons un système de loadbalancing. La charge des requêtes est balancée entre nos serveurs web. De ce fait, il vous faut utiliser la variable suivante pour récupérer l'adresse IP du serveur:
my $remote_host =
gethostbyaddr((inet_aton($ENV{'HTTP_X_CLUSTER_CLIENT_IP'}), AF_INET));
Attention: N'oubliez pas d'ajouter la ligne suivante au début de votre script:
use Socket;
Pourquoi la variable globale $ENV{'REMOTE_ADDR '} me renvoie toujours la même donnée ?
Nous utilisons un système de loadbalancing. La charge des requêtes est balancée entre nos serveurs web. De ce fait, il vous faut utiliser la variable suivante pour récupérer l'adresse IP du client:
my $remote_ip = $ENV{'HTTP_X_CLUSTER_CLIENT_IP'};
Attention: N'oubliez pas d'ajouter la ligne suivante au début de votre script:
use Socket;
Comment configurer mes scripts CGI ?
Vous trouverez ci-dessous la liste des variables d'environnements et chemin à utiliser dans vos scripts CGI.
$ENV{'SCRIPT_NAME'};
A remplacer par: $ENV{'SCRIPT_URI'};
$ENV{'SERVER_NAME'};
A remplacer par: "";
"http://$domain$script";
A remplacer par: "$domain$script";
Chemin relatif pour écrire un fichier depuis un script cgi-bin dans votre répertoire de publication racine:
'/web/votrerepertoire';
Mes scripts cgi/perl ne s'executent plus.
Vos scripts cgi/perl ne fonctionnent plus ou un message d'erreur du type Can't chdir() to /mnt/sites/monsite.com/web/index.htm/../cgi-bin: Not a directory appararaît lors de l'exécution.
Il vous faut procéder de la manière suivante:
1.) Sauvegarder vos scripts cgi/perl.
2.) Supprimer le répertoire cgi-bin par ftp.
3.) Désactiver les CGI dans la console
4.) Réactiver les CGI dans la console. Le système vous crééera automatiquement un répertoire cgi-bin
5.) Republier vos scripts cgi/perl en ASCII et ajuster les bons droits chmod 755.
6.) Votre problème devrait être résolu.
|