FAQ Zéro.
Principes de base pour vous servir de nos scripts CGI Perl


[Retour Homepage | Retour page Perl]

  1. Qu'est ce que Perl ?
  2. Où faut-il installer les scripts sur mon serveur ?
  3. Je n'ai pas de répertoire 'cgi-bin', puis-je en créer un moi-même ?
  4. Je n'ai pas de répertoire cgi-bin, que faire ?
  5. Si mon site est sur Mygale, chez.com ou autre hébergeur gratuit ?
  6. Pouvez-vous héberger des scripts CGI Perl pour moi, car je ne peux pas sur mon site !
  7. Qu'est-ce-que SHTML ?
  8. Comment faire si je n'ai pas droit au SHTML sur mon site ?
  9. CHMOD ?? Comment faire pour chmod 755 sur les scripts ? (sur Unix)
  10. Les scripts fonctionnent sur serveur Unix ok, et NT ?
  11. J'ai trouvé une erreur dans un script, où puis-je la signaler ?
  12. J'ai des questions sur Perl, un problème pour faire mes propres scripts.
  13. Comment commencer à faire mes propres scripts CGI en Perl ? (récupérer Perl, les bouquins, tester des scripts sur son PC, serveur local)


 

  1. Qu'est-ce que Perl ?

    Perl : Practical Extraction and Reporting Language.
    C'est un language de programmation de script , créé par Larry Wall. Il s'agit de scripts non compilés, mais interprétés (en fait semi-compilés...), donc pas de fichier binaire. Il n'existe pas à l'heure actuelle de compilateur Perl fiable, même si le module perl B (B.pm) permet certaines compilations "simples". (J'ai pu personellement compiler certains scripts, mais dans certains cas, cela relève du parcours du combatant...). L'avantage des scripts est évident pour le déboguage, et d'un emploi plus souple, mais en tant que langage non compilé, il est plus lent à l'éxécution, mais un visiteur web ne se rend pas du tout compte.

    Perl est le langage de programmation de scripts CGI le plus populaire et le plus utilisé sur le web.
    YAHOO! France déclare utiliser Perl pour son moteur de recherche, ce qui prouve bien son efficacité.


  2. Où faut-il installer les scripts sur mon serveur ?

    Les scripts CGI Perl ne doivent pas être déposés sur le même répertoire que vos fichiers html ou images. Ils doivent être mis dans un répertoire à part, spécialement fait pour les CGI. Ce répertoire s'appelle quasiment toujours 'cgi-bin'. Si vous y déposez par exemple 'agent-secret.pl', vous pourrez appeler ce script avec : http://www.votre-serveur/cgi-bin/agent-secret.pl
    Vous pouvez créer des sous-répertoires dans le répertoire cgi-bin. Chaque sous-répertoire doit avoir chmod 755 (sur Unix).

  3. Je n'ai pas de répertoire 'cgi-bin', puis-je en créer un moi-même ?

    Par FTP, si vous ne voyez pas de répertoire cgi-bin, c'est que votre hébergeur ne vous l'a pas installé.
    NE CREEZ PAS VOUS MEME LE REPERTOIRE cgi-bin !! C'est votre hébergeur qui doit le faire, et paramétrer le serveur avec. Si vous le faites vous-même, il n'aura pas le paramétrage pour accepter des scripts CGI, et rien ne fonctionnera.

  4. Je n'ai pas de répertoire cgi-bin, que faire ?
    - Demandez à votre hébergeur ou administrateur de site de vous en créer un. A noter que cela n'est généralement pas possible si vous avez un hébergement gratuit, par exemple sur Geocities, Mygale, chez.com, etc. Si vous avez un hébergement payant pour faire vous-même votre site et pas de 'cgi-bin', changez vite d'hébergeur, il est mauvais !!


  5. Si mon site est sur Geocities, Mygale, chez.com ou autre hébergeur gratuit ?

    Vous n'avez probablement pas de répertoire 'cgi-bin', et ne pourrez pas en avoir gratuitement :-(

    Il y a peu d'autres solutions que de prendre un hébergement payant...
    Mais les hébergeurs gratuits commencent à accepter des répertoires cgi-bin. C'est le cas actuellement semble-t-il de www.virtualave.net

  6. Pouvez-vous héberger des scripts CGI Perl pour moi, car je ne peux pas sur mon site !

    NON, vu le nombre élevé de demandes, je ne peux plus le faire. Cela reviendra peut-être plus tard, nous vous tiendrons informé par la mailing-list dans ce cas.
  7. Qu'est-ce-que SHTML (SSI) ?

    SHTML : Server-parsed-html.
    SSI : Server Side Include
    C'est une page html (extension de nom : xxxx.shtml) qui contient des lignes de commande destinées à être exécutées par le serveur et qui inclut le résultat de cette commande dans la page renvoyé au visiteur. exemple <!--#exec cgi="/cgi-bin/compteur1i-ssi.pl"-->. Ceci est appelé "commande SSI" (Server Side Include).

    Le shtml demande plus de temps au serveur car avant de renvoyer la page au visiteur, le serveur regarde chaque ligne et cherche un TAG commencant par '<!--' et finissant par '-->'. Quand il en trouve, il exécute la commande, et inclut le résultat dans la page. Si votre hébergeur ne vous autorise pas un répertoire cgi-bin, vous n'aurez probablement pas droit non plus au SHTML (SSI)

    Ceci occupe plus de ressources système, et n'est donc généralement pas autorisé si vous avez un hébergement gratuit.
  8. Comment faire si je n'ai pas droit au SHTML sur mon site ?

    Même chose que si vous n'avez pas de répertoire "cgi-bin"...

  9. CHMOD ?? Comment faire pour chmod 755 sur les scripts ? (sur Unix)

    Sur serveur Unix, les scripts CGI Perl doivent avoir les droits pour être exécutés par tout le monde. C'est à cela que sert la commande Unix chmod.
    Le 1er chiffre spécifie les droits pour le propriétaire du fichier (celui qui l'a déposé en principe).
    Le 2ème chiffre spécifie les droits pour le groupe propriétaire du fichier.
    Le 3ème chiffre spécifie les droits pour tout le monde sur le fichier (c'est à dire un visiteur Internet).

    Valeur du chiffre :
    0 : aucun droit en lecture, écriture, exécution.
    1 : droit d'éxécution
    2 : droit d'écriture.
    4 : droit de lecture.
    Pour avoir le droit de lecture, exécution d'un script CGI Perl, il faut donc : 1+4 = 5 pour tout le monde (755)
    Pour avoir le droit de lecture, écriture, exécution d'un script CGI Perl, il faut donc : 1+2+4 = 7 pour tout le monde (777)

    La commande sous Unix est donc : chmod 755 nom-du-fichier.pl pour un script Perl classique.
    Le logiciel WS_FTP Le a une commande pour cela (click bouton gauche sur le fichier, puis click droit de la souris, chmod dans le menu qui apparaît).

    Remarque : Un fichier html du type livre d'Or/Pétiton doit pouvoir être modifié, donc droit en écriture (777)
  10. Les scripts fonctionnent sur serveur Unix ok, et NT ?

    Tous nos scripts ont été testés sur UNIX avec PERL 5 (Linux et FreeBSD et Solaris, serveur Apache 1.2.6). Certains scripts peuvent nécessiter des modifications pour fonctionner sous windows NT, notamment à cause des envois d'e-mail. N'étant pas spécialistes NT, nous n'avons pas de version NT de nos scripts.

    Si une âme charitable connaissant bien perl sous NT voulait bien entreprendre les modifications des scripts pour qu'ils fonctionnent sous NT, la communauté lui serait bien reconnaissante...


  11. J'ai trouvé une erreur dans un script, où puis-je la signaler ?

    Merci de vos contributions !
    Si vous trouvez un bug, merci de nous le signaler par e-mail à info@perl-gratuit.com .
    Les scripts seront alors corrigés, et mis à jour.

  12. J'ai des questions sur Perl, un problème pour faire mes propres scripts.

    Je vous conseille de jeter un oeil aux archives des newsgroups sur perl à : http://www.dejanews.com . Il y a fort à parier que quelqu'un a déjà posé la question.
    Si vous ne trouvez pas de réponse à votre question, allez sur le newsgroup : news:fr.comp.lang.perl .
    Merci de ne pas m'envoyer vos problèmes rencontrés dans votre propre programmation, les newsgroups sont fait pour cela, et vous seront d'une meilleure aide.

  13. Comment commencer à faire mes propres scripts CGI en Perl ?

    D'abord, un bouquin est indispensable pour s'y mettre sérieusement ! Je vous conseille "Perl 5" Editions Simon et Shuster MacMillan (800 pages, 250 à 300 FF). Ce livre explique Perl 5, pas à pas, lentement et en détail. Mais il n'explique pas comment interfacer les scripts avec le web (le côté CGI de la chose - Common Gateway Interface - ). Pour compléter, "CGI avec Perl" (même éditeur, 450 pages, 200 FF environ) peut vous être utile. Si vous ne souhaitez pas crever votre budget, vous pouvez tout simplement utiliser les pages d'aide en html livrés avec le package Perl 5.

    Bien, maintenant, il vous faut avoir Perl 5 installé sur votre ordinateur pour tester au fur et à mesure vos scripts.
    Vous trouverez la dernière version (gratis) pour PC Window sà : http://www.activestate.com . Pour Unix (Linux ou autre) : http://www.perl.org ou autre site CPAN (gratis encore). Une doc assez complète (sous forme de fichiers html/POD) est livrée avec.

    Pour faire fonctionner vos scripts à partir de votre navigateur, il vous faut un serveur. Nous allons supposer que vous n'avez pas de réseau, et un PC. (Pour Unix, installez le serveur Apache).
    - Je vous suggère d'utiliser le serveur OmniHttpd de Omnicron. C'est un petit serveur qui fonctionne très bien, et est très adapté à l'usage que vous allez en faire. Il a l'avantage de ne pas être Microsoft :-)  (c'est à dire qu'il ne fait pas 36 000 MégaOctets, mais 1 seul, qu'il ne plante pas, qu'il est simple à configurer, et en plus il est fait pour prendre en charge perl à la base). Allez télécharger cette merveille à : http://www.omnicron.ab.ca/httpd/ . La version 1 est freeware, mais a un peu de mal avec les SSI (fichiers xxx.shtml), la version 2 et suivantes est vraiement bien (très bien), mais limitée dans le temps si vous ne payez pas. Mais, quand vous arrivez à la date d'expiration, vou retournez télécharger la version suivante, si vous n'avez toujours pas de sous, etc.
    Une fois installé, indiquez au logiciel où se trouve perl.exe sur votre disque dur. Et lisez bien la doc. Vous pourrez appeler vos pages par votre navigateur préféré (Netscape et non pas Microsoft bien sûr :-)  ) avec l'adresse : http://127.0.0.1 (cette adresse correspond à appeler votre propre ordinateur, votre ordinateur est alors client et serveur)

    Si vous connaissez quelques soucis d'installation, persévérez, lisez la doc. OmniHTTPd est plus simple à installer que Apache (serveur universel, qui existe maintenant en version pour PC). Je ne parle pas des serveurs Microsoft pour Win-dose95/98 (Personnal Web Server, Front Page Personnal Web Serveur), car ce ne sont pas les plus adaptés pour utiliser Perl, et accessoirement, je n'aime pas Microsoft et leurs applications énormes qui plantent sans arrêt (cela n'engage que moi bien sûr...).


    Faites vos premiers scripts, et sachez que l'apprentissage de Perl ne se fait pas en 2 mois ! Il faut de la patience, et encore de la patience, et du temps. Attention, vos scripts peuvent avoir des trous de sécurité que des crackers mal intentionnés s'empresseront d'utiliser pour faire des dégâts sur votre serveur. C'est le danger de tout script CGI (écrit en Perl, en C, ou autre), donc prudence, votre script doit vérifier tout ce que le visiteur peut taper dans un formulaire, surtout si le script envoir des emails.
    Pour progesser plus vite, tâchez de comprendre des scripts déjà faits par d'autres.
    (truc no 1 : mettre :
    print ("Content-type: text/html\n\n");
    vers le début de votre script, avant d'afficher quoi que ce soit d'autre)

    Bon apprentissage ...

Sébastien Joncheray, http://www.perl-gratuit.com