Public Pages (public.isima.fr)✯
Guide for students and teachers at ISIMA.
In one sentence
Everything you place in the public_html directory of your pedagogical personal directory is published, without authentication, on https://public.isima.fr/<your-login>.
Do not confuse with staff personal pages
perso.isima.fr / perso.limos.fr is another service, reserved for staff: URL with /~login, .htaccess files read, content taken from your personal space ~/shared.
On public.isima.fr the URL does not include ~, and the content is taken from your pedagogical personal directory — the one used for your VMs, classrooms and pedagogical servers.
Your address✯
https://public.isima.fr/<your-uca-login>
No tilde, no subdomain: https://public.isima.fr/~your-login returns a 404 error, intentionally. This is the address to include in a CV or internship report: it is accessible without an account, even by a recruiter.
Your page already exists
The public_html directory was created with your account, with the correct permissions and a temporary index.html file. You do not need to request or activate anything: simply replace this file.
Publication is automatic
Any readable public_html is served. If you do not want your page to be published, empty your public_html or request its removal from the support team.
Where to place my files✯
The directory to populate is ~/public_html, in your pedagogical personal directory (/home/local.isima.fr/<your-login>), which is identical across all pedagogical Linux machines.
From your personal virtual machine, your personal directory is already the correct one:
ssh <your-login>@vm-<your-login>.local.isima.fr
cd ~/public_html
You can also simply open public_html in the VM's file manager, either in graphical session or via Guacamole.
On the computers in classrooms and on the pedagogical servers running Linux, you log into this same personal directory: ~/public_html refers to the same directory as on your VM.
cd ~/public_html
Any SFTP client (WinSCP, FileZilla, Cyberduck, scp, rsync) can upload files by targeting your VM:
scp -r mysite/* <your-login>@vm-<your-login>.local.isima.fr:public_html/
From outside the school, first connect to the VPN. Authentication is done with your UCA account, or with a Kerberos ticket.
~/shared is not ~
Your personal space ~/shared — the P: drive under Windows — is a separate space. A website placed in ~/shared/public_html serves the personal pages at perso.*, not public.isima.fr.
Publishing my page✯
Replace the temporary index.html with your own:
public_html/
├── index.html ← your home page
├── style.css
└── images/
Changes are visible within about one minute. There is no publication to trigger or cache to clear: the server reads your files directly. If the change does not appear after a few minutes, clear your browser cache (Ctrl+Shift+R) before reporting an issue.
PHP✯
PHP 8.5 is available. A .php file is executed; index.php serves as the home page if no index.html is present.
Installed extensions: bcmath, bz2, calendar, curl, exif, gd, gmp, lexbor, mbstring, mysqlnd, openssl, pcntl, pdo_mysql, pdo_pgsql, pgsql, redis, soap, sockets, zip.
Your space is read-only for PHP
A script can read your files, but it cannot write anything: no uploads, no SQLite database, no cache files, no visit counters. A form that saves data will not work.
Two other limitations, for the same reason — a single interpreter serves the approximately 2,180 accounts:
- no execution functions (
exec,shell_exec,system…), and no network access viafile_get_contents('http://…'); - your script can only see your own directory: any attempt to read elsewhere will fail, including for another user.
Other PHP-related extensions — .phps, .phtml, .phar, .inc — are not served at all: they are not executed, and displaying them would publish your source code, often including credentials.
What the service does not do✯
No CGI, no SSI. However, .py, .sh, .c, .java are served as readable sources: this is a legitimate pedagogical use.
A directory without index.html displays a list of its files. The files listed below do not appear in the listing — they are hidden from the directory index as they are blocked from download.
.htaccess files are read, but partially. The following directives are allowed: RewriteEngine and RewriteRule, ErrorDocument, AddType, DirectoryIndex, IndexOptions and IndexIgnore. Everything else — notably Options and Require — triggers a 500 error for the entire directory (see below).
Your pages are not indexed by search engines. This is a deliberate choice of the service: incomplete lab work content, personal data published without consideration, and lack of consent for permanent indexing.
Files that are never served✯
Regardless of their permissions, these files return 404:
.git/, .svn/, .hg/ |
version control directories |
.env, .htaccess, .htpasswd |
configuration files |
node_modules/, vendor/, .venv/, __pycache__/ |
dependencies |
*.sql, *.sqlite, *.db |
database exports |
*.key, *.pem, id_rsa |
private keys |
*.bak, *~, *.swp, backups/ |
backups |
*.phps, *.phtml, *.phar, *.inc |
PHP source code (.php is executed) |
*.cgi, *.pl, *.jsp, *.asp |
intended for an engine not available on this service |
If you push a complete project into public_html, its dependencies and configuration will therefore not be accessible. This is intentional: accidentally publishing a .env file is a credential leak.
My page returns an error✯
404 — page not found✯
In order of frequency:
- The requested filename is incorrect. (A directory without
index.htmlis not an error: it displays a list of its files.) - The requested file is listed in the list above.
-
Your personal directory is not traversable by the server. Check:
ls -ld ~The output should look like
drwx--x--x. If not:chmod 711 ~
403 — access forbidden✯
The server can see your directory but cannot read it. This is almost always the result of copying from Windows or a network share, which overwrites 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
Why these four commands
The web server reads your files via the grppersoapache group. The 2 in 2750 (setgid bit) ensures that any file subsequently created in this directory retains this group; the default ACL ensures it remains readable even if your umask is restrictive. Without these two settings, the problem will reappear the next time a file is uploaded.
If the problem persists after these commands, open a ticket indicating your login.
500 — configuration error✯
Almost always caused by an .htaccess file containing a directive the server does not allow. A single rejected line makes the entire directory inaccessible, and Apache's error message does not specify which one.
The two common causes come from .htaccess files written for perso.isima.fr, where these lines are permitted:
Options +FollowSymLinks # not allowed here
Require all granted # not allowed here
Remove them: on this service, your pages are served without them.
Limits✯
- Your personal directory is subject to a quota; no specific limit is applied to what is served by the web.
- Your page has no dedicated backup: it is only as reliable as the backup of your personal directory.
- For students, the page exists only for the duration of the account: no redirection is provided after the end of studies.
Support✯
- Category: "Services" > Subcategory: "Personal Page"
- Indicate your login and the relevant URL