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 parfile_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 :
- Le nom du fichier demandé est erroné. (Un répertoire sans
index.htmln'est pas une erreur : il affiche la liste de ses fichiers.) - Le fichier demandé figure dans la liste ci-dessus.
-
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✯
- Catégorie : « Services » > Sous-catégorie : « Page Perso »
- Indiquez votre login et l'URL concernée