NB : Cest un retour d'expérience que j'ai pu réaliser, non seulement grâce aux navigations dans divers espaces de ce forum, mais aussi en étant abondamment accompagné par les capacités impressionnantes de navigation et de construction de sens de perplexity.ai (sur base Claude 4.5)
***
Bonjour,
Je partage ici une expérience de mise à jour assez complète, au cas où cela puisse aider d’autres personnes dans une configuration similaire (hébergement mutualisé, SMTP externe, DNS chez un autre registrar, etc.).
1. Contexte initial
- Plateforme : Omnispace / Agora-Project mise à jour vers la version 26.5.2
- Hébergement : mutualisé chez Infomaniak (PHP 8.x, Apache 2.4, MariaDB 10.11)[1][2]
- Nom de domaine : géré chez un autre prestataire (OVH), avec plusieurs boîtes mail déjà en production chez différents clients
- Objectif : mettre à jour l’Agora vers 26.5.2, puis réactiver l’envoi de mails (notifications, réinitialisation de mot de passe, etc.) en attendant une migration mail plus globale
2. Premier blocage : erreur d’update et fichier `UPDATE_LOCK.log`
Après la mise à jour vers 26.5.2, l’accès à l’Agora renvoyait uniquement :
> `Update error : check Apache/PHP logs for details. When the issue is resolved : delete the 'DATAS/UPDATE_LOCK.log' file.`
La suppression du fichier `DATAS/UPDATE_LOCK.log` ne suffisait pas : à chaque accès, Omnispace relançait la procédure de mise à jour, échouait à nouveau, et recréait le fichier de verrouillage.
Côté logs PHP, on voyait un
dépassement du temps d’exécution sur une opération de dump / migration de base de données, typiquement sur une ligne du type :
```php
$dumpTxt = trim($dumpTxt, ",");
```
Ce qui indiquait clairement que la migration de base de données prenait plus de temps que le `max_execution_time` autorisé.
3. Ajustement des limites PHP/Apache sur Infomaniak
Sur Infomaniak, les limites par défaut étaient de l’ordre de 60 secondes / ~640 Mo.
Depuis le Manager Infomaniak, il est possible d’augmenter ces valeurs jusqu’à 300 secondes et 1280 Mo :[2][1]
- Manager → Hébergement Web → site concerné → Paramètres avancés
- Onglet
PHP / Apache
- Augmentation de :
- `max_execution_time` (par exemple à 300 s)
- `memory_limit` (par exemple à 1024M ou 1280M)
Après ce réglage, la mise à jour a pu progresser… jusqu’à un nouveau type d’erreur.
4. Deuxième blocage : `Call to undefined function set_time_limit()`
Une fois la mise à jour bien entamée, l’Agora a commencé à renvoyer des erreurs de ce type :
```text
Fatal error: Uncaught Error: Call to undefined function set_time_limit()
in .../app/Common/DbUpdate.php on line 90
```
Puis, plus tard, au moment d’envoyer des notifications ou de traiter certains fichiers :
```text
Fatal error: Uncaught Error: Call to undefined function set_time_limit()
in .../app/ModFile/CtrlFile.php on line 193
```
En résumé :
- Omnispace utilise `set_time_limit()` à plusieurs endroits (mise à jour, gestion de fichiers, etc.) pour prolonger ou supprimer la limite de temps d’exécution.
- Sur l’hébergement mutualisé Infomaniak,
`set_time_limit()` est désactivée par défaut, ce qui provoque une erreur fatale dès qu’elle est appelée.[3]
5. Deux approches possibles
5.1. Patch léger dans le code Omnispace
Dans un premier temps, j’ai patché le code aux endroits concernés, par exemple :
```php
// Avant
set_time_limit(0);
// Après
if (function_exists('set_time_limit')) {
set_time_limit(0);
}
```
Ce patch est propre (il ne change pas la logique métier) et permet d’éviter l’erreur fatale sur les plateformes où la fonction est désactivée.
On peut l’appliquer dans :
- `app/Common/DbUpdate.php` (mise à jour)
- `app/ModFile/CtrlFile.php` (gestion des fichiers et notifications)
- et tout autre fichier qui appelle `set_time_limit()` directement
5.2. Solution globale recommandée : activer `set_time_limit()` dans le Manager Infomaniak
Infomaniak fournit toutefois une
solution officielle pour gérer cette fonction :[3]
1. Se connecter au
Manager Infomaniak
2. Aller dans
Hébergement Web → cliquer sur le nom du site
3. Cliquer sur
Gérer sous
Paramètres avancés
4. Onglet
PHP / Apache
5. Repérer la ligne
`set_time_limit` et activer le toggle
On
6. Enregistrer
Une fois `set_time_limit()` réactivée à ce niveau, tous les appels d’Omnispace fonctionnent sans devoir patcher le code. C’est la solution la plus pérenne, tant que l’hébergeur le permet.
> Remarque : `set_time_limit()` reste limitée par la valeur de `max_execution_time` définie dans le même écran, on ne peut pas dépasser ce plafond via cette fonction.[4][3]
6. SMTP et authentification mail (SPF/DKIM) avec un domaine chez un autre registrar
Une fois la plateforme stabilisée côté PHP, j’ai rencontré un autre problème :
les mails de notification envoyés depuis l’Agora vers des adresses Gmail étaient rejetés avec cette erreur :
```text
550-5.7.26 Your email has been blocked because the sender is unauthenticated.
Gmail requires all senders to authenticate with either SPF or DKIM.
...
DKIM = did not pass
SPF [lefildesidees.fr] with ip [...] = did not pass
```
Contexte :
- Domaine `example.fr` géré chez OVH
- Hébergement et SMTP chez Infomaniak (`mail.infomaniak.com`)
- Des boîtes mail déjà existantes chez différents prestataires
6.1. Configuration SMTP dans l’Agora
Côté Omnispace, la config SMTP fonctionnelle avec Infomaniak était :
- Serveur SMTP : `mail.infomaniak.com`
- Port : `587`
- Chiffrement : TLS / STARTTLS
- Authentification : obligatoire
- Identifiant : adresse mail complète (ex. `
contact@example.fr`)
- Mot de passe : celui de cette adresse
- Expéditeur : même adresse mail que l’identifiant
6.2. SPF sur la zone DNS OVH
Le SPF initial côté OVH ressemblait à :
```text
v=spf1 include:mx.ovh.com ~all
```
Il fallait y
ajouter Infomaniak :
```text
v=spf1 include:mx.ovh.com include:spf.infomaniak.ch ~all
```
Attention :
- Le bon include est `spf.infomaniak.ch` (sans underscore)[5][6]
- Il ne doit exister
qu’un seul enregistrement SPF par domaine (une seule ligne TXT commençant par `v=spf1`)[7]
#### 6.3. DKIM Infomaniak avec DNS externe
Infomaniak signe les mails avec DKIM via un enregistrement spécifique :
1. Dans le Manager Infomaniak →
Service Mail → sélectionner le service → menu
Sécurité globale
2. Section
DKIM : récupérer l’enregistrement TXT proposé (sélecteur du type `2024xxxx._domainkey`)[8][9]
3. Dans la zone DNS OVH, ajouter cet enregistrement TXT tel quel (sans rajouter une deuxième fois le nom de domaine)
Après propagation (15–30 minutes avec un TTL bas), les mails envoyés depuis l’Agora via SMTP Infomaniak sont devenus correctement authentifiés et acceptés par Gmail.
7. Résultat final
À l’arrivée, tout fonctionne de manière stable :
- Mise à jour 26.5.2 terminée malgré une base de données un peu lourde et des limites serveur strictes
- `set_time_limit()` activée proprement via le Manager Infomaniak (et patch de sécurité possible côté code si besoin)
- SMTP configuré avec `mail.infomaniak.com`
- SPF et DKIM corrects pour un domaine géré ailleurs, ce qui améliore la délivrabilité générale
***
Voilà ce que mon assistant pseudo-intelligent m'a permis de réaliser. Pas mal d'allers-retours entre Infomaniak, Omnispace et OVH, d'essais et d'erreurs, avant d'arriver à une Agora qui fonctionne à merveille, ça en valait la peine, pour faire honneur au travail que représente le développement d'Omnispace.
Mon assistant pseudo-intelligent propose aussi modestement d'
envelopper les appels à `set_time_limit()` dans un `if (function_exists('set_time_limit')) dans le code source, pour éviter les erreurs fatales sur certains mutualisés où cette fonction reste désactivée par défaut.
Sans obligation aucune, bien sûr, ce sont juste ses deux centimes complémentaires de contribution à cette plate-forme qui m'apporte grande satisfaction depuis plusieurs années.
***
Belle journée,
Jean-Marie
Sources
[1] 10x more resources for your web applications and scripts
https://news.infomaniak.com/en/10x-more ... d-scripts/
[2] 10x plus de ressources pour vos scripts et applications Web • Infomaniak
https://news.infomaniak.com/10x-plus-de ... tions-web/
[3] Gérer la fonction set_time_limit
https://www.infomaniak.com/fr/support/f ... time-limit
[4] set_time_limit - Manual
https://www.php.net/manual/fr/function. ... -limit.php
[5] Manage SPF records - Infomaniak
https://www.infomaniak.com/en/support/f ... pf-records
[6] Comment configurer SPF pour Infomaniak ? - Skysnag
https://www.skysnag.com/fr/blog/how-to- ... nfomaniak/
[7] Gérer les enregistrements SPF - Infomaniak
https://www.infomaniak.com/fr/support/f ... ements-spf
[8] Gérer les enregistrements DKIM - Infomaniak
https://www.infomaniak.com/fr/support/f ... ments-dkim
[9] Add Infomaniak DKIM on Cloudflare
https://www.infomaniak.com/en/support/f ... cloudflare
[10] version 3.1.9 (07-2016) - OLD - Omnispace - The Agora Project
https://www.agora-project.net/discussio ... hp?t=21959
[11]

Activar/desactivar la función set_time_limit -...
https://www.infomaniak.com/es/asistenci ... time-limit
[12] Forum : Probléme de download de fichiers volumineux
https://grafikart.fr/forum/12872
[13] Temps d'arret automatique php
https://openclassrooms.com/forum/sujet/ ... ion-script
[14] Taille des fichiers - Agora-Project - Omnispace
https://www.omnispace.fr/appMisc/discus ... hp?t=22536
[15] Résoudre une erreur liée aux limitations de ressources - Infomaniak
https://www.infomaniak.com/fr/support/f ... ressources
[16] Sous-Domaine et Session
https://openclassrooms.com/forum/sujet/ ... sion-12481
[17]

FAQ - Help centre: Cloud Server
https://www.infomaniak.com/en/support/f ... oud-server
[18] Maximum execution time exceeded WordPress - Tibow Webdesign
https://thibautsoufflet.fr/blog/maximum ... wordpress/
[19] Collaborative Workspace Powered by ...
https://www.agora-project.net/app/doc/D ... ION_EN.pdf
[20] version 3.1.0 (03-2016) - OLD - Omnispace - The Agora Project
http://omnispace.fr/agora-project/appMi ... hp?t=21894
[21] VERSION 3.7.4.2 / 20.12 - Omnispace - The Agora Project
https://www.omnispace.fr/AP-OMNISPACE/a ... hp?p=34370