Foire aux Questions
Un CGI, qu'est ce que c'est ?
Le PERL, c'est quoi ?
Dans la doc du script ils parlent de CHMOD, c'est quoi ca ?
Faut-il chmoder les repertoires ?
Ou dois je placer mes scripts CGI pour qu'ils fonctionnent ?
Je ne trouve pas de répertoire CGI-BIN, que faire ?
Quelle la différence entre un CGI et une DLL
Est-ce que ASP et PHP sont des CGI ?
Ca ne fonctionne pas, que faire ?
Telnet, c'est quoi ?
Comment modifier le chemin d'accès ?
Ou trouver plus d'infos sur les CGI en général ?
Ou trouver des scripts CGI ?
Y a-t'il des alternatives aux CGI ?
Où puis je trouver les scripts qui gèrent cet annuaire (les votes par exemple) ?
Un CGI, qu'est ce que c'est ?
CGI est l'acronyme de Common Gateway Interface. En résumé, c'est une définition de la façon dont se fait l'échange entre une page html et un programme tournant côté serveur. Par extension on appelle un CGI un de ces programmes tournant sur le serveur et respectant l'interface CGI.
Quasiment tous les langages de programmation peuvent être utilisés, mais on rencontre plus souvent le PERL et le C/C++.
top
Le PERL, c'est quoi ?
C'est un langage de script fort utilisé pour la réalisation de scripts CGI. Il s'agit d'un langage interpreté, c'est a dire qu'il est compilé lors de chaque exécution.
Il est fort utilisé car il a été écrit pour pouvoir traiter facilement et rapidement de grandes quantités de texte (html ou autre).
Même si il sert beaucoup pour les scripts CGI, le perl sait faire d'autres choses (programmation systême, ...)
top
Dans la doc du script ils parlent de CHMOD, c'est quoi ca ?
chmod est une command Unix permettant de définir les droits d'utilisation d'un fichier. Par extension, beaucoup parlent du chmod d'un fichier pour parler de ses autorisations d'accès, alors qu'on devrait parler du mod...
En gros, on peut se contenter de deux valeurs : 666 pour les fichiers de données et 755 pour les programmes.
Pour fonctionner, vos CGI doivent être chmodés à 755.
Pour aller plus dans le détail (pour ceux qui veulent absolument savoir), le chmod comporte trois digits affectés de gauche à droite au propriétaire du
fichier (celui qui a l'UID marqué automatiquement dans le fichier à la création du fichier par exemple au FTP), au groupe, et à tout le monde. La valeur de chaque digit est la somme des valeurs autorisant à la lecture (valeur 4), à l'écriture (valeur 2) et à l'exécution (valeur 1).
Ainsi, 755 veut dire que le propriétaire a le droit de tout faire, et les autres (groupe et reste du monde) a ne droit de lire (4) et d'exécuter (1).
top
Faut-il chmoder les repertoires ?
Oui, on peut chmoder les repertoires. Mais nous le déconseillons, à moins que vous ne sachiez exactement ce que vous voulez faire : il y a quelques pièges.
Par exemple sur les sites fonctionnant en "suexec", les cgi placés dans des repertoires chmodés en 777 (théoriquement le droit de tout faire pour tout
le monde) ne peuvent pas s'exécuter. Ce mode suexec a tendance à se généraliser, car il est pratique pour permettre aux CGI de tourner sur tout le site tout en respectant la sécurité d'accès.
Ou dois je placer mes scripts CGI pour qu'ils fonctionnent ?
Généralement, on place les scripts CGI dans le répertoire CGI-BIN du serveur. Chez la plupart des hébergeurs, vous pouvez également placer des scripts dans d'autres répertoires à condition qu'ils aient une extension spécifique (.cgi par exemple).
top
Je ne trouve pas de répertoire CGI-BIN, que faire ?
Si vous ne voyez pas de répertoire cgi-bin, c'est probablement par ce que vous n'en avez pas.
Vous êtes probablement hébergé chez un hébergeur gratuit qui ne vous autorise pas a placer des scripts CGI (tel que Free.fr,
Wanadoo.fr, Citeweb, Multimania, Geocities, ....)pour éviter de saturer ses serveurs.
Heureusement pour vous, il existe aussi de gentils hébergeurs gratuits qui vous permettent d'utiliser vos propres scripts
CGI sur leurs serveurs (mais ils se font rares).
C'est le cas de :
- OVH.org : 60 mo, CGI, sous domaine ou domaine, ... En plus de
l'hébergement vous trouverez d'autres services gratuits (livre d'or, compteur, forum, ...)
- Virtual Avenue (en anglais)
- Citeglobe (apparement ce n'est plus gratuit)
- Hypermart (idem)
Vous pouvez également vous adressez à des sites qui proposent des services gratuits (livre d'or, chat, forum, ...) aux webmasters. Vous en trouverez chez :
- OVH net (livre d'or, outil statistique, forum, chat, newslist, FormMail, ...)
- WebMania (livre d'or, newslist, compteur, ...)
- Alibaweb (compteur de clics, form2mail, compteur de connectés, ...)
- SwissTools (forum, livre d'or, recommendation, compteur de connectés, ...)
- WebOutils (livre d'or, recommendation, compteur de connectés, ..)
- ...
remarque : ces listes ne sont absolument pas exhaustives, il en existe beaucoup d'autres.
top
Quelle la différence entre un CGI et une DLL
La notion de dll vient de windows. Il s'agit en fait d'une ressource process (un programme) qui est résident en mémoire : il est chargé et prêt à être exécuté sans qu'on ait besoin de le relire sur disque.
La plupart du temps, une dll est réservée à des fonctions système qui ont besoin d'être exécutées très rapidement sans passer par une recherche sur le disque. On peut très bien avoir une dll qui soit un cgi : il suffit que la dll respecte l'interface CGI. Par exemple, on peut définir une dll que l'on appelle directement d'une page html par la balise <FORM>
top
Est-ce que ASP et PHP sont des CGI ?
Et bien à vrai dire, la réponse n'est pas évidente. En effet, ASP et PHP sont certainement des langages côté serveur, et ils remplissent les mêmes fonctions que les cgi. Toutefois, on peut difficilement admettre qu'il s'agisse de "vrai" CGI, car ils utilisent leurs propres méthodes pour transmettre des données.
Mais par ailleurs, on ne peut pas dire que ce ne sont pas des cgi, car un formulaire passe ses données à une page asp (indiquée le action= de la balise FORM) via un objet (Request.Form) utilisant le CGI.
PHP utilise un autre système ou le passage du formulaire à une page ASP génère en fait directement autant de variables qu'il y a d'objet (par exemple si on définit une zone <input type=text name=nom>, le PHP appelé par le formulaire aura une variable nommée $nom contenant la valeur du champ de saisie). Le PHP va au delà du CGI, et n'est donc pas à proprement parler du
CGI, mais utilise quand même le CGI.
Ma réponse habituelle est de dire que ASP et PHP peuvent être considérés comme des CGI parce qu'ils utilisent des CGI.
top
Ca ne fonctionne pas, que faire ?
Asseyez-vous et pleurez ! ;-)
Plus sérieusement, relisez la documentation livrée avec le script pour vérifier que tout est correct, que vous n'avez pas oublié de spécifier quelque chose, que le chemin d'accès à perl (généralement #!/usr/bin/perl pour un script perl sous systeme unix) et aux différents fichiers est correct.
Vérifiez que vous avez bien uploadé le script en mode ASCII et non pas en mode binaire.
Vérifiez les différents CHMOD du script et des fichiers de données.
Si vous avez un accès telnet, essayez de lancer le script en ligne de commande, vous verrez peut-être apparaître certaines erreurs (fichiers manquants, librairies absentes, ...).
N'oubliez pas que la meilleure personne pour vous dépanner en cas de problèmes (et après avoir cherché et vérifié que tout semblait normal) c'est le créateur du script.
top
Telnet, c'est quoi ?
top
Comment modifier le chemin d'accès ?
Tout d'abord, il faut différencier l'adresse URL (accession par le web) et le chemin d'accès disque d'une page html.
Cette faq peut être accédée par le web avec son adresse URL qui est http://www.scripts-fr.com/faq.shtml.
Mais un script CGI qui tourne sur le serveur et qui voudrait ouvrir cette page, devrait utiliser son chemin d'accès disque. Dans notre cas, le chemin d'accès est /home/scripts/public_html/faq.html.
Enfin, lorsque l'on veut récupérer la page par FTP, on la verra à l'adresse /public_html/faq.html, car les systèmes de sécurité font que le FTP ne voit
rien au-dessus de l'endroit ou on a accès.
Les informations concernant le chemin d'accès à vos fichiers vous sont fournies par votre hébergeur au moment de la création de votre compte. Si vous n'arrivez plus à mettre la main dessus, vous pouvez utiliser un script comme varsystem qui va vous donner différentes informations sur votre serveur.
Ou trouver plus d'infos sur les CGI en général ?
Initiation aux CGI
Initiation au Perl
CGI et Introduction au langage PERL
Mini guide CGI
top
Ou trouver des scripts CGI ?
A mon avis Scripts-fr est la bonne place, mais si vous ne trouvez pas ce que vous cherchez, allez voir :
top
Y a-t'il des alternatives aux CGI ?
Peut-être :-)
Comme alternatives on peut citer :
- l'ASP : cette technologie Microsoft permet de créer des sites web dynamiques en y incorporant des
commandes en VBscript, JScript ou perl.
Quelques sites : Asp-magazine,
G ASP,
ASP-PHP.net.
- PHP est un langage Open Source performant et multiplateformes. Il est très utilisé de par
ses possibilités d'extension (si quelque chose ne convient pas dans le PHP, vous le redeveloppez car
vous avez les sources).
Quelques sites : PHPFrance (php présenté en français),
I love php,
PHP Facile !,
PhpGratuit,
PHPIndex,
PHPInfo et
PHP.net le site officiel.
- les Servlets utilisent du java côté serveur. On peut donc profiter des avantages de Java (orienté objet,
réusabilité du code, multiplateformes).
Plus d'infos chez Sun ou sur
Servlets.com
- Coldfusion : tout comme l'asp ou le php, il s'agit de tag spécifiques insérés dans du code html.
Plus d'infos chez Allaire.
top
Où puis je trouver les scripts qui gèrent cet annuaire (les votes par
exemple) ?
Il y a plusieurs scripts qui gèrent cet annuaire de manière à comptabiliser les votes, à faire les moyennes, à exclure
les sites indisponibles, ... Tous ont été développés spécialement pour Scripts-fr, et leur utilisation pour d'autres sites,
d'autres domaines serait compliquée voir impossible. De plus le code n'a pas été prévu pour être distribué.
La catégorie Portails / Gestion de liens contient des scripts disponibles publiquement et qui ont des fonctions similaires.
top
|
|