Public Pages (public.isima.fr)✯
Guide for students and teachers of 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 a ~, 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 put in a CV or internship report: it is accessible without an account, by anyone — including a recruiter.
Your page already exists
The public_html directory was created at the same time as your account, with the correct permissions and a temporary index.html file. You don’t need to request or activate anything: just 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.
Where to place my files✯
The directory to populate is ~/public_html, in your pedagogical personal directory (/home/local.isima.fr/<your-login>), which you will find identical on all Linux pedagogical 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 file manager of the VM, in graphical session or via Guacamole.
On the computers in the 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, 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 site placed in ~/shared/public_html serves the personal pages 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/
A modification is visible after 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 a problem.
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 file, no visit counter. A form that saves data will not work.
Two other limits, 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 fails, including another user’s files.
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 — causes 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: unfinished 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 this service does not have |
If you push a complete project into public_html, its dependencies and configuration will therefore not be accessible. This is intentional: a .env file published by mistake is a credentials 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 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 denied✯
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 reappears with the next uploaded file.
If the problem persists after these commands, open a ticket indicating your login.
500 — configuration error✯
Almost always due to 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 as reliable as the backup of your personal directory.
- For students, the page exists only as long as the account: no redirection is provided after the end of studies.
Support✯
- Category: “Services” > Subcategory: “Personal Page”
- Specify your login and the URL concerned