TD: Lancement d'un serveur et scripts CGI

Travail à effectuer

Avant de commencez ce TD, il faut terminer la première partie du TD sur les CSS (celle qui concerne l'exemple fd.css)

Première partie : Serveur HTTP Apache

  1. Installez le serveur Apache pour linux chez vous, dans le répertoire "~/apache". Pour cela, tapez la commande :
    ~devernay/apache/bin/install-apache ~/apache
    l'argument est le répertoire dans lequel vous souhaitez installer apache.
  2. Lancez apache :
    ~/apache/bin/apachectl start
    L'argument "start" peux être remplacé par:
    N'oubliez pas d'éteindre votre serveur à la fin du TD ! (~/apache/bin/apachectl stop)
  3. Ouvrez un navigateur sur la home page de votre serveur : http://nom_de_votre_machine.unice.fr:8080/
    Le nom de votre machine s'obtient avec la commande unix "hostname"
  4. Lancer des fenêtres permettant de surveiller le journal des accès et le journal des erreurs de votre serveur : Notes : la commande Unix "tail -f fichier" permet de visualiser un fichier pendant qu'il est en train d'être rempli (ce qui est le cas des logs du serveur). "xterm -e commande&" permet de lancer un terminal où s'exécute "commande".
  5. Accédez à différents documents de votre serveur, et observez son comportement, notamment à travers les logs :
    1. La home page du serveur
    2. La home page d'un utilisateur
    3. Un document qui n'existe pas (toto par exemple)
    4. Un script cgi (http://nom_de_votre_machine.unice.fr:8080/cgi-bin/test-cgi
  6. L'arborescence de votre serveur contient les répertoires suivants :
  7. Examinez (faites "file nomfichier" puis "more nomfichier" si ce n'est pas un binaire) le contenu des scripts CGI pré-installés sur le serveur (dans cgi-bin). En quel language sont-ils écrits ?

Deuxième partie : CGI

  1. Examinez les exemples de scripts du TD écrits dans les différents languages
  2. Écrivez une "form" html et un script utilisant la balise "isindex" pour exécuter la commande "finger" sur un utilisateur (si on entre abuse@clio.unice.fr, le script doit exécuter "finger abuse@clio.unice.fr" et renvoyer le résultat avec un type MIME text/plain).
  3. Faites une page HTML utilisant les principaux tags HTML permettant de faire des formulaires.
  4. Je vous propose d'écrire un script CGI en shell, en C puis en Perl qui  récupère les paramètres saisis et qui génère une page HTML présentant les résultats.
  5. Shell Unix  : 
  6. Perl : N'oubliez pas que : Pour des indications sur les scripts à écrire pour le projet, allez voir la page du projet.
  7. Langage C .
  8. Plus dur : écrire une interface (html + cgi) essayant de deviner le DISPLAY de la personne qui consulte la page et qui lance sur demande (appui sur un bouton aprés choix dans un menu) une application X11 (on testera avec xclock, edt, etc...) sur sa machine. On traitera les cas d'erreur si le DISPLAY est mal positionné ou si la machine cible n'est pas en xhost+.

Liens pour le TD

Comment installer son serveur Apache

Si vous avez besoin d'installer vous-même un serveur Apache sur une machine, voici la marche à suivre :

  1. Si vous êtes sur Linux, regardez si votre distribution contient une version précompilée d'Apache. Si oui, installez-la et c'est terminé.
  2. Sinon, ou si le "package" fourni par votre distribution ne vous satisfait pas, il va falloir recompiler Apache. Pour celà, récupérez une distribution binaire d'Apache pour votre machine depuis www.apache.org. Si cette distribution vous satisfait (suivez les instructions fournies avec), tout va bien. Sinon, récupérez une distribution source (lors de l'écriture du TD, c'était le fichier apache_1.3.12.tar.gz)
  3. Depuis votre shell Unix, exécutez la séquence:
    gzip -dc apache_1.3.12.tar.gz |tar xvf - 
    cd apache_1.3.12
    ./configure --prefix=$HOME/apache --enable-module=all --enable-shared=max
    make
    make install
    
  4. Pour installer PHP3, récupérez la distrib source depuis le site www.php.net
  5. Installez PHP3 avec la séquence:
    gzip -dc ~devernay/www/cours/internetMI/php-3.0.16.tar.gz |tar xvf -
    cd php-3.0.16
    ./configure --with-gdbm --with-ndbm --with-db2 --enable-track-vars --with-apxs=$HOME/apache/bin/apxs --with-xml
    make
    make install
    

Frederic Devernay

Last modified: Tue Mar 21 10:33:54 MET 2000