Base de connaissances

1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !

Rechercher

Ce guide détaille les restrictions relatives au nombre de connexions simultanées autorisées sur les bases de données MySQL des hébergements Web.

 

Seuils de connexions MySQL simultanées

Afin de préserver la stabilité, la sécurité et la réactivité du serveur pour l'ensemble des utilisateurs, des limites de connexions simultanées sont appliquées par le système.

Pour chaque utilisateur de base de données chez Infomaniak, le plafond est fixé à 38 connexions MySQL simultanées.

Ce quota prévient toute saturation des ressources partagées. Si ce seuil est franchi, l'accès est momentanément bloqué et des erreurs de type User has already more than 'max_user_connections' active connections ou Too many connections peuvent s'afficher.

En pratique, ce seuil est rarement atteint. Si nécessaire, il est tout à fait possible de répartir la charge en créant des utilisateurs MySQL distincts pour les différents scripts ou services de votre site.

 

Aucun quota de connexions horaires

Infomaniak n'impose aucune restriction sur le volume de requêtes par heure. Les paramètres tels que MAX_QUERIES_PER_HOUR ou MAX_CONNECTIONS_PER_HOUR ne sont pas activés.

À l'inverse de certaines offres concurrentes, vous ne rencontrerez pas d'erreur de dépassement de ressources de type SQL Error : 1226 liée à un volume d'activité horaire.

 

En savoir plus

Lien vers cette FAQ:


Cette FAQ a été utile?

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:


Cette FAQ a été utile?

Ce guide explique comment forcer l'affichage du nom de l'hébergement Web dans la barre d'adresse du navigateur vers l'un des noms de domaine installés en alias/synonyme ou comment afficher dans la barre d'adresse le domaine principal au lieu de l'alias.

 

Limiter le "duplicate content" ou contenu Ă  double

Imaginez que vous ayez l'hébergement votre-domaine.com chez Infomaniak et que comme nom de domaine synonyme vous avez installé www.domainesyno.xyz.

Par défaut, lorsque vous taperez l'un ou l'autre des noms de domaine (votre-domaine.com ou domainesyno.xyz) dans la barre d'adresse de votre navigateur, c'est celui que vous aurez tapé qui s'affichera dans la barre d'adresse.

Vous avez donc la possibilité de forcer l'affichage d'une autre adresse que celle qui a été tapé. Ainsi si quelqu'un tape domainesyno.xyz , alors c'est votre-domaine.com qui s'affichera automatiquement dans la barre d'adresse.

Un code est à inscrire dans un fichier appelé .htaccess qui doit se trouver à la racine de votre hébergement (dans le dossier /web de votre FTP). Si ce fichier n'existe pas encore, vous devez le créer sur le serveur.

Insérez ensuite ces directives dans le fichier:

RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://votre-domaine.com/$1 [R=301,L]

Adaptez le code ci-dessus selon ces indications:

  • Remplacer votre-domaine.com par votre nom de domaine avec l'extension adĂ©quate (.com, .fr, .ch, etc.) que vous souhaitez voir s'afficher dans la barre d'adresse du navigateur du visiteur. Ajouter www. avant votre-domaine.com si nĂ©cessaire.
  • Remplacer la deuxième ligne du code ci-dessus par "RewriteCond %{HTTPS} off‍" si une erreur de boucle survient, cela veut dire que le HTTP/2 est actif pour ce site

Prenez également connaissance des redirections automatiques vers httpS.

Lien vers cette FAQ:


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_zone contient 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Ăą :
    • dt est la date/heure Ă  convertir.
    • from_tz est le fuseau horaire source.
    • to_tz est 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:


Cette FAQ a été utile?

Ce guide permet de résoudre une erreur de type "Invalid query: MySQL server has gone away".

 

Préambule

 

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:


Cette FAQ a été utile?

Ce guide traite de "browscap.ini", un fichier de configuration historique utilisé par PHP pour identifier les caractéristiques des navigateurs web (nom, version, capacités, OS) à partir de leur chaîne User-Agent.

L'utilisation de browscap.ini est aujourd'hui considérée comme obsolète pour les nouveaux projets en raison de son impact négatif sur les performances et de l'évolution des standards du web.

 

Informations sur le fichier et usage legacy

Pour que la fonction native PHP get_browser() fonctionne, elle doit pointer vers un fichier browscap.ini à jour. Le chemin par défaut sur les serveurs est généralement :

/opt/php/lib/php/browscap.ini

Bien que déconseillé pour la production à cause de la taille du fichier (plusieurs Mo à charger en mémoire), vous pouvez consulter son contenu via ce script :

<?php
header("Content-type: text/plain");
if (file_exists("/opt/php/lib/php/browscap.ini")) {
    echo file_get_contents("/opt/php/lib/php/browscap.ini");
} else {
    echo "Fichier introuvable.";
}
?>

 

Alternatives modernes recommandées

Pour les projets actuels, les développeurs privilégient les solutions suivantes :

  1. Bibliothèques via Composer : des outils comme matomo/device-detector ou whichbrowser/parser sont plus précis, plus rapides et se mettent à jour facilement via les dépendances du projet.
  2. User-Agent Client Hints (UA-CH) : la nouvelle norme HTTP permettant d'obtenir des informations structurées et fiables directement du navigateur.
  3. Détection de fonctionnalités (Feature Detection) : utiliser le JavaScript (ou les requêtes @supports en CSS) pour vérifier si une fonction existe, plutôt que de deviner le nom du navigateur.

Lien vers cette FAQ:


Cette FAQ a été utile?

Ce guide concerne Django, un framework open-source de développement Web en Python, particulièrement réputé pour sa robustesse et sa rapidité de développement.

 

Installation de Django

Prérequis

  • Un hĂ©bergement adaptĂ©:
    • Le dĂ©ploiement d'une application Python nĂ©cessitant un serveur d'applications fonctionnant en continu, un hĂ©bergement Web mutualisĂ© standard n'est pas indiquĂ©.
    • Un accès complet au serveur via SSH est requis.
  • Environnement technique:
    • Python 3 installĂ© sur le serveur, ainsi que le gestionnaire de paquets pip.
  • Connaissances de base:
    • Une familiaritĂ© avec l'interface en ligne de commande (CLI) sous Linux et la gestion des environnements virtuels Python (comme venv).

Voici les étapes générales pour initialiser votre environnement sur votre serveur :

Il est nécessaire d'installer Django sur des offres Web garantissant un contrôle total sur l'environnement d'exécution, telles que les VPS Cloud / VPS Lite : découvrir les différents hébergements Web d'Infomaniak.

  1. Connectez-vous Ă  votre serveur VPS en SSH.
  2. Créez et activez un environnement virtuel dédié à votre projet afin d'isoler vos dépendances (ex: python3 -m venv my_environnement puis source my_environnement/bin/activate).
  3. Procédez à l'installation du framework via le gestionnaire de paquets : pip install django.
  4. Initialisez votre nouveau projet avec la commande : django-admin startproject name_of_project.

 

Mise en production

Attention, le serveur de développement intégré à Django (lancé via runserver) n'est pas conçu pour un environnement de production. Pour exposer votre site sur Internet en toute sécurité sur votre VPS Infomaniak, il sera nécessaire de configurer un serveur d'applications (comme Gunicorn ou uWSGI) derrière un proxy inverse (Reverse Proxy) tel que Nginx ou Apache.

Lien vers cette FAQ:


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

  1. Depuis une application de type Terminal (interface en ligne de commande, CLI /Command Line Interface) sur votre appareil, exécutez la commande curl ifconfig.me et appuyez sur entrée.
  2. 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:


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 Web.

 

âš  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 Web, 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 Web.

  1. Téléchargez PHPMailer depuis son dépôt officiel ou installez-la avec Composer si votre projet l'utilise.
  2. Copiez les fichiers de PHPMailer dans un répertoire de votre site Web par FTP.
  3. 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() failed
  • Could not authenticate
  • stream_socket_enable_crypto()
  • une erreur d'authentification alors que le mot de passe est correct

Dans ce cas, vérifiez les points suivants:

  1. la version de PHP utilisée par le site Web;
  2. la version d'OpenSSL utilisée par PHP;
  3. la version de PHPMailer utilisée par votre projet;
  4. 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:

 

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:


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 le navigateur Web 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 :

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:


Cette FAQ a été utile?

Ce guide explique comment activer l'option MultiViews via un fichier .htaccess sur les sites hébergés par Infomaniak.

 

Préambule

  • Dans certains cas, l'option MultiViews doit ĂŞtre activĂ©e afin de gĂ©rer des problèmes de redirection et de réécriture d'URL.
  • Cette option permet au serveur de deviner quel fichier l'utilisateur cherche. Exemple :
    • Si le dossier configuration et le fichier configuration.php se trouvent Ă  la racine de votre site et que vous tentez d'atteindre l'adresse domain.xyz/configuration, l'option MultiViews doit ĂŞtre activĂ©e pour que le serveur puisse deviner que vous souhaitez accĂ©der au fichier configuration.php.
  • L'option MultiViews peut parfois entrer en conflit avec des règles de réécriture d'URL plus complexes dĂ©finies par mod_rewrite (utilisĂ©es par de nombreux CMS).

 

Activer l'option MultiViews

Pour cela :

  1. Ouvrez ou créez le fichier .htaccess qui se trouve à la racine du site concerné.
  2. Ajoutez la directive suivante:

    Options +MultiViews
  3. Sauvegardez les modifications.

Lien vers cette FAQ:


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:


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 Web 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.

 

Modifier l'offre d'hébergement Web afin de…

 

… commander des sites, de l'espace disque ou des IP supplémentaires

Pour accéder au configurateur de l'hébergement Web:

  1. Cliquez ici afin d'accĂ©der Ă  la gestion de votre hĂ©bergement sur le Manager Infomaniak (besoin d'aide ?).
  2. Cliquez sur le menu d'action â‹® situĂ© Ă  droite de l'hĂ©bergement concernĂ©.
  3. Cliquez sur Modifier l'offre:
  4. Augmentez les valeurs que vous souhaitez modifier.
  5. 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:


Cette FAQ a été utile?

Ce guide détaille l'intégration de l'environnement ASP / ASP.NET au sein de l'écosystème Infomaniak.

 

Compatibilité & Infrastructure

Les solutions d'Hébergement Web et Serveurs Cloud managés sont optimisées pour des environnements Linux/Apache. Par conséquent, le module Apache::ASP n'est pas supporté nativement sur ces offres mutualisées.

 

Alternatives & solutions Cloud

Pour déployer vos applications ASP en toute fluidité, plusieurs options s'offrent à vous :

  • VPS Cloud : installez et configurez votre propre stack ASP/IIS ou utilisez Mono/Core sur une distribution de votre choix.
  • Jelastic Cloud (PaaS) : dĂ©ployez vos applications ASP.NET Core via des conteneurs Docker en quelques clics avec un scaling horizontal automatique.
  • Public Cloud : pour les infrastructures Ă  haute disponibilitĂ© utilisant OpenStack, idĂ©al pour les architectures micro-services.

Lien vers cette FAQ:


Cette FAQ a été utile?

Ce guide vous permet de protéger vos ressources contre le hotlinking sur vos Hébergements Web Infomaniak.

 

Préambule

  • Le hotlinking se produit lorsqu'un site tiers affiche vos images, vidĂ©os ou musiques en utilisant directement l'URL de votre serveur ; le site distant utilise vos ressources et votre puissance serveur Ă  vos frais, souvent sans citer la source.
  • Bien que la bande passante soit plus gĂ©nĂ©reuse aujourd'hui, le hotlinking reste un problème pour la protection de vos droits d'auteur et pour Ă©viter la surcharge inutile de votre serveur.

 

EmpĂŞcher le hotlinking via .htaccess

Vous pouvez bloquer ces accès non autorisés en ajoutant des règles dans le fichier .htaccess à la racine de votre site. Voici une version optimisée incluant les formats d'image modernes (WebP, AVIF) :

RewriteEngine on

# 1. Autoriser les requêtes avec un Referer vide (certains navigateurs pour la vie privée)
RewriteCond %{HTTP_REFERER} !^$

# 2. Autoriser votre propre site (remplacez par votre domaine)
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?votre-domaine\.com [NC]

# 3. AUTORISER LES MOTEURS DE RECHERCHE (Indispensable pour votre SEO)
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google\. [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing\. [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo\. [NC]

# 4. Bloquer le hotlinking (renvoie une erreur 403 Forbidden)
RewriteRule \.(jpg|jpeg|png|gif|svg|webp|avif)$ - [F,NC,L]

Recommandations :

  • Remplacer : changez votre-domaine\.com par votre nom de domaine rĂ©el.
  • SEO : ne retirez les lignes Google/Bing que si vous souhaitez volontairement que vos images n'apparaissent jamais dans les rĂ©sultats de recherche.
  • Alternative 403 : la règle ci-dessus utilise [F] (Forbidden). C'est plus Ă©cologique et performant que de charger une image de remplacement qui consomme encore de la bande passante.
Astuce : Si vous utilisez un CDN comme Cloudflare devant votre hébergement Infomaniak, vous pouvez activer la "Hotlink Protection" en un clic dans leur interface de gestion.

Lien vers cette FAQ:


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

  1. Recherchez Utilitaire de réseau.
  2. Rendez-vous sous l'onglet Ping, Lookup ou Traceroute selon ce que vous souhaitez tester.
  3. 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.

  1. Utilisez une application de type Terminal (interface en ligne de commande, CLI /Command Line Interface) sur votre appareil, par exemple en tapant Exécuter puis cmd.
  2. 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

  1. Utilisez l'application Simple Telnet Client qui permet de tester très simplement via 2 champs à remplir (par exemple mail.infomaniak.com et le port 143 ou 993)…

 

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.

Lien vers cette FAQ:


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 client entraine des erreurs de type No compatible key exchange algorithms found ou Unable to exchange encryption keys dans sa derniere version disponible.
  • Phpseclib permet :
    • 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:


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 Web 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 Web 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 Web …

 

… 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:


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:


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Ă© (un cadenas s'affiche Ă  cĂ´tĂ© de celui-ci, cf point 5 ci-dessous).
  • 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:

  1. Cliquez ici afin d'accĂ©der Ă  la gestion de votre produit sur le Manager Infomaniak (besoin d'aide ?).
  2. Cliquez directement sur le nom attribuĂ© au produit concernĂ©.
  3. Cliquez sur Bases de données dans le menu latéral gauche.
  4. Cliquez sur l'onglet Utilisateurs.
  5. Cliquez sur le menu d'action â‹® situĂ© Ă  droite de l'Ă©lĂ©ment concernĂ©.
  6. Cliquez sur Modifier:
  7. Cliquez sur Modifier le mot de passe.
  8. Entrez le nouveau mot de passe désiré.
  9. Cliquez sur le bouton Enregistrer:
  10. 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:


Cette FAQ a été utile?