Base de connaissances
1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Ce guide technique détaille les limites de ressources sur les hébergements Web Infomaniak ; il est essentiel de distinguer le temps réel (horloge) du temps de calcul (processeur) pour comprendre l'origine des interruptions de scripts.
1. Temps de connexion MySQL (I/O)
Limite : 30 secondes réelles
Cette limite correspond au temps absolu écoulé "montre en main". Elle concerne la communication entre PHP et le serveur de base de données (MySQL/MariaDB).
Dès qu'une connexion est ouverte, le serveur de base de données alloue 30 secondes maximum pour recevoir la requête, l'exécuter et renvoyer les résultats. Si ce délai est dépassé (souvent à cause d'une requête SQL mal optimisée), le serveur MySQL coupe brutalement la connexion. Cela génère généralement l'erreur MySQL server has gone away.
2. Temps de traitement PHP (CPU)
Limite : 10 secondes CPU
Cette limite concerne exclusivement la puissance de calcul consommée par le serveur Web pour exécuter le code PHP.
Il est crucial de noter que le temps d'attente ne compte pas. Lorsque PHP attend une réponse de la base de données, il est en pause et ne consomme quasiment pas de temps CPU. Par conséquent, un script sera interrompu par le serveur Web uniquement s'il effectue des calculs intensifs (boucles complexes, cryptographie, traitement de fichiers) pendant plus de 10 secondes cumulées.
Interaction des deux limites
Pour garantir la stabilité de l'application, chaque opération doit respecter simultanément ces deux contraintes distinctes :
- L'application dispose de 30 secondes de temps total pour interagir avec la base de données (latence réseau + exécution SQL).
- L'application dispose de 10 secondes de temps de calcul pur pour traiter les données reçues.
Exemple de fonctionnement valide : un script qui attend 25 secondes une réponse complexe de MySQL (I/O) puis traite le résultat pendant 2 secondes (CPU) fonctionnera parfaitement, car il n'a dépassé aucun des deux quotas individuels, même si le temps total est de 27 secondes.
Lien vers cette FAQ: https://faq.infomaniak.com/481
Cette FAQ a été utile?
Ce guide explique comment rediriger le trafic d'un nom de domaine alias (synonyme) vers votre domaine principal, ou forcer l'affichage du domaine principal dans la barre d'adresse d'un navigateur comme Brave, Chrome, Edge, Firefox, Opera, Safari….
Prévenir le contenu dupliqué (duplicate content)
Imaginons que votre site soit hébergé sous le domaine principal example.com et que vous ayez configuré un domaine alias tel que example-alias.com.
Par défaut, lorsqu'un visiteur saisit l'une ou l'autre de ces adresses dans son navigateur, l'URL tapée reste affichée. Cela peut générer du contenu dupliqué (duplicate content), ce qui nuit au référencement naturel (SEO).
Pour éviter cela, vous pouvez forcer la redirection : si un visiteur tape example-alias.com, il sera automatiquement redirigé vers example.com.
Cette configuration s'effectue dans le fichier .htaccess situé à la racine de votre hébergement (généralement dans le dossier /web via votre accès FTP). Si ce fichier n'existe pas encore, vous devez le créer.
Insérez ensuite les directives suivantes dans le fichier :
RewriteEngine On
# Force HTTPS and canonical domain redirection
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]Adaptez le code ci-dessus selon vos besoins :
- Remplacez
example.compar votre nom de domaine principal et son extension (.com, .org, .ch, etc.). Ajoutezwww.devant votre domaine si vous préférez forcer l'affichage du sous-domainewww. - Si une boucle de redirection survient, vous pouvez remplacer la condition de protocole par
RewriteCond %{HTTPS} off(notamment si votre hébergement n'utilise pas de proxy inverse / reverse proxy).
Pour en savoir plus, consultez la documentation relative aux redirections automatiques vers HTTPS.
Lien vers cette FAQ: https://faq.infomaniak.com/482
Cette FAQ a été utile?
Ce guide concerne la synchronisation des serveurs via le protocole NTP (Network Time Protocol) et la configuration de la timezone sur les serveurs d'Infomaniak.
Synchronisation précise des serveurs via NTP
Les serveurs d'Infomaniak sont tous synchronisés via le protocole NTP. La société met à disposition ses propres serveurs NTP stratum-1 accessibles au public pour une utilisation flexible.
Pour intégrer ces serveurs dans vos paramètres, utiliser l'enregistrement suivant: pool.ntp.infomaniak.ch.
La configuration par défaut de la timezone est en UTC. Cependant, les fonctions PHP sont conçues pour prendre en compte différentes timezones en fonction des besoins spécifiques.
Pour ajuster la timezone dans vos scripts PHP, utiliser la fonction date_default_timezone_set('UTC').
MySQL: spécificités temporelles
L'infrastructure Infomaniak prend en charge les fonctionnalités permettant de travailler avec des données temporelles de manière précise et efficace, en tenant compte des fuseaux horaires, ce qui est crucial pour de nombreuses applications modernes:
- MySQL utilise une base de données de fuseaux horaires pour stocker et gérer les informations sur les fuseaux horaires.
- La table
mysql.time_zonecontient les données des fuseaux horaires, y compris les informations sur les décalages de temps, les noms de fuseaux horaires, etc. - La fonction CONVERT_TZ est utilisée pour convertir une heure d'un fuseau horaire à un autre dans MySQL avec la syntaxe suivante :
CONVERT_TZ(dt, from_tz, to_tz), oĂą :dtest la date/heure Ă convertir.from_tzest le fuseau horaire source.to_tzest le fuseau horaire cible.
- Exemple:
CONVERT_TZ('2024-05-14 12:00:00', 'UTC', 'America/New_York')convertira le temps 12:00:00 UTC en temps local Ă New York.
Lien vers cette FAQ: https://faq.infomaniak.com/487
Cette FAQ a été utile?
Ce guide permet de résoudre une erreur de type "Invalid query: MySQL server has gone away".
Préambule
- Ce type d'erreur a souvent comme origine le fait de garder une connexion MySQL ouverte sans soumettre de requĂŞtes pendant un intervalle de temps au-delĂ duquel la connexion est close: http://dev.mysql.com/doc/refman/5.7/en/gone-away.html
- Les variables
wait_timeoutetinteractive_timeoutqui contrôlent cette déconnexion sont à 30 secondes: http://dev.mysql.com/doc/refman/5.0/en/communication-errors.html
Solutions
Pour éviter l'erreur "MySQL server has gone away", voici plusieurs approches possibles:
Vérification et reconnexion automatique
Avant d'exécuter une requête, il est recommandé de tester si la connexion MySQL est toujours active. Si la connexion a été fermée, vous pouvez la rétablir automatiquement avant de poursuivre avec votre requête. Voici un exemple en PHP :
if (!mysqli_ping($connexion)) {
mysqli_close($connexion);
$connexion = mysqli_connect($host, $user, $password, $database);
}La fonction mysqli_ping() vérifie si la connexion est toujours valide. Si elle ne l'est pas, le script ferme la connexion et en ouvre une nouvelle.
Envoi de "Ping" régulier
Un autre moyen consiste à exécuter un script qui envoie régulièrement un "ping" à la base de données pour maintenir la connexion active. Par exemple vous pourriez créer une tâche planifiée (cron job) qui envoie une requête légère, comme SELECT 1; à intervalles réguliers.
Ajustement des paramètres MySQL (Serveur Cloud)
Avec un Serveur Cloud, vous pouvez augmenter les valeurs des variables wait_timeout et interactive_timeout depuis le menu MySQL de votre serveur pour prolonger la durée de la connexion avant qu'elle ne soit fermée.
Lien vers cette FAQ: https://faq.infomaniak.com/499
Cette FAQ a été utile?
Ce guide présente le rôle du fichier browscap.ini, utilisé par PHP pour identifier certaines caractéristiques d'un navigateur comme Brave, Chrome, Edge, Firefox, Opera, Safari… (nom, version, système d'exploitation et capacités) à partir de son en-tête HTTP User-Agent.
L'utilisation de browscap.ini est aujourd'hui principalement destinée à assurer la compatibilité avec des applications existantes. Pour les nouveaux développements, des méthodes plus modernes sont généralement privilégiées.
Utilisation avec la fonction get_browser()
La fonction native PHP get_browser() nécessite l'accès à un fichier browscap.ini à jour afin d'identifier les caractéristiques du navigateur ayant effectué la requête.
Sur les Hébergements Web Infomaniak, ce fichier est généralement disponible à l'emplacement suivant :
/opt/php/lib/php/browscap.iniSi nécessaire, vous pouvez vérifier son contenu à l'aide du script suivant :
<?php
header('Content-Type: text/plain');
$file = '/opt/php/lib/php/browscap.ini';
if (file_exists($file)) {
echo file_get_contents($file);
} else {
echo 'File not found.';
}En raison de sa taille et du coût de son chargement, l'utilisation de browscap.ini peut avoir un impact sur les performances des applications qui s'appuient sur get_browser().
Alternatives recommandées
Pour les nouveaux projets, il est généralement préférable d'utiliser des solutions plus adaptées aux pratiques actuelles du développement web :
- Bibliothèques PHP installées avec Composer, telles que
matomo/device-detectorouwhichbrowser/parser, qui proposent une détection régulièrement mise à jour et plus complète des navigateurs et appareils. - User-Agent Client Hints (UA-CH), lorsque le navigateur les prend en charge, afin d'obtenir des informations structurées via les mécanismes prévus par les standards HTTP actuels.
- Détection de fonctionnalités (Feature Detection), en vérifiant directement la disponibilité d'une fonctionnalité (par exemple en JavaScript ou avec la règle CSS
@supports) plutôt qu'en déduisant le comportement à partir du navigateur utilisé.
Lien vers cette FAQ: https://faq.infomaniak.com/505
Cette FAQ a été utile?
Ce guide concerne Django, un framework open-source de développement Web en Python.
Prérequis
- Un VPS Cloud ou VPS Lite (hébergement mutualisé et Serveur Cloud Managé non supportés).
- Python 3 et gestionnaire de paquets
pipinstallés sur le serveur et accès SSH complet. - Maîtriser la ligne de commande (CLI Linux) et la gestion des environnements virtuels Python (ex.
venv).
Installation et initialisation
Voici les étapes générales pour initialiser votre environnement sur votre serveur :
- Connectez-vous Ă votre VPS en SSH.
- Créez et activez un environnement virtuel pour isoler les dépendances de votre projet :
python3 -m venv my_environment && source my_environment/bin/activate - Installez le framework :
pip install django - Initialisez votre projet :
django-admin startproject name_of_project
Mise en production
Le serveur de développement intégré (runserver) n'est pas conçu pour un environnement de production. Pour exposer votre application sur Internet en toute sécurité, configurez un serveur d'applications (ex. Gunicorn ou uWSGI) derrière un proxy inverse (Reverse Proxy) tel que Nginx ou Apache.
Lien vers cette FAQ: https://faq.infomaniak.com/516
Cette FAQ a été utile?
Ce guide permet de trouver l'adresse IP publique de votre équipement, ce qui peut être utile lors de certaines demandes de support notamment.
Afficher l'adresse IP publique sur l'appareil connecté
Cliquez ici afin d'obtenir l'adresse IP publique de votre appareil au format IPv4 et IPv6.
Méthodes alternatives
Visitez ipinfo.io ou ifconfig.me.
… sur macOS
- Depuis une application de type
Terminal(interface en ligne de commande,CLI /Command Line Interface) sur votre appareil, exécutez la commandecurl ifconfig.meet appuyez sur entrée. - L'adresse affichée est l'adresse IP publique de l'ordinateur.
N'oubliez pas que cette adresse peut changer périodiquement, surtout si le routeur redémarre ou si le fournisseur d'accès internet utilise une attribution dynamique des adresses IP.
Pour automatiser la recherche de l'adresse IP publique, utilisez des commandes ou des scripts qui interrogent des services tels que api.ipify.org ...
Lien vers cette FAQ: https://faq.infomaniak.com/528
Cette FAQ a été utile?
Ce guide explique comment utiliser PHPMailer avec les hébergements Web Infomaniak pour envoyer des e-mails depuis un site Internet.
⚠ATTENTION ⚠‍
Infomaniak garantit la conformité de ses services aux protocoles standards (IMAP, S3, etc.) mais ne fournit pas d'aide supplémentaire pour les services ou logiciels externes, car leur configuration peut changer selon le fournisseur ou l'éditeur. Ce guide est donc fourni à titre indicatif et sa mise en place reste sous votre responsabilité (réf.: Politique de support / Art. 11.9 des CGU). Si besoin, une personne qualifiée peut vous accompagner.
Préambule
- PHPMailer est une librairie PHP permettant de créer et d'envoyer des e-mails depuis un site, notamment via SMTP.
- Elle permet notamment d'envoyer des messages au format HTML, d'ajouter une version texte alternative, de gérer les pièces jointes et d'utiliser une authentification SMTP.
- Pour un envoi authentifié via SMTP, l'environnement PHP utilisé par le site doit être compatible avec une connexion chiffrée récente, notamment TLS 1.2 ou supérieur.
- Une version trop ancienne de PHP ou de la librairie OpenSSL utilisée par PHP peut provoquer une erreur de connexion ou d'authentification, même si l'adresse mail et le mot de passe sont corrects.
- N'utilisez pas PHP 5.3/5.4 pour ce type d'envoi ; utilisez une version de PHP récente et maintenue.
- Avec l'envoi SMTP authentifié, l'adresse utilisée comme expéditeur doit correspondre à l'adresse mail utilisée pour l'authentification SMTP.
Installer PHPMailer
Pour utiliser PHPMailer, installez la librairie dans les fichiers de votre site.
- Téléchargez PHPMailer depuis son dépôt officiel ou installez-la avec Composer si votre projet l'utilise.
- Copiez les fichiers de PHPMailer dans un répertoire de votre site par FTP.
Chargez les fichiers nécessaires dans votre script PHP, en adaptant le chemin selon l'emplacement choisi:
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require **DIR** . '/PHPMailer/src/Exception.php'; require **DIR** . '/PHPMailer/src/PHPMailer.php'; require **DIR** . '/PHPMailer/src/SMTP.php';
Configurer l'envoi SMTP avec Infomaniak
Utilisez les paramètres SMTP authentifiés suivants:
- Serveur SMTP:
mail.infomaniak.com - Port:
465 - Chiffrement:
SMTPS/ SSL-TLS - Authentification: obligatoire
- Nom d'utilisateur: l'adresse mail complète
- Mot de passe: le mot de passe de l'adresse mail utilisée
Exemple de configuration complète:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require **DIR** . '/PHPMailer/src/Exception.php';
require **DIR** . '/PHPMailer/src/PHPMailer.php';
require **DIR** . '/PHPMailer/src/SMTP.php';
$mail = new PHPMailer(true);
try {
// Configuration SMTP
$mail->isSMTP();
$mail->Host = 'mail.infomaniak.com';
$mail->SMTPAuth = true;
$mail->Username = '[sender@domain.xyz](mailto:sender@domain.xyz)';
$mail->Password = 'mot_de_passe_de_l_adresse_mail';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port = 465;
$mail->CharSet = 'UTF-8';
```
// Expéditeur
// L'adresse doit correspondre à celle utilisée pour l'authentification SMTP.
$mail->setFrom('sender@domain.xyz', 'Nom du site');
// Destinataire
$mail->addAddress('recipient@example.com');
// Adresse de réponse facultative
$mail->addReplyTo('sender@domain.xyz', 'Nom du site');
// Contenu du message
$mail->isHTML(true);
$mail->Subject = 'Message envoyé depuis le site';
$mail->Body = '<p>Contenu HTML du message.</p>';
$mail->AltBody = 'Contenu texte du message.';
$mail->send();
echo 'Message envoyé';
```
} catch (Exception $e) {
echo 'Le message n'a pas pu être envoyé. Erreur: ' . htmlspecialchars($mail->ErrorInfo);
}Si votre application impose l'utilisation du port 587, utilisez STARTTLS:
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
Vérifier la version de PHP et la compatibilité TLS
L'envoi SMTP authentifié nécessite une connexion chiffrée récente. Si le site utilise une version trop ancienne de PHP, par exemple PHP 5.3, ou une librairie OpenSSL trop ancienne, PHPMailer peut échouer avant ou pendant l'authentification. Les erreurs peuvent alors être trompeuses, par exemple:
SMTP connect() failedCould not authenticatestream_socket_enable_crypto()- une erreur d'authentification alors que le mot de passe est correct
Dans ce cas, vérifiez les points suivants:
- la version de PHP utilisée par le site;
- la version d'OpenSSL utilisée par PHP;
- la version de PHPMailer utilisée par votre projet;
- la correspondance entre le port SMTP et le chiffrement choisi.
Pour une configuration fiable, utilisez une version récente de PHP, compatible avec TLS 1.2 ou supérieur, ainsi qu'une version actuelle de PHPMailer. Prenez connaissance de ces guides si nécessaire:
- Modifier la version de PHP d'un site
- Résoudre un problème PHP lié à une version obsolète
- Afficher les informations techniques du site
Résoudre une erreur Sender mismatch
L'erreur Sender mismatch SMTP code: 550 Additional SMTP info: 5.7.1 peut se produire lorsque l'adresse utilisée comme expéditeur ne correspond pas à l'adresse mail utilisée pour l'authentification SMTP. Exemple à éviter:
$mail->Username = 'sender@domain.xyz';
$mail->setFrom('another-address@domain.xyz', 'Nom du site');Dans cet exemple, le script s'authentifie avec sender@domain.xyz, mais tente d'envoyer le message avec une autre adresse d'expéditeur.
Utilisez la même adresse mail pour l'authentification SMTP et pour l'expéditeur:
$mail->Username = 'sender@domain.xyz';
$mail->setFrom('sender@domain.xyz', 'Nom du site');Le nom d'expéditeur peut être personnalisé, mais l'adresse mail doit rester cohérente avec le compte SMTP utilisé.
Cas d'un formulaire de contact
Si un visiteur renseigne son adresse mail dans un formulaire, ne l'utilisez pas comme adresse d'expéditeur du message. Utilisez l'adresse mail authentifiée comme expéditeur, puis ajoutez l'adresse du visiteur comme adresse de réponse.
Exemple:
$mail->Username = 'sender@domain.xyz';
$mail->setFrom('sender@domain.xyz', 'Formulaire du site');
$mail->addReplyTo($email_visiteur);Cette configuration permet de répondre au visiteur depuis votre logiciel de messagerie sans envoyer le message avec une adresse d'expéditeur non autorisée.
Activer le mode debug temporairement
En cas d'erreur, activez temporairement le mode debug de PHPMailer afin d'obtenir plus de détails sur la connexion SMTP:
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';Désactivez ce mode après vos tests afin de ne pas afficher d'informations techniques aux visiteurs du site.
En savoir plus
Lien vers cette FAQ: https://faq.infomaniak.com/576
Cette FAQ a été utile?
Ce guide concerne l'utilisation de la technologie Java qui, notamment en termes de consommation de mémoire RAM, est incompatible avec les contraintes des offres d'hébergement mutualisé Infomaniak. Les applications Java sont souvent gourmandes en ressources, ce qui peut affecter les performances et la stabilité des serveurs partagés entre plusieurs utilisateurs.
Support limité aux applets côté client
Seules les applets Java côté client, c'est-à -dire exécutées dans un navigateur comme Brave, Chrome, Edge, Firefox, Opera, Safari… de l'utilisateur, sont supportées par les serveurs mutualisés. Ces applets ne requièrent pas de ressources serveurs importantes et ne posent donc pas les mêmes problèmes que les applications Java côté serveur. Par conséquent, aucun produit utilisant la technologie Java côté serveur n'est pris en charge.
Produits et technologies non supportés
Voici une liste non exhaustive des produits et technologies spécifiques qui ne sont pas supportés sur les serveurs mutualisés :
- Apache OFBiz
- Greenstone
- Opentaps
- Compiere (qui nécessite Tomcat)
- Play!
- Solr
- Resin
- Jboss
- Scala
- jftp
- Jakarta EE (anciennement Java 2 Platform, Enterprise Edition, ou J2EE puis Java Platform, Enterprise Edition ou Java EE)
Cette politique permet de garantir des performances optimales et une utilisation équitable des ressources pour tous les utilisateurs des serveurs mutualisés.
Lien vers cette FAQ: https://faq.infomaniak.com/591
Cette FAQ a été utile?
Ce guide traite de l'exécution du langage C# et du framework .NET via l'implémentation Mono sur les hébergements Infomaniak.
Technologies pour le développement logiciel
Pour utiliser le langage C# et le framework .NET avec l'implémentation Mono, afin de développer des applications logicielles déployables et exécutables sur plusieurs plateformes, en dehors de l'environnement Windows, il est recommandé d'opter pour des solutions telles que :
La souplesse et la portabilité offertes par ces environnements multiplateformes signifient qu'un hébergement Web mutualisé ne permet pas l'exécution de projets basés sur C#, .NET ou Mono.
Lien vers cette FAQ: https://faq.infomaniak.com/607
Cette FAQ a été utile?
Ce guide explique comment modifier une offre d'Hébergement Web existante afin de par exemple pouvoir y héberger des sites supplémentaires si le quota de sites maximum est atteint, ou obtenir une solution d'hébergement plus récente pour bénéficier des dernières versions de PHP & MySQL.
Commander des sites, de l'espace disque ou des IP supplémentaires
Pour accéder au configurateur de l'hébergement Web:
- Cliquez ici afin d'accéder à la gestion des hébergements & sites sur votre Manager Infomaniak (❓: aide).
- Cliquez sur le menu d'action ⋮ situé à droite de l'hébergement concerné.
- Cliquez sur Modifier l'offre.
- Augmentez les valeurs que vous souhaitez modifier.
- Cliquez sur le bouton Suivant pour accéder au paiement des modifications apportées à l'hébergement:

Passer sur un serveur le plus récent
Pour obtenir une solution d'hébergement sur un serveur plus récent et ainsi bénéficier entre autre des dernières versions de PHP & MySQL, vous pouvez soit…
- … prendre connaissance de cet autre guide en suivant la procédure qui y est indiquée jusqu'au bout:

- … prendre connaissance de cet autre guide en suivant la procédure qui y est indiquée jusqu'au point 4 puis cliquez sur le bouton pour mettre à jour:

Si aucun bandeau d'information n'est affiché, c'est que vous bénéficiez déjà d'une offre d'hébergement récente.
Lien vers cette FAQ: https://faq.infomaniak.com/626
Cette FAQ a été utile?
Ce guide explique comment héberger une application ASP, ASP.NET Framework ou ASP.NET Core (.NET moderne) sur les infrastructures Cloud Infomaniak.
Préambule
- Les offres d'Hébergement Web et de Serveur Cloud Managé reposent sur une infrastructure Linux / Apache ; elles ne prennent pas en charge IIS (Internet Information Services) ni l'exécution native des applications développées pour Microsoft Windows (ASP classique ou ASP.NET Framework).
- Les solutions & alternatives sont présentées ci-dessous.
Détail des solutions d'hébergement compatibles
1. VPS Cloud avec Windows Server ASP classique (ASP 3.0) & ASP.NET Framework (v1.0 Ă 4.8)
Pour les applications reposant sur l'écosystème Windows traditionnel (IIS, VBScript, C#, .NET Framework) :
- Déployez un VPS Cloud ou VPS Lite avec Windows Server (versions 2019, 2022 ou 2025).
- Activez le rôle Web Server (IIS) avec un accès administrateur complet via RDP.
2. Jelastic Cloud (ASP.NET Core & .NET moderne)
Pour les applications ASP.NET Core multiplateformes :
- Déploiement simplifié via conteneur Docker ou runtime .NET.
- Redimensionnement automatique des ressources (CPU / RAM) et haute disponibilité.
3. VPS Cloud Linux ASP.NET Core (.NET 6, 8, 9+)
Vous pouvez également héberger une application ASP.NET Core sur un VPS Cloud Linux (Debian, Ubuntu, etc.) configuré avec un reverse proxy (Nginx ou Apache) devant le serveur Kestrel de .NET.
4. Public Cloud (OpenStack)
Adapté aux projets d'entreprise nécessitant un réseau virtuel privé (VPC), du stockage block/object ou un déploiement hybride à grande échelle.
Lien vers cette FAQ: https://faq.infomaniak.com/631
Cette FAQ a été utile?
Ce guide explique comment limiter le hotlinking sur les fichiers hébergés par votre Hébergement Web Infomaniak.
Préambule
- Le hotlinking consiste pour un site tiers à afficher directement des images, vidéos ou autres fichiers hébergés sur votre serveur en utilisant leur URL publique, sans les héberger lui-même.
- Cette pratique utilise les ressources de votre hébergement (bande passante, connexions HTTP et ressources serveur) sans votre autorisation. Elle peut également porter atteinte à vos droits d'auteur ou à la maîtrise de la diffusion de vos contenus.
- Même si les capacités réseau actuelles rendent l'impact sur la bande passante généralement moins critique qu'auparavant, il reste recommandé de limiter le hotlinking afin d'éviter une consommation inutile des ressources de votre hébergement.
EmpĂŞcher le hotlinking avec un fichier .htaccess
Si votre site utilise le serveur web Apache et le module mod_rewrite, vous pouvez restreindre l'accès direct à certains fichiers en ajoutant des règles dans le fichier .htaccess situé à la racine de votre site.
L'exemple ci-dessous protège les principaux formats d'image, y compris les formats modernes WebP et AVIF :
RewriteEngine On
# Allow requests without a Referer header
RewriteCond %{HTTP_REFERER} !^$
# Allow requests from your own domain (replace with your domain)
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?votre-domaine\.com [NC]
# Allow major search engines
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?google\. [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?bing\. [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yahoo\. [NC]
# Block hotlinking for image files
RewriteRule \.(jpg|jpeg|png|gif|svg|webp|avif)$ - [F,NC,L]Ă€ adapter avant utilisation :
- Remplacez
votre-domaine\.compar votre propre nom de domaine. - Les requĂŞtes ne comportant pas d'en-tĂŞte HTTP
Referersont autorisées afin de préserver la compatibilité avec certains navigateurs, applications ou mécanismes de protection de la vie privée qui ne transmettent pas cet en-tête. - Les règles autorisant les principaux moteurs de recherche permettent à leurs robots d'accéder aux images afin qu'elles puissent être indexées. Les supprimer empêchera l'indexation de ces images.
- La règle utilise l'option
[F], qui renvoie une réponse HTTP403 Forbidden. Cette méthode bloque immédiatement la requête sans servir de contenu supplémentaire, ce qui limite la consommation des ressources du serveur.
Si vous utilisez Cloudflare comme CDN devant votre hébergement Infomaniak, vous pouvez également activer la fonctionnalité Hotlink Protection depuis son interface d'administration afin de bloquer ce type d'accès avant qu'il n'atteigne votre hébergement.
Lien vers cette FAQ: https://faq.infomaniak.com/678
Cette FAQ a été utile?
Ce guide présente des commandes qui peuvent être exécutées dans un but de tester une connexion ou un réseau et ainsi préciser davantage la source d'erreur éventuelle.
Effectuer un Telnet…
TELNET permet de tester la connexion à un serveur sans tenir compte de tout les réglages supplémentaires d'une application mail ou FTP afin de déterminer l'origine d'un problème. Si la connexion ne passe pas sur un serveur SMTP, il vous faudra par exemple regarder si votre pare-feu ne bloque pas le port 587 ou 465.
… sur macOS
- Recherchez Utilitaire de réseau.
- Rendez-vous sous l'onglet
Ping,LookupouTracerouteselon ce que vous souhaitez tester. - Vous pouvez également utiliser une application de type
Terminal(interface en ligne de commande,CLI /Command Line Interface) sur votre appareil et, selon ce que vous souhaitez tester, entrez:traceroute [server]nc [server] [port]
Remplacez[server]par le nom du serveur ou son adresse IP, idem pour[port]…
… sur Windows
Activez Telnet au préalable si nécessaire.
- Utilisez une application de type
Terminal(interface en ligne de commande,CLI /Command Line Interface) sur votre appareil, par exemple en tapant Exécuter puiscmd. - Dans la fenêtre qui s'ouvre, selon ce que vous souhaitez tester, tapez:
tracert [server]telnet [server] [port]
Exemple:telnet mail.infomaniak.com 587(permet de tester le port SMTP si votre logiciel/client de messagerie ne permet pas l'envoi d'e-mail)…
… sur Android
- Utilisez l'application Simple Telnet Client qui permet de tester très simplement via 2 champs à remplir (par exemple
mail.infomaniak.comet le port143ou993)…
Effectuer un PING
PING permet de savoir si une machine est accessible par Internet. Vous pouvez aussi contrĂ´ler avec cet outil si vous vous adressez bien Ă la bonne machine, lors d'un changement de DNS par exemple, en regardant l'adresse IP obtenue. Il est possible d'effectuer un ping sur un nom de domaine, un hostname ou une adresse IP.
PING est définitivement bloqué sur les hébergements mutualisés Infomaniak.
Lien vers cette FAQ: https://faq.infomaniak.com/727
Cette FAQ a été utile?
Ce guide explique comment travailler sans le module PECL SSH2 client indisponible sur les hébergements Web et Serveurs Cloud Infomaniak, en utilisant plutôt la bibliothèque phpseclib, qui fonctionne en PHP natif sans nécessiter d'extension spécifique.
Préambule
- L'utilisation de
PECL SSH2 cliententraine des erreurs de typeNo compatible key exchange algorithms foundouUnable to exchange encryption keysdans sa derniere version disponible. Phpseclibpermet :- L'authentification SSH par mot de passe ou clé privée.
- L'exécution de commandes à distance.
- Le transfert de fichiers sécurisés (SFTP).
- La gestion des clés SSH.
Utiliser phpseclib
Pour intégrer une connexion SSH dans un script PHP, utilisez phpseclib comme suit :
use phpseclib3\Net\SSH2;
use phpseclib3\Crypt\PublicKeyLoader;
$ssh = new SSH2('domain.xyz');
$key = PublicKeyLoader::load(file_get_contents('/path/to/private_key'));
if (!$ssh->login('utilisateur', $key)) {
exit('Authentication Failed');
}
echo $ssh->exec('ls -la');Lien vers cette FAQ: https://faq.infomaniak.com/767
Cette FAQ a été utile?
Ce guide détaille les actions à effectuer en priorité si vous ne voyez pas de différence entre votre site après un changement que vous auriez effectué dessus, et sa version avant le changement. Ces conseils sont également valables si vous rencontrez des soucis lors de l'utilisation de l'interface de produits Infomaniak.
Préambule
- Pendant votre navigation, un navigateur comme Brave, Chrome, Edge, Firefox, Opera, Safari… sauvegarde dans un espace réservé les données consultées, ceci afin d'éviter de demander une nouvelle fois au serveur les données déjà consultées, pour gagner du temps et des ressources.
- Votre cache peut contenir énormément de données et parfois le navigateur s'emmêle les pinceaux. Les sites peuvent alors mal s'afficher ou afficher une version obsolète.
- Effacer le cache permet d'être sûr d'avoir la toute dernière version en date de la page ou du dossier consulté.
Effacer le cache du navigateur …
… sur Safari
Choisissez votre version macOS afin de prendre connaissance de l'aide Apple correspondante.
… sur les outils Google (Chrome, Android, etc.)
Prenez connaissance de l'aide de Google.
… sur Firefox
Prenez connaissance de l'aide Mozilla.
… sur Edge / Internet Explorer
Prenez connaissance de l'aide Microsoft.
Lien vers cette FAQ: https://faq.infomaniak.com/793
Cette FAQ a été utile?
Ce guide détaille les fonctionnalités disponibles en matière de gestion des bases de données relationnelles sur les hébergements Infomaniak.
Utilisation de Vues, Triggers, Procedures stockées et Routines
En ce qui concerne la gestion des bases de données relationnelles, la fonctionnalité des vues ("views") est disponible par défaut, permettant ainsi aux utilisateurs de créer des vues pour simplifier la gestion et la présentation des données.
Cependant, certaines fonctionnalités avancées permettant une manipulation plus fine et plus complexe des données, telles que…
- “triggers” (déclencheurs)
- procédures stockées ("stored procedures")
- routines
- et la création de fonctions
… ne sont disponibles que sur Serveurs Cloud.
Elles ne sont pas autorisées sur les serveurs mutualisés.
Cette restriction est principalement due aux risques potentiels pour la stabilité de l'infrastructure. Une mauvaise configuration ou une utilisation excessive de ces fonctionnalités pourrait créer des boucles infinies ou des surcharges importantes, affectant non seulement les performances du serveur concerné, mais aussi l'expérience de tous les clients hébergés sur la même infrastructure.
Résoudre un problème d'importation de dump MySQL/MariaDB
Lors de l'exportation puis de la réimportation d'une base de données MySQL ou MariaDB via l'interface d'hébergement Infomaniak, il peut arriver que l'opération échoue en raison d'erreurs liées aux DEFINER des triggers ou des views. Ce cas survient lorsque les objets de la base ont été créés avec un utilisateur spécifique (appelé definer) qui n'existe plus au moment de l'importation.
Concrètement, le processus d'exportation et d'importation met en œuvre un utilisateur temporaire, utilisé uniquement pendant ces opérations. Après suppression de cet utilisateur, les vues ou triggers définis avec ce compte comme DEFINER deviennent invalides, provoquant des erreurs du type :
General error: 1449 The user specified as a definer ('xxxx_temp_1'@'%') does not exist
Pour éviter ce problème, il est possible de corriger le fichier de sauvegarde (dump.sql ou dump.sql.gz) avant son importation en remplaçant les définitions de definer par CURRENT_USER. Cela permet de rattacher automatiquement les triggers et vues à l'utilisateur en cours au moment de l'import.
Voici un exemple de commande permettant de modifier le dump avant importation :
sed -E 's/DEFINER=`[^`][^`]*`@`[^`][^`][^`]*`/DEFINER=CURRENT_USER/g' dump.sql > dump-corrected.sql
Une fois ce remplacement effectué, le fichier corrigé peut être importé normalement via le Manager Infomaniak. Ce comportement est connu et lié au fonctionnement des utilisateurs temporaires lors du dump/restore. Aucune modification du processus d'export/import n'est prévue à court terme, mais le sujet reste en évaluation côté infrastructure.
Pour plus d'informations sur la variable CURRENT_USER, prenez connaissance de la documentation officielle de :
Lien vers cette FAQ: https://faq.infomaniak.com/821
Cette FAQ a été utile?
Ce guide explique comment modifier le mot de passe d'une base de données MySQL / MariaDB d'un Hébergement Web.
Préambule
- Prenez connaissance de cet autre guide si vous recherchez des informations au sujet de la mise à jour des informations de connexion (scripts, sites...) relative à un changement de mot de passe de base de données.
- Un utilisateur de base de données créé suite à l'installation d'une Application Web (proposée par Infomaniak) ne pourra être modifié.
- Pour accéder à la base de données à laquelle il est rattaché, il faut créer un nouvel utilisateur de base de données avec le mot de passe de votre choix puis lui attribuer les droits sur la base de données désirée.
Changer le mot de passe MySQL MariaDB etc.
Pour cela il est nécessaire d'intervenir sur l'utilisateur rattaché à la base de données en question, et de lui changer le mot de passe (sans avoir à fournir l'ancien) depuis le Manager Infomaniak:
- Cliquez ici afin d'accéder à la gestion des hébergements & sites sur votre Manager Infomaniak (❓: aide).
- Cliquez sur le nom de l'hébergement concerné.
- Cliquez sur Bases de données dans le menu latéral gauche.
- Cliquez sur le menu Utilisateurs.
- Cliquez sur le menu d'action ⋮ situé à droite de l'élément concerné.
- Cliquez sur Modifier:

- Cliquez sur Modifier le mot de passe.
- Entrez le nouveau mot de passe désiré.
- Cliquez sur le bouton Enregistrer:

- Si nécessaire, vous pouvez configurer les nouveaux droits éventuels (lecture / écriture / administration) de l'utilisateur pour l'accès aux bases de données existantes sur l'hébergement.
Lien vers cette FAQ: https://faq.infomaniak.com/846
Cette FAQ a été utile?
Ce guide explique comment lancer une analyse du contenu d'un Hébergement Web afin de détecter et nettoyer les fichiers contenant des virus et autres scripts malveillants qui pourraient menacer la sécurité de sites.
Préambule
- Vous recevez un e-mail lorsque l'opération est terminée (le scan antivirus peut durer un certain temps ; le Manager peut être fermé).
- Infomaniak assure la protection des hébergements en analysant exclusivement les dossiers des sites (webroot) ; en dehors aucun scan synchrone n'est réalisé sur le reste de l'hébergement.
- Envisagez également l'outil de détection de vulnérabilités pour surveiller les éventuelles failles corrigées automatiquement sur vos sites.
Démarrer une analyse antivirus des sites
Pour analyser le contenu éventuellement vérolé:
- Cliquez ici afin d'accéder à la gestion des hébergements & sites sur votre Manager Infomaniak (❓: aide).
- Cliquez sur le nom de l'hébergement concerné.
- Cliquez sur Sécurité dans le menu latéral gauche.
- Cliquez sur Antivirus dans le menu latéral gauche.
- Cliquez sur le bouton bleu Analyser:

- Sélectionnez le ou les sites à analyser.
- Cliquez sur le bouton bleu Démarrer l'analyse:

- Suivez la procédure jusqu'au démarrage de l'analyse des fichiers.
Lien vers cette FAQ: https://faq.infomaniak.com/857
Cette FAQ a été utile?
Ce guide explique comment installer rapidement des applications, extensions PHP et technologies (liste non exhaustive ci-dessous) en quelques clics sur Serveur Cloud uniquement.
Prenez connaissance de cet autre guide si vous recherchez des informations au sujet d'Applications Web supplémentaires pouvant être installées sur tout type d'hébergement y compris offre standard/mutualisé.
Installer (ou désinstaller) des apps / extensions PHP…
Pour trouver la liste des technologies et procéder à leur installation:
- Cliquez ici afin d'accéder à la gestion de votre Serveur Cloud sur le Manager Infomaniak (besoin d'aide ?).
- Cliquez directement sur le nom attribué au Serveur Cloud concerné:

- Cliquez dans le menu latéral gauche:
- Extensions PHP

- Fast Installer

- Extensions PHP
- Cliquez sur le menu d'action ⋮ à droite de l'extension que vous souhaitez désinstaller dans le tableau qui s'affiche.
- Cliquez sur Désinstaller.
- Sinon cliquez sur le bouton bleu Installer une extension / Installer une application:

- Puis faites votre choix de nouvelle installation‍:

Liste non exhaustive des apps & extensions disponibles
AdvanceCOMPBuildEssentialelectron_devExifToolFFmpeg↗ guideGhostscriptGifsicleGraphicsMagickHAProxyImagemagick↗ guideJpegoptimlibjpeg_turbolibqrencodelibX11_xcb1MidnightCommanderMemcached↗ guidemongoDB↗ guideNVM Node Version ManagerOptiPNGp7zipPDFtkPHP_APCuPHP_CLI↗ guidePHP_FPM(extension obsolète) ↗ guide pour l'alternative PHP purePHP_GnuPGPHP_gRPCPHP_igbinaryPHP_IonCube↗ guidePHP_OPcachePHP_PDFPHP_PDO_ODBC↗ guidePHP_SwoolepipPngcrushPngquantRedis↗ guideRRDTool The Round Robin Database ToolRubyCompasssystemd↗ guidetesseract_ocrvarnish↗ guidevirtualenvWebPxauthxpdfxvfbZSH
Lien vers cette FAQ: https://faq.infomaniak.com/877
Cette FAQ a été utile?