Accueil > Boîtes à outils > Table rase > Les CGI sont-ils disponibles ?

Attention, cet article est obsolète. Il contient des informations qui ne sont plus à jour, comme tous les articles de la rubrique "Table rase".

Les CGI sont-ils disponibles ?

Bonne nouvelle

La gestion des CGI est intégrée à la plate-forme.
Le but n’est pas ici d’apprendre à réaliser ces scripts mais d’indiquer comment les activer sur la plateforme, puis de vous donner quelques éléments de tests.

Mise en route

Par défaut, le répertoire cgi-bin n’existe pas dans votre arborescence.
Il faut donc en premier lieu créer un répertoire cgi-bin dans le dossier ./html à la racine de votre espace web pour un domaine donné.

Ce qui donne par exemple :

|mondomaine.com
|--www.mondomaine.com
|----html
|------index.html
|------cgi-bin
|----logs
|----php-include

Ce répertoire est automatiquement configuré pour exécuter les scripts cgi.
Tout fichier qui sera présent dans ce répertoire sera interprété comme étant un script cgi (donc une image en .gif ne sera pas affichée). Enfin chaque fichier présent dans ce répertoire devra avoir avec des droits d’exécution (minimum 700 - on y reviendra).

Un CGI en perl

Donc pour un script en perl, on peut partir sur simple :

#!/usr/bin/perl
print "Content-type: text/html\r\n\r\n" ;
print "Hello, World." ;
  • on l’enregistre comme hello.pl
  • on upload
  • on met les droits d’exécution pour le propriétaire
  • on appelle http://www.mondomaine.com/cgi-bin/hello.pl

Et tout est bon pour se lancer dans des scripts plus évolués !

Un CGI en python

Il n’y pas de python sur la plateforme, alors comme ça c’est réglé !

CGI binaire

Les CGI binaires sont possibles.
Le seul bémol c’est que la plateforme tourne sous FreeBSD 6-4, et il faut donc que les binaires soient compilés sous le même système pour que ça tourne.

Donc par exemple pour un programme en C++ :

# include <iostream>
using namespace std;
int main()
{
        cout << "Content-type: text/html\r\n\r\n" ;
        cout << "Hello, new world CGI in C++ !" << endl;
        return 0;
}
  • on compile ça sous FreeBSD 6-4, ce qui donne le fichier lié à cette page
  • on upload
  • on règle les droits d’exécution (exécution pour propriétaire)
  • on appelle la page http://www.mondomaine.com/cgi-bin/pgm_hello

Compléments

  • Obtenir FreeBSD 6-4 qui peut tourner comme invité avec VirtualBox (lien vers cette page pour activer la connexion )
  • J’ai eu des soucis en oubliant le content-type qui renvoie Erreur Interne
  • Pas de soucis particuliers avec le transfert ftp, vérifier à sait-on jamais le mode de transfert
  • Concernant les systèmes de paiements via scripts CGI, le distributeur peut vous fournir un binaire closed source. Il faut alors lui demander un binaire compilé sous FreeBSD 6-4.