Skip to content

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 via file_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:

  1. The requested filename is incorrect. (A directory without index.html is not an error: it displays a list of its files.)
  2. The requested file is in the list above.
  3. 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

https://support.isima.fr/

  • Category: “Services” > Subcategory: “Personal Page”
  • Specify your login and the URL concerned