Aller au contenu

Pages publiques (public.isima.fr)

Guide destiné aux étudiants et aux enseignants de l'ISIMA.

En une phrase

Tout ce que vous déposez dans le répertoire public_html de votre répertoire personnel pédagogique est publié, sans authentification, sur https://public.isima.fr/<votre-login>.

À ne pas confondre avec les pages perso du personnel

perso.isima.fr / perso.limos.fr est un autre service, réservé au personnel : URL en /~login, .htaccess lus, contenu pris dans votre espace personnel ~/shared.

Sur public.isima.fr l'URL ne comporte pas de ~, et le contenu est pris dans votre répertoire personnel pédagogique — celui de vos VMs, des salles de cours et des serveurs pédagogiques.

Votre adresse

https://public.isima.fr/<votre-login-uca>

Pas de tilde, pas de sous-domaine : https://public.isima.fr/~votre-login renvoie une erreur 404, volontairement. C'est cette adresse-là qu'il faut mettre dans un CV ou un rapport de stage : elle est consultable sans compte, par n'importe qui — y compris un recruteur.

Votre page existe déjà

Le répertoire public_html a été créé en même temps que votre compte, avec les bonnes permissions et un index.html provisoire. Vous n'avez rien à demander ni à activer : il suffit de remplacer ce fichier.

La publication est automatique

Tout public_html lisible est servi. Si vous ne souhaitez pas que votre page soit publiée, videz votre public_html ou demandez son retrait au support.

Où déposer mes fichiers

Le répertoire à alimenter est ~/public_html, dans votre répertoire personnel pédagogique (/home/local.isima.fr/<votre-login>), celui que vous retrouvez identique sur toutes les machines pédagogiques Linux.

Depuis votre machine virtuelle personnelle, votre répertoire personnel est déjà le bon :

ssh <votre-login>@vm-<votre-login>.local.isima.fr
cd ~/public_html

Vous pouvez aussi ouvrir simplement public_html dans le gestionnaire de fichiers de la VM, en session graphique ou via Guacamole.

Sur les postes des salles de cours et sur les serveurs pédagogiques Linux, vous ouvrez la session sur ce même répertoire personnel : ~/public_html y désigne le même répertoire que sur votre VM.

cd ~/public_html

N'importe quel client SFTP (WinSCP, FileZilla, Cyberduck, scp, rsync) peut déposer des fichiers, en visant votre VM :

scp -r monsite/* <votre-login>@vm-<votre-login>.local.isima.fr:public_html/

Depuis l'extérieur de l'école, connectez-vous d'abord au VPN. L'authentification se fait avec votre compte UCA, ou avec un ticket Kerberos.

~/shared n'est pas ~

Votre espace personnel ~/shared — le lecteur P: sous Windows — est un espace distinct. Un site déposé dans ~/shared/public_html alimente les pages perso perso.*, pas public.isima.fr.

Publier ma page

Remplacez l'index.html provisoire par le vôtre :

public_html/
├── index.html        ← votre page d'accueil
├── style.css
└── images/

Une modification est visible au bout d'une minute environ. Il n'y a aucune publication à déclencher ni cache à vider : le serveur lit directement vos fichiers. Si la modification n'apparaît pas au bout de quelques minutes, videz le cache de votre navigateur (Ctrl+Maj+R) avant de signaler un problème.

PHP

PHP 8.5 est disponible. Un fichier .php est exécuté ; index.php sert de page d'accueil si aucun index.html n'est présent.

Extensions installées : bcmath, bz2, calendar, curl, exif, gd, gmp, lexbor, mbstring, mysqlnd, openssl, pcntl, pdo_mysql, pdo_pgsql, pgsql, redis, soap, sockets, zip.

Votre espace est en lecture seule pour PHP

Un script peut lire vos fichiers, il ne peut rien écrire : ni téléversement, ni base SQLite, ni fichier de cache, ni compteur de visites. Un formulaire qui enregistre quelque chose ne fonctionnera pas.

Deux autres limites, pour la même raison — un seul interpréteur sert les quelque 2 180 comptes :

  • aucune fonction d'exécution (exec, shell_exec, system…), et pas d'accès réseau par file_get_contents('http://…') ;
  • votre script ne voit que votre propre répertoire : toute lecture ailleurs échoue, y compris chez un autre utilisateur.

Les autres extensions de la famille — .phps, .phtml, .phar, .inc — ne sont pas servies du tout : elles ne sont pas exécutées, et les afficher publierait votre code source, souvent avec les identifiants qu'il contient.

Ce que le service ne fait pas

Pas de CGI, pas de SSI. En revanche .py, .sh, .c, .java sont servis, comme sources à lire : c'est un usage pédagogique légitime.

Un répertoire sans index.html affiche la liste de ses fichiers. Les fichiers de la liste ci-dessous n'y apparaissent pas — ils sont masqués du listing comme ils sont refusés au téléchargement.

Les .htaccess sont lus, mais partiellement. Sont autorisés RewriteEngine et RewriteRule, ErrorDocument, AddType, DirectoryIndex, IndexOptions et IndexIgnore. Le reste — notamment Options et Require — provoque une erreur 500 sur tout le répertoire (voir plus bas).

Vos pages ne sont pas indexées par les moteurs de recherche. C'est un choix du service : contenus de TP inachevés, données personnelles publiées sans recul, et absence de consentement à une indexation durable.

Fichiers qui ne sont jamais servis

Quels que soient leurs droits, ces fichiers renvoient 404 :

.git/, .svn/, .hg/ répertoires de contrôle de version
.env, .htaccess, .htpasswd fichiers de configuration
node_modules/, vendor/, .venv/, __pycache__/ dépendances
*.sql, *.sqlite, *.db exports de bases
*.key, *.pem, id_rsa clés privées
*.bak, *~, *.swp, backups/ sauvegardes
*.phps, *.phtml, *.phar, *.inc code source PHP (le .php, lui, est exécuté)
*.cgi, *.pl, *.jsp, *.asp destinés à un moteur que ce service n'a pas

Si vous poussez un projet complet dans public_html, ses dépendances et sa configuration ne seront donc pas accessibles. C'est voulu : un .env publié par mégarde est une fuite d'identifiants.

Ma page renvoie une erreur

404 — page introuvable

Dans l'ordre de fréquence :

  1. Le nom du fichier demandé est erroné. (Un répertoire sans index.html n'est pas une erreur : il affiche la liste de ses fichiers.)
  2. Le fichier demandé figure dans la liste ci-dessus.
  3. Votre répertoire personnel n'est pas traversable par le serveur. Vérifiez :

    ls -ld ~
    

    La sortie doit ressembler à drwx--x--x. Sinon :

    chmod 711 ~
    

403 — accès refusé

Le serveur voit votre répertoire mais ne peut pas le lire. C'est presque toujours la conséquence d'une copie depuis Windows ou depuis un partage réseau, qui écrase les permissions.

chgrp -R grppersoapache ~/public_html
find ~/public_html -type d -exec chmod 2750 {} +
find ~/public_html -type f -exec chmod 640  {} +
setfacl -d -m group::r-x ~/public_html

Pourquoi ces quatre commandes

Le serveur web lit vos fichiers via le groupe grppersoapache. Le 2 de 2750 (bit setgid) fait que tout fichier créé ensuite dans ce répertoire garde ce groupe ; l'ACL par défaut garantit qu'il reste lisible même si votre umask est restrictif. Sans ces deux réglages, le problème réapparaît au prochain fichier déposé.

Si le problème persiste après ces commandes, ouvrez un ticket en indiquant votre login.

500 — erreur de configuration

Presque toujours un fichier .htaccess contenant une directive que le serveur n'autorise pas. Une seule ligne refusée rend tout le répertoire inaccessible, et le message d'Apache ne dit pas laquelle.

Les deux causes courantes viennent de .htaccess écrits pour perso.isima.fr, où ces lignes sont permises :

Options +FollowSymLinks   # refusé ici
Require all granted       # refusé ici

Supprimez-les : sur ce service, vos pages sont servies sans elles.

Limites

  • Votre répertoire personnel est soumis à un quota ; aucune limite spécifique n'est appliquée à ce qui est servi par le web.
  • Votre page n'a pas de sauvegarde propre : elle vaut ce que vaut la sauvegarde de votre répertoire personnel.
  • Pour les étudiants, la page vit le temps du compte : aucune redirection n'est prévue après la fin de la scolarité.

Support

https://support.isima.fr/

  • Catégorie : « Services » > Sous-catégorie : « Page Perso »
  • Indiquez votre login et l'URL concernée