Utilisation des serveurs Forge et Pegase
Forge est un serveur Web de test, accessible en local depuis les machines du département Informatique de l'UFR Sciences d'Angers (en tant que forge.info-ua) et depuis l'extérieur (en tant que forge.info.univ-angers.fr).
Il est a priori possible d'écrire les pages Web dans n'importe quel répertoire et avec n'importe quel éditeur texte par exemple avec kwrite (conseillé), gedit, vi, gvim, xemacs pour Linux, ou avec notepad, wordpad pour Windows. Une fois le document sauvegardé (on n'a pas besoin de quitter l'éditeur pour que la page soit lisible), il faut alors utiliser le protocole file: pour voir le fichier, ce qui se fait tout naturellement avec le menu Fichier, sous-menu Ouvrir (ou File / Open en anglais) d'un navigateur quelconque.
Toutefois pour que les fichiers soient visibles automatiquement par le serveur Web sur forge, il faut que ces fichiers soient dans le répertoire forge_html ou un de ses sous-répertoires et qu'on y accède à l'aide du protocole http. Attention : entre forge et html il y a un caractère "espace souligné" (ce n'est pas le signe moins). Lorsque les fichiers sont dans ce répertoire, l'adresse (ou "URL") associée au fichier c.htm du sous-répertoire b de forge_html pour l'utilisateur a sous forge est alors
http://forge.info-ua/~a/b/c.htm Par défaut, le serveur Web cherche un fichier index.htm ou index.html dans le répertoire désigné. Ainsi, l'adresse
http://forge.info-ua/~a/ fait référence au fichier index.htm situé dans le répertoire forge_html de l'utilisateur a.
S'il n'y a pas de fichier index.htm la configuration du serveur interdit d'afficher la liste des fichiers du répertoire, comme pour notre répertoire dw2005 (regardez bien : ce n'est pas l'erreur 404, "page non trouvée" mais bien l'erreur "Forbidden").
Version de PHP : pour qu'un fichier dont l'extension est .php soit interprété par le serveur Web, il faut impérativement l'ouvrir à l'aide du protocole http dans le navigateur. Le choix de configuration sur forge fait que c'est l'interpéteur php5 qui est utilisé par défaut, ce qu'on peut vérifier ici.
Pegase est un serveur Web plus officiel, accessible depuis n'importe quel ordinateur connecté à Internet.
L'adresse associée au fichier c.htm du sous-répertoire b de public_html pour l'utilisateur a qui était auparavant pour forge
http://forge.info-ua/~a/b/c.htm devient alors
http://www.info.univ-angers.fr/pub/a/b/c.htm
On notera la disparition du symbole "tilde" et l'apparition du mot "pub".
Un certain nombre d'enseignants ont des fichiers de cours sur forge et d'autres fichiers sur pegase ; certains ont même des fichiers sur les deux sites. Il est prudent de vérifier l'absence de fichiers cités en cours sur les deux sites avant de déranger les enseignants sous prétexte que vous ne trouvez pas les fichiers.
Sur pegase, l'interpéteur PHP est en version 4, ce qu'on voit ici.
Rappelons qu'on peut travailler à distance depuis windows chez soi sur la machine sirius à condition d'utiliser une connection sécurisée via putty et que le transfert des fichiers vers sirius et forge est possible de partout via Internet à condition d'utiliser winscp3. Consulter la page officielle à ce sujet.
Sous linux, avec ssh -X, sftp et gftp (en mode SSH), tout est dit !
Information locale (janvier 2007)
Quand on doit développer des pages Web, la façon la plus agréable pour travailler dans les salles informatiques à l'UFR Sciences d'Angers est de démarrer les ordinateurs sous Ubuntu Linux, d'attendre que le panneau du gestionnaire de bureaux Gnome apparaisse pour se connecter ensuite en tant qu'étudiant. Une fois sur la machine locale, on peut "passer" sur forge avec la commande ssh -X login@forge pour se connecter où login est l'identifiant pour lequel vous avez signé.
Comment développer efficacement en html/php/mysql ?
Lorsqu'on écrit des pages html via php avec éventuellement des informations provenant de bases de données SQL, il n'est pas facile de trouver d'où provient l'erreur (lorsqu'il y a erreur). En effet, cela peut venir du programme php. L'oubli d'un point-virgule, par exemple, interdit l'exécution du programme et le navigateur (par exemple) affiche une page blanche (vide) sans dire pourquoi. L'erreur peut être une faute de frappe qui fait que la requete SQL est invalide. Il n'y a lors aucune variable de retour et là encore on ne voit rien à l'écran. Enfin, dans certains cas, la requête est correcte, mais le code php pour traiter le tableau associatif de retour est incorrect et on n'a toujours rien à l'écran.
Pour développer efficacement, il faut d'abord utiliser un éditeur avec coloration syntaxique et affichage du numéro de ligne. On écrit fréquemment en Php des choses comme
echo "<input name=\"taille\">" ; echo "Nom = ".$tdn[$idn].\"" ;
La coloration comme
<?php
echo "<input name=\"taille\""> ;
$Nom = "\"".$tdn[$idn]."\"" ;
echo "<input name=\"taille>" ;
echo "Nom = $tdn[$idn]" ;
?>
permet de trouver facilement s'il y a un guillement en trop ou en moins.
Pour une erreur simple comme l'oubli de point-virgule, le mieux est d'utiliser un terminal sur forge en ligne de commande. L'appel de l'interpréteur indique alors l'erreur et le numéro de ligne. Par exemple :
php essai.php Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in essai.php on line 47
Pour une erreur de requête sql, le mieux, en cours de développement est de systématiquement afficher la requête avant de l'exécuter. Ainsi quand on exécute
mysql_query("select $nomRep from election") ;
qui contient une faute de frappe dans le nom de la variable (nomRep au lieu de nomResp), la requete demandée est select from election au lieu de select nomResp from election. Il vaut mieux écrire
$req = "select $nomcamp from election" ; echo "<pre>$req</pre>" ; mysql_query($req") ;
De même pour la récupération via mysql_fetch_array, au lieu dewhile ($ldr= mysql_fetch_array(res)) { echo "<td>".$ldr[$nomRep] ; ...
Il est préférable d'écrirewhile ($ldr= mysql_fetch_array(res)) { td() ; echo "<pre>" ; print_r($ldr) ; echo "</pre>" ; ...
Il sera toujours temps, lorsque le programme sera au point, de masquer ces instructions en les mettant en commentaire...
Il est donc conseillé
- d'avoir un bon éditeur,
- d'avoir un terminal ouvert sur forge en bash,
- d'avoir un terminal ouvert sur forge sous mysql,
- d'afficher systèmatiquement les requetes et les retours de requetes,
- de n'utiliser qu'au bout du compte Firefox.
Outils logiciels en local et à distance
Pour le développement Web avec comme but final de déposer les programmes sur forge, il faut au moins trois outils : un éditeur de programmes, un logiciel de transfert de fichiers, un logiciel de connexion pour la ligne de commande. Il y a plusieurs situations de développement : en local, à partir d'un accès à Sirius, en local sur une machine sous linux ous Xp ; à distance, par exemple chez soi sous Windows ou sous Linux. Le tableau suivant reprend les outils logiciels que nous conseillons après plusieurs années d'utilisation pour ces situations :
Situation Editeur Transfert Commandes local sirius ou linux kwrite gftp ssh local windows XP notepad2 winscp putty distant windows XP pspad winscp putty Pour finir, attention à la notion de serveur : il y a des serveurs de fichiers, des serveurs de mail, des serveurs de pages web, des serveurs de bases de données et des serveurs de connexion... ne confondez pas les uns avec les autres. En particulier sirius ne permet que la connexion en mode telnet ou X. Sirius n'est donc pas un serveur Web, ni un serveur de bases de données...
Retour à la page principale de (gH)