Si vous n'exploitez pas votre propre serveur WWW public, que vous pouvez contrôler directement au clavier, vous devez alors "télécommander" la gestion de vos données sur l'ordinateur serveur WWW public. De nos jours, cela s'effectue normalement à l'aide du protocole FTP. . Pour la gestion FTP de vos propres fichiers sur l'ordinateur serveur, il vous faut avoir un bon programme FTP.
Dans l'index des liens de l'offre en ligne de SELFHTML actuel, un récapitulatif des produits avec des liens aux programmes FTP:
Index des liens SELFHTML: programmes FTP
À l'aide d'un programme FTP, vous pouvez transmettre des scripts CGI dans le répertoire prévu à cet effet. Le plus souvent, ce répertoire a un nom approprié, par exemple cgi-bin ou cgi-local. Votre administrateur Web ou fournisseur d'accès doit vous avoir aménagé un tel répertoire. Ce qui signifie que dans les Réglages de base sur l'ordinateur serveur Web, il doit avoir désigné un tel répertoire et vous en avoir autorisé l'accès. En cas de doute, posez la question à votre administrateur Web ou fournisseur d'accès! (Vous trouverez également des généralités sur ce sujet dans la partie expliquant comment Publier des projets WWW).
Lors de la transmission de scripts CGI ou de programmes CGI dans le répertoire CGI, vous devez veiller aux choses suivantes:
- Les scripts Perl doivent toujours être transmis en mode ASCII. Veillez, avant la transmission de fichiers Perl, à ce que dans les réglages de votre programme FTP le mode de transmission choisi soit le mode ASCII.
- Les programmes compilés ou visés par des liens, par contre, doivent toujours être transmis en mode binaire. Veillez, avant la transmission de tels programmes, à ce que dans les réglages de votre programme FTP le mode de transmission choisi soit le mode binaire. Pensez que pour des programmes compilés ou visés par des liens, ceux-ci ne peuvent être exécutés sur l'ordinateur serveur que s'ils ont été compilés pour le système d'exploitation de l'ordinateur serveur. Ainsi il est inepte de transmettre dans le répertoire CGI d'un ordinateur Unix un programme C compilé en fichier EXE sous DOS/Windows.
- Quelques serveurs WWW sont installés de telle façon que les scripts CGI doivent recevoir l'extension de fichier .cgi posez la question le cas échéant à votre administrateur Web ou fournisseur d'accès! Si c'est le cas chez vous, renommez par exemple un script Perl counter.pl simplement en counter.cgi.
- Si l'ordinateur serveur est un ordinateur Unix, vous devez d'autre part mentionner par qui le fichier programme ou le script peut être exécuté. Pour que tous les visiteurs de vos pages puissent exécuter votre script CGI ou programme CGI, il vous faut régler le droit de lecture et d'exécution "pour tous". Cela se fait avec la commande Unix chmod 755 fichier.ext. Si par exemple vous transmettez un script CGI nommé counter.pl, vous devez le rendre exécutable généralement avec chmod 755 counter.pl. Lisez en cas de doute la documentation de votre programme FTP pour savoir comment pouvoir régler les droits d'accès aux fichiers sur l'ordinateur éloigné.
|
Tenez compte également des remarques et des réflexions sur l'organisation suivantes:
- testez vos scripts ou vos programmes CGI avant la mise en service publique sur le Web. De préférence faites-le dans le calme, hors connexion, sur votre ordinateur local. Pour cela, il vous faut installer un serveur Web localement sur un ordinateur personnel. Si vous voulez mettre en oeuvre des scripts Perl, vous devez en outre installer Perl localement.
- n'utilisez pas une page fréquemment visitée de votre site WWW pour appeler vos nouveaux scripts ou programmes CGI: transmettez d'abord un fichier-test HTML avec l'appel du programme CGI. Ainsi, vous pouvez également tester en connexion si tout fonctionne impeccablement. S'il s'agit d'applications importantes comme des paniers d'achat électroniques etc., il est recommandé de faire tester le script par un panel de différentes personnes avant de le mettre publiquement à disposition.
- la plupart des scripts CGI sauvegardent des données dans des fichiers et/ou lisent ces fichiers. S'il s'agit d'un seul fichier de données, rien ne s'oppose à le placer dans le répertoire CGI. Pour un simple compteur d'accès, réalisé avec un script Perl nommé counter.pl, il est judicieux par exemple de sauvegarder l'état du compteur dans un fichier counter.dat et de mettre celui-ci, comme le fichier Perl, dans le répertoire CGI. Si cependant un script ou un programme CGI gère plusieurs fichiers, il est préférable de mettre ceux-ci dans un répertoire distinct. Créez pour cela des sous-répertoires au répertoire CGI. Ainsi un forum de nouvelles (Bulletin-Board) basé sur CGI portant le nom bulletin.pl pourrait avoir ses divers fichiers de configuration et de données actuelles dans un sous-répertoire approprié nommé: bulletin.
|
Les raisons sont nombreuses pour lesquelles des scripts CGI ne fonctionnent pas sur des serveurs Web publics. La liste de vérification suivante peut aider à éviter les erreurs typiques:
- Au cas où, à l'appel du script CGI vous recevez une erreur avec le numéro 500 (Internal Server Error) , cela peut indiquer une erreur de syntaxe dans le script Perl. Notez pour cela dans le script Perl, avant toute autre instruction concrète, l'instruction suivante en premier:
use CGI::Carp qw(fatalsToBrowser);
Vous obtenez ainsi que les messages d'erreur de l'interpréteur Perl soient écrits directement dans la fenêtre du navigateur. Au cas où le script contient encore des erreurs, il vous sera plus facile d'en trouver les causes. L'erreur avec le numéro 500 peut aussi avoir d'autres causes. Contrôlez par exemple que le script Perl a vraiment été transmis au serveur avec le module ASCII de FTP. Assurez vous que vous n'avez pas, dans le script Perl, d'instructions qui ne fonctionnent pas sur le serveur (par exemple un appel de fonction spécifique au système d'exploitation, une utilisation de modules Perl spéciaux qui ne font pas partie du standard et qui ne sont pas installés sur le serveur etc...). Vérifiez si dans la première ligne du script Perl, vous avez mentionné le chemin correct de l'interpréteur Perl.
Si vous avez accès au fichier log d'erreurs de votre serveur Web, il est recommandé d'aller y voir. Dans le fichier log d'erreurs, sont inscrites toutes les erreurs survenues pendant l'activité du serveur. Ainsi vous avez la possibilité en cas de doute de localiser l'origine exacte de l'erreur.
- Au cas où, à l'appel du script CGI vous recevez une erreur avec le numéro 404 (Document not found), vérifiez la casse du nom de fichier sur le serveur, si l'ordinateur serveur tourne avec un système d'exploitation Unix. Si cous avez noté par exemple dans un formulaire HTML:
<form action="/cgi-bin/evaluation.cgi">
,
alors le fichier doit également s'appeler effectivement evaluation.cgi et non pas par exemple Evaluation.cgi.
- Au cas où, à l'appel du script CGI vous recevez une erreur avec le numéro 403 (Forbidden, Vérifiez que le script, au cas où le serveur Web tourne avec un système d'exploitation Unix, a au moins les droits 755. Modifiez les droits le cas échéant avec la commande chmod dans le programme FTP.
- Au cas où, à l'appel du script CGI vous recevez un message d'erreur Premature end of script headers, vérifiez dans le code source du script Perl les sorties que le script envoie au navigateur. Il doit envoyer quelque chose au navigateur et au début des sorties, doit être noté un entête de fichier valide. Ce qui est obtenu pour des sorties HTML au navigateur de façon typique par une commande telle que:
print "Content-type: text/html\n\n";
.
© 2001 Stefan Münz / © 2003 Traduction Serge François, 13405@free.fr
selfhtml@fr.selfhtml.org