Base de connaissances
1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
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.
Préambule
- Pour migrer un Serveur Cloud prenez connaissance de cet autre guide au sujet de la migration vers une nouvelle génération de Serveur Cloud.
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é.
- Si l'hébergement ne contient pas de site, cliquez sur son nom puis cliquez sur Gérer.
- 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:
- Prenez connaissance de cet autre guide : en le suivant et avant de réaliser l'étape du point 4, vous devriez voir sur votre Manager un bandeau informatif en haut de page ; cliquez sur le bouton de migration:

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.
- Vous pouvez aussi prendre connaissance de cet autre guide en suivant la procédure qui y est indiquée jusqu'au bout:

Lien vers cette FAQ: https://faq.infomaniak.com/626
Cette FAQ a été utile?
Ce guide explique le fonctionnement, la configuration et la gestion de ModSecurity sur les serveurs Infomaniak.
Préambule
- ModSecurity (
mod_secure) est disponible et activé par défaut sur les serveurs Infomaniak :- Toutes les requêtes HTTP seront soumises aux règles de sécurité définies par ModSecurity.
- L'extension PHP
uploadprogressn'est pas disponible sur les serveurs Infomaniak, car PHP est utilisé dans sa version FPM.
- Il n'est pas possible de désactiver ModSecurity sur les serveurs Infomaniak :
- Le paramètre est global au serveur où votre site est hébergé, ce qui signifie que toutes les règles de sécurité définies seront appliquées à votre site.
En cas de problème
Erreur de langue (code 403)
Si le message d'erreur ModSecurity: Access denied with code 403 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS. (...) s'affiche au sujet de ModSecurity, vous devriez vérifier qu'une langue par défaut soit bien configurée dans un navigateur comme Brave, Chrome, Edge, Firefox, Opera, Safari…. Cette erreur peut parfois être causée par des paramètres de langue mal configurés dans le navigateur.
Avertissement "Request body larger than configured limit"
Si vous constatez des messages concernant l'erreur ou l'avertissement Request body larger than configured limit, sachez qu'il s'agit uniquement d'un avertissement — la requête passe quand même et n'est pas bloquée. Cette configuration est propre à certaines anciennes générations d'hébergements (de type jessie) et laisse bien passer l'ensemble des requêtes sur le serveur sans impact pour vos visiteurs.
Lien vers cette FAQ: https://faq.infomaniak.com/2098
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 explique comment résoudre un problème d'importation d'un fichier .csv dans une table MySQL. L'alternative proposée consiste à lire le fichier CSV ligne par ligne avec PHP et à insérer les données dans la base de données MySQL.
Fonction "LOAD DATA LOCAL INFILE" désactivée
La fonction LOAD DATA LOCAL INFILE permet d'importer un fichier CSV directement dans une table MySQL. Cependant, cette fonctionnalité est souvent exploitée par des attaquants pour obtenir un accès non autorisé à des sites hébergés sur des serveurs qui l'acceptent.
Afin de prévenir tout risque de sécurité et de protéger les données des clients, Infomaniak a désactivé la fonction LOAD DATA LOCAL INFILE. Les utilisateurs qui importent leurs fichiers CSV via phpMyAdmin (sans cocher l'option “CSV via LOAD DATA”) ne sont pas concernés.
Voici une méthode alternative pour importer des données au format CSV dans une table MySQL. L'exemple ci-dessous montre comment gérer correctement les erreurs lors de l'ouverture du fichier CSV et de l'insertion des données dans la base de données.
Ce script utilise mysqli pour se connecter à la base et des requêtes préparées pour insérer les données. Cela garantit une meilleure sécurité, une compatibilité optimale avec les versions récentes de PHP et une intégration simple dans votre projet, que ce soit dans un script existant ou un nouveau fichier situé dans le répertoire /web :
$fileName = "data.csv";
// Connect to MySQL database using mysqli
$link = new mysqli("localhost", "username", "password", "database");
// Check database connection
if ($link->connect_error) {
die("Connection failed: " . $link->connect_error);
}
// Open the CSV file for reading
if (($handle = fopen($fileName, "r")) !== FALSE) {
// Read each line of the CSV file
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
// Prepare the SQL query dynamically
$query = "INSERT INTO `test` VALUES (" . str_repeat('?,', count($data) - 1) . "?)";
$stmt = $link->prepare($query);
// Check if query preparation was successful
if ($stmt === FALSE) {
die("Query preparation failed: " . $link->error);
}
// Bind parameters (assuming all columns are strings)
$types = str_repeat('s', count($data));
$stmt->bind_param($types, ...$data);
// Execute the query
if (!$stmt->execute()) {
die("Query execution failed: " . $stmt->error);
}
// Close the statement
$stmt->close();
}
// Close the CSV file
fclose($handle);
} else {
echo "Error: unable to open the file.\n";
exit(1);
}
// Close the database connection
$link->close();
?>
Obtenir de l'aide
Il est malheureusement impossible d'indiquer précisément à quel endroit du script ces lignes de code doivent être insérées.
Si cette méthode pose problème (par exemple en cas d'import simultané de plusieurs fichiers CSV sans message d'erreur), il est possible que la structure des tables ou l'indexation des champs soit en cause. Dans ce cas, contactez votre webmaster pour vérification.
Consultez également la documentation officielle PHP relative à la fonction fgetcsv().
Lien vers cette FAQ: https://faq.infomaniak.com/1312
Cette FAQ a été utile?
Ce guide explique comment transférer vers Infomaniak des données Web (site, FTP, bases de données) actuellement hébergées par Swisscom, qui a mis fin à son offre d'hébergement au mois de mai 2024. De plus, Infomaniak vous offre la première année d'hébergement Web + Mail (en savoir plus) !
Prérequis
- Posséder un hébergement Web Infomaniak (commander si nécessaire).
- Ajouter un site vierge sur l'hébergement Infomaniak.
- Si vous utilisez une interface WordPress pour gérer votre site chez Swisscom, prenez connaissance de cet autre guide illustrant une méthode simplifiée.
Transférer le site de Swisscom à Infomaniak
Pour récupérer tout autre site, créé avec HomepageTool ou pas, suivre la procédure ci-dessous.
1. Récupérer les données Web chez Swisscom
a. Fichiers HTML, PHP, etc. par FTP
Pour récupérer sur votre disque dur des données Web il faut se connecter par FTP avec un logiciel/client FTP comme Filezilla (gratuit). Pour cela, il faut l'adresse du serveur Swisscom, le nom d'utilisateur et mot de passe FTP. Si vous n'avez pas ces données sous la main:
- Connectez-vous au Control Panel HCP Swisscom (login.hostcenter.com) depuis un navigateur comme Brave, Chrome, Edge, Firefox, Opera, Safari….
- Cliquez sur Gérer le compte:

- Cliquez sur Comptes FTP (dans la partie Stockage de données):

- Cliquez sur Ajouter pour créer un compte FTP si nécessaire:

- Ouvrez un logiciel/client FTP comme Filezilla.
- Connectez-vous au serveur Swisscom avec les informations FTP obtenues au point 3 ci-dessus.
- Téléchargez les fichiers correspondant à votre site Swisscom vers votre disque dur.
b. Export des bases de données MySQL
A moins que votre site soit statique et simplement en HTML, un site dynamique requiert la plupart du temps des bases de données qu'il faut exporter depuis leur interface d'administration, PHPmyAdmin:
- Connectez-vous au Control Panel HCP Swisscom (login.hostcenter.com) depuis un navigateur.
- Cliquez sur Bases de données > MySQL depuis le menu principal.
- Cliquez sur Modifier à droite de la base de données correspondante:

- Cliquez (étape facultative) sur le bouton bleu Ajouter un nouvel utilisateur de base de données pour créer un utilisateur et un mot de passe qui aura accès à la base de données.
- Cliquez sur le lien bleu URL Web-Admin pour accéder à PHPMyAdmin:

- Connectez-vous au serveur Swisscom avec les informations MySQL habituelles ou obtenues au point 4 ci-dessus.
- Cliquez sur Exporter pour paramétrer l'exportation de la base de données.
- Cliquez sur Go pour télécharger vos données SQL sur votre disque dur:

2. Envoyer les données Web sur Infomaniak
a. Fichiers HTML, PHP, etc. par FTP
Accédez à l'hébergement Web Infomaniak et activez la partie FTP:
- Cliquez ici afin d'accéder à la gestion de votre produit sur le Manager Infomaniak (besoin d'aide ?).
- Cliquez directement sur le nom attribué au produit concerné.
- Cliquez sur FTP / SSH dans le menu latéral gauche.
- Cliquez sur le bouton Ajouter pour créer un nouveau compte FTP / SSH (❓: aide).
- Ouvrez un logiciel/client FTP comme Filezilla.
- Connectez-vous au serveur Infomaniak avec les informations FTP obtenues au point 4 ci-dessus.
- Transférez les fichiers du disque dur (obtenus au point 1.a.5) vers le serveur dans le dossier correspondant à votre site chez Infomaniak.
b. Import des bases de données MySQL
Accédez à l'hébergement Web Infomaniak et activer la partie MySQL:
- Cliquez ici afin d'accéder à la gestion de votre produit sur le Manager Infomaniak (besoin d'aide ?).
- Cliquez directement sur le nom attribué au produit concerné.
- Cliquez sur Bases de données dans le menu latéral gauche.
- Cliquez sur le bouton Ajouter.
- Entrez un nom de base de données après le préfixe déjà renseigné.
- Cliquez sur la case pour Créer un utilisateur associé.
- Entrez un nom d'utilisateur après le préfixe déjà renseigné.
- Entrez un mot de passe.
- Cliquez sur Valider.
- Cliquez sur le bouton bleu Importer.
- Cliquez sur Sélectionner un fichier.
- Sélectionnez les fichiers SQL sur le disque dur (obtenus au point 1.b.6).
- Choisissez comme destination la base de données créée au point 5 ci-dessus.
- Cliquez sur le bouton bleu Importer.
c. Adapter le site pour la nouvelle infrastructure
Si vous utilisez une application comme WordPress, Joomla, Drupal ou une autre application Web (ownCloud, phpBB, etc.) utilisant une base de données, adaptez les informations suivantes dans le fichier de configuration adéquat à partir des informations disponibles sur le Manager pour que votre site fonctionne:
- le nom de la base de données
- le serveur de la base de données
- le nom d'utilisateur qui accède à la base de données
- le mot de passe du nom d'utilisateur qui accède à la base de données
Prenez connaissance de ces autres guides pour adapter le fichier de configuration: WordPress et Joomla.
En savoir plus
Lien vers cette FAQ: https://faq.infomaniak.com/2851
Cette FAQ a été utile?
Ce guide donne des indications pour créer une infrastructure haute disponibilité multi-datacenters avec Jelastic Cloud.
Préambule
- Le principe d'une infrastructure haute disponibilité multi-datacenters est de répliquer tous les éléments nécessaires (serveur Web, serveur de bases de données et load balancer) dans un autre datacenter pour assurer le fonctionnement de vos sites et apps en cas d'imprévu (pics de charge, panne matérielle, panne réseau, etc.).
- Les avantages d'une infrastructure haute disponibilité multi-datacenters sont nombreux:
- En cas d'imprévu sur un serveur, un autre serveur prend immédiatement le relai ; vos sites et apps restent accessibles.
- En cas de perturbation avec un composant d'un datacenter, l'infrastructure répliquée dans l'autre datacenter et prend immédiatement le relai ; vos sites et apps restent accessibles.
- En cas de pics de charge importants, le trafic est réparti entre les deux infrastructures par des répartiteurs de charge (load balancers) ; vos sites et apps restent accessibles et rapides.
Mise en place d'une infra haute disponibilité avec Jelastic Cloud
Pour les besoins de cet exemple, 2 serveurs Web avec 2 load balancers seront mis en place, chacun de ces éléments étant hébergé en Suisse dans un datacenter d'Infomaniak différent.
Avant de poursuivre, connectez-vous Ă l'interface d'administration de votre serveur Jelastic Cloud :
- Cliquez ici afin d'accéder à la gestion de votre produit sur le Manager Infomaniak (besoin d'aide ?).
- Cliquez sur Se connecter Ă Jelastic Cloud:

1. Création des serveurs Web
Un serveur Web héberge le contenu de vos sites (les fichiers php, images, pdf, etc.).
Voici les actions à effectuer pour créer premier serveur :
- Cliquez sur Nouvel environnement.
- Cliquez sur l'onglet PHP.
- Dans App. Serveurs, choisissez par ex. un serveur Apache.
- Adaptez les ressources de l'environnement selon vos besoins.
- Choisissez Genève DC2 pour la localisation du serveur.
- Renommez l'environnement pour facilement l'identifier par la suite (par exemple DC2-apache).
- Cliquez sur Créer.
Créer ensuite le deuxième serveur Web dans un autre datacenter :
- Cliquez sur Nouvel environnement.
- Cliquez sur l'onglet PHP.
- Dans App. Serveurs, choisissez par exemple un serveur Apache.
- Adaptez les ressources de l'environnement selon vos besoins.
- Choisissez Genève DC3 pour la localisation du serveur.
- Renommez l'environnement pour facilement l'identifier par la suite (par exemple DC3-apache).
- Cliquez sur Créer.
2. Création des répartiteurs de charge (load balancers)
Un répartiteur de charge permet de distribuer la charge et le trafic de vos sites entre vos serveurs Web.
Voici les actions à effectuer pour créer premier serveur :
- Cliquez sur Nouvel environnement.
- Cliquez sur l'onglet PHP.
- Dans Equilibrage, choisissez par exemple un serveur NGINX.
- Adaptez les ressources de l'environnement selon vos besoins.
- Choisissez Genève DC2 pour la localisation du serveur.
- Renommez l'environnement pour facilement l'identifier par la suite (par exemple DC2-nginx).
- Cliquez sur Créer.
Créer ensuite le deuxième load balancer dans un autre datacenter :
- Cliquez sur Nouvel environnement.
- Cliquez sur l'onglet PHP.
- Dans Equilibrage, choisissez par exemple un serveur NGINX.
- Adaptez les ressources de l'environnement selon vos besoins.
- Choisissez Genève DC3 pour la localisation du serveur.
- Renommez l'environnement pour facilement l'identifier par la suite (par exemple DC3-nginx).
- Cliquez sur Créer.
3. Configuration des répartiteurs de charge et du nom de domaine
À présent, il ne reste plus qu'à indiquer aux load balancers sur quels serveurs Web ils doivent distribuer le trafic.
Commencez par créer le fichier load-balancer.conf sur les deux load balancers :
- Connectez-vous en SSH sur le serveur
DC2-nginxen cliquant sur le bouton Web SSH de l'environnement. - Ouvrez le fichier load-balancer.conf :
nano /etc/nginx/conf.d/load-balancer.conf. - Adaptez le code du fichier avec l'URL de vos serveurs Web :
http { upstream backend { server apache-dc2.jcloud-ver-jpc.ik-server.com; server apache-dc3.jcloud.ik-server.com; } server { listen 80; location / { proxy_pass http://backend; } } }
- Répétez ces 3 étapes pour le serveur
DC3-nginx.
Modifier ensuite le fichier de configuration des load balancers :
- Connectez-vous en SSH sur le serveur
DC2-nginxen cliquant sur le bouton Web SSH de l'environnement. - Créez le fichier de configuration suivant :
nano /etc/nginx/nginx.conf. - Adaptez l'URL du fichier de configuration du serveur :
user nginx; worker_processes auto; worker_rlimit_nofile 2048; load_module modules/ngx_stream_module.so; #load_module modules/ngx_http_modsecurity_module.so; error_log /var/log/nginx/error_log info; events { worker_connections 2048; use epoll; } include /etc/nginx/conf.d/load-balancer.conf;
- Redémarrez le service NGINX :
sudo /etc/init.d/nginx restart. - Répétez ces quatre étapes pour le serveur
DC3-nginx.
Il est maintenant nécessaire d'indiquer à votre nom de domaine sur quels serveurs le trafic doit être redirigé.
Au préalable, installez une adresse IP publique sur vos répartiteurs de charge :
- Déployez le noeud du serveur DC2-nginx.
- Passez la souris sur la ligne IP publique et cliquez sur le + qui apparaît à droite.
- Ajoutez une IPv4 publique.
- Répétez ces 3 étapes pour le serveur DC3-nginx.
À ce stade, il ne vous reste plus que de créer deux enregistrements A dans la zone DNS de votre nom de domaine avec l'IP publique de vos deux répartiteurs de charge.
Afin que les changements soient rapidement pris en compte, il est recommandé de configurer les enregistrements A avec un TTL de 5 minutes.
Dans cet exemple, le domaine redirige donc vos visiteurs sur les load balancers qui redirigent Ă leur tour le trafic vers les serveurs Web.
4. Test de l'infrastructure haute disponibilité
Afin de tester le bon fonctionnement de votre infrastructure, saisissez votre nom de domaine dans un navigateur comme Brave, Chrome, Edge, Firefox, Opera, Safari… et essayez tour à tour de désactiver un élément de votre infrastructure (un des deux load balancers, un des deux serveurs Web). Si tout fonctionne, vous devriez toujours accéder au contenu hébergé sur l'un des deux serveurs Web.
Attention: la réplication des données entre les serveurs Web ou des serveurs de bases de données doit être mise en place par vos soins.
Lien vers cette FAQ: https://faq.infomaniak.com/2401
Cette FAQ a été utile?
Ce guide explique comment ajouter des adresses IP Ă la liste blanche d'un site chez Infomaniak.
Préambule
- Autoriser des IP sur
xmlrpc.phppermet d'accéder aux URLs qui sont bloquées par défaut, car jugées à risques. - Ce type de blocage est effectif sur tous les serveurs récents.
- Concernant WordPress, sa fonctionnalité XML-RPC n'est disponible par défaut que via les services Infomaniak et JetPack pour des questions de sécurité.
Ajouter des adresses IP Ă la liste blanche xmlrpc.php
Pour accéder à la gestion du site :
- Cliquez ici afin d'accéder à la gestion des hébergements & sites sur votre Manager Infomaniak (❓: aide).
- Cliquez sur le nom du site concerné.
- Cliquez sur Gérer les paramètres avancés:

- Cliquez sur l'onglet PHP / Apache:

- Complétez la ligne concernée.
- Cliquez sur le bouton Enregistrer en bas de page:

Lien vers cette FAQ: https://faq.infomaniak.com/2577
Cette FAQ a été utile?
Ce guide vous aide à mettre en place l'en-tête "Access-Control-Allow-Origin", un header HTTP qui spécifie quelle origine (domaine, protocole et port) peut accéder aux ressources sur un serveur. Cet en-tête est utilisé pour contrôler l'accès en cross-origin (CORS) à partir d'une application Web.
Liste des domaines autorisés
Vous pouvez ajouter l'origine d'une requête à la liste des domaines autorisés à accéder aux ressources du serveur en l'ajoutant aux valeurs de l'en-tête Access-Control-Allow-Origin.
Pour autoriser par exemple le site https://domain.xyz à accéder aux ressources avec CORS, le header doit être comme suit:
Access-Control-Allow-Origin: https://domain.xyzVous pouvez le régler via la fonction header() de PHP en vous inspirant de ce guide notamment.
Si vous avez besoin que cet en-tête soit appliqué partout, vous pouvez passer par un auto-prepend.
Lien vers cette FAQ: https://faq.infomaniak.com/256
Cette FAQ a été utile?
Ce guide détaille les règles spécifiques à respecter lors de la création d'un mot de passe utilisateur avec mysqli_connect() qui contient le caractère “dollar” $ sur les plateformes Infomaniak.
Préambule
- Si lors de l'utilisation de
mysqli_connect(), vous obtenez le message d'erreur "Access denied for user" et que votre mot de passe d'utilisateur de base de données contient un signe$, le problème peut venir du fonctionnement des chaînes de caractères en PHP. - Le problème peut également survenir avec des scripts de messagerie.
Règles à respecter
Lorsque est utilisé le caractère spécial $ dans un mot de passe utilisateur et que celui-ci est suivi par tout autre caractère qu'un nombre, le nom de la variable n'est pas valide et la substitution ne se fait pas correctement.
Voici des solutions pour corriger cela:
- Placez le mot de passe entre guillemets simples :
'$******' - Assurez-vous qu'un nombre suit directement le dollar :
"$2*****" - Utilisez un anti-slash pour "échapper" le dollar dans le mot de passe :
“\$****”
Lien vers cette FAQ: https://faq.infomaniak.com/2559
Cette FAQ a été utile?
Ce guide présente Jelastic Cloud qui est le fruit d'une étroite collaboration entre Infomaniak et l'entreprise Jelastic (Virtuozzo).
Infomaniak
Infomaniak assure l'infrastructure, le support, et la performance, la sécurité, et la fiabilité de la solution. Son infrastructure garantit toujours la disponibilité et la fluidité des applications, répondant aux pics de trafic et réduisant automatiquement la consommation des ressources pendant les périodes creuses. Cette flexibilité optimise le rapport coûts/performances en ne comptabilisant que les ressources réellement utilisées.
Avec ce service Cloud, les ressources informatiques s'ajustent aux fluctuations de la demande tout en conservant une maîtrise budgétaire. Toutes les données sont gérées en Suisse dans les datacenters d'Infomaniak, avec un support disponible en cinq langues.
Jelastic
Jelastic assure la maintenance, le développement logiciel et fournit la partie logicielle du produit.
Fondée en 2011, Jelastic automatise la création, le redimensionnement, le clustering et les mises à jour de sécurité des applications traditionnelles et natives dans le Cloud. Elle prend également en charge les environnements Java, PHP, Ruby, Node.js, Python, .NET, Go, ainsi que le cluster Docker.
Lien vers cette FAQ: https://faq.infomaniak.com/2260
Cette FAQ a été utile?
Ce guide détaille les protocoles de transfert de fichiers acceptés sur les Hébergement Web et Serveur Cloud Infomaniak lors de connexion aux serveurs ProFTPD.
Préambule
- Avec un hébergement Starter (page Web basique), seule une connexion FTP sur le port 21 (sans SSL/TLS) est possible.
- Lors de la création d'un site via un hébergement Apache / PHP, un accès aux fichiers est possible via différents protocoles (FTP, SFTP, SSH).
- Avec un site Node.js, seuls SSH / SFTP sont possibles pour accéder à votre environnement.
FTP (File Transfer Protocol)
Les connexions FTP en mode "actif" et "passif" sont supportées (alternez entre les 2 pour tenter de résoudre un éventuel problème).
Infomaniak ouvre les ports passifs de son côté [PassivePorts 42000 44000] mais uniquement pour les connexions vers son serveur FTP. Le mode FTP passif implique l'utilisation de ports distants définis par le serveur distant, ainsi que de ports locaux qui peuvent varier en fonction du logiciel/client FTP utilisé.
Le mode passif s'avère utile principalement lorsque le logiciel/client FTP est derrière un pare-feu ou un routeur NAT qui bloque les connexions FTP actives. Cependant, dans l'infrastructure Infomaniak sont autorisées les connexions FTP actives, ce qui signifie que le recours au mode passif n'est généralement pas nécessaire.
En ce qui concerne PHP, il n'est pas possible, par défaut, de gérer cette configuration de manière centralisée. Par conséquent, il n'est pas viable pour Infomaniak d'ouvrir tous les ports pour prendre en charge toutes les configurations distantes, car cela ne serait ni pratique ni sécurisé.
Dans l'ensemble, l'infrastructure ne prend pas en charge à 100% les connexions FTP sortantes en mode passif. Pour une expérience de transfert de fichiers plus fluide, il est recommandé d'utiliser le mode FTP actif ou d'explorer des technologies plus modernes telles que SFTP (lire ci-dessous).
SFTP (SSH File Transfer Protocol)
Créer des connexions SFTP garantit une sécurité élevée des transferts de fichiers. Assurez-vous d'avoir activé SSH sur votre logiciel/client SFTP et utilisez le port 22 pour la connexion : sftp://*****.
FTPES (FTP sécurisé avec TLS/SSL)
Utilisez FTPES pour des transferts de fichiers sécurisés avec le port 21 et l'encryption SSL/TLS. Avec le logiciel Filezilla par exemple, sélectionnez "Connexion FTP explicite sur TLS" pour configurer votre logiciel/client FTPES : ftpes://*****.
FTPaccess
L'accès à la configuration FTPaccess est disponible.
Ce qui n'est pas pris en charge‍
Utilisateur Public/Anonymous
Il n'est pas autorisé de se connecter en tant qu'utilisateur public ou anonyme. Vous devez disposer d'un compte d'utilisateur valide pour accéder à votre espace d'hébergement.
FTPs (FTP sécurisé sur un port personnalisé)
Le protocole FTPs n'est pas pris en charge, ce qui signifie que le port 2121 n'est pas ouvert pour ce type de connexion.
Lien vers cette FAQ: https://faq.infomaniak.com/446
Cette FAQ a été utile?
Ce guide présente plusieurs exemples d'utilisation de Varnish sur Serveur Cloud Infomaniak.
Préambule
- Consultez ces ressources complémentaires sur le langage de configuration Varnish (VCL) pour maîtriser le traitement des requêtes, le routage et la mise en cache :
Configuration de Varnish
Une fois installé, la configuration de Varnish repose sur des règles précises de mise en cache et de purge. Veillez à restreindre l'accès pour éviter que des entités non autorisées puissent vider votre cache.
Voici un exemple de fichier de configuration regroupant les cas d'usage les plus fréquents :
vcl 4.0;
# Default backend configuration
backend default {
.host = "127.0.0.80"; # Backend IP address
.port = "80"; # Backend port
}
# Access Control List (ACL) for purge authorization
acl purge {
"localhost"; # Local access
"1.2.3.4"; # Trusted home IP
"42.42.42.0"/24; # Trusted company range
! "42.42.42.7"; # Specific IP exclusion (e.g., problematic user)
}
# Handle incoming requests
sub vcl_recv {
# Handle PURGE requests
if (req.method == "PURGE") {
# Check if client IP is authorized
if (!client.ip ~ purge) {
return (synth(405, "IP not authorized for PURGE requests."));
}
return (purge);
}
# Custom PURGEALL for image directory
if (req.method == "PURGEALL" && req.url == "/images") {
if (!client.ip ~ purge) {
return (synth(405, "IP not authorized for PURGEALL requests."));
}
# Invalidate all image-related objects in cache
ban("req.url ~ \.(jpg|png|gif|svg)$");
return (synth(200, "Images purged."));
}
# Bypass cache for authorized requests (e.g., admin panels)
if (req.http.Authorization) {
return (pass);
}
}
# Handle backend responses before caching
sub vcl_backend_response {
# Set TTL for images to 1 day
if (beresp.http.content-type ~ "image") {
set beresp.ttl = 1d;
}
# Respect backend's "uncacheable" instruction
if (beresp.http.uncacheable) {
set beresp.uncacheable = true;
}
}
Purge via l'interface CLI
Dès lors que vos règles sont actives, vous pouvez tester la purge de votre site (ex: "domain.xyz") en utilisant l'outil curl :
# Purge the homepage
$ curl -X PURGE https://domain.xyz/
# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
<title>200 Purged</title>
</head>
<body>
<h1>Success 200: Purge completed</h1>
<p>The page has been successfully purged.</p>
<h3>Guru Meditation:</h3>
<p>XID: 2</p>
<hr>
<p>Varnish Cache Server</p>
</body>
</html>Pour purger une URL spécifique, modifiez simplement le chemin de la requête :
# Purge a specific file
$ curl -X PURGE https://domain.xyz/some_path/some_file.html
# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
<title>200 Purged</title>
</head>
<body>
<h1>Success 200: Purge completed</h1>
<p>The file has been successfully purged.</p>
<h3>Guru Meditation:</h3>
<p>XID: 4</p>
<hr>
<p>Varnish Cache Server</p>
</body>
</html>Ou pour déclencher la purge groupée des images définie dans le VCL :
# Execute PURGEALL for images
$ curl -X PURGEALL https://domain.xyz/images
# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
<title>200 Purged images</title>
</head>
<body>
<h1>Success 200: Images purged</h1>
<p>All images have been successfully purged.</p>
<h3>Guru Meditation:</h3>
<p>XID: 32770</p>
<hr>
<p>Varnish Cache Server</p>
</body>
</html>
Purge depuis un CMS (PHP)
La gestion du cache peut aussi se faire dynamiquement via votre backend. Dans la configuration précédente, un contrôle sur l'en-tête Uncacheable a été ajouté. Votre CMS peut envoyer cet en-tête pour forcer Varnish à ne pas stocker une réponse.
Voici comment envoyer une requĂŞte de purge programmatique en PHP :
<?php
// Initialize cURL for a specific URL
if ($curl = curl_init("http://127.0.0.1/some_url")) {
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PURGE",
CURLOPT_HTTPHEADER => [
"Host: {$_SERVER['HTTP_HOST']}" // Match the target host
]
]);
curl_exec($curl);
// Check if the purge was successful (HTTP 200)
if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == 200) {
echo "Cache purged!";
}
curl_close($curl);
}
?>Lien vers cette FAQ: https://faq.infomaniak.com/2592
Cette FAQ a été utile?
Ce guide s'adresse aux développeurs souhaitant utiliser l'ORM Propel sur un hébergement où l'accès ligne de commande est restreint.
Préambule
- L'ORM permet de lier les objets d'une application aux tables d'une base de données. On manipule les données via des objets
PHPplutôt que d'écrire duSQLbrut. Propelest la couche d'abstraction qui gère ces interactions (relations, jointures, pagination) pour simplifier la maintenance du code.
Particularités & limitations
Propeln'est pas préinstallé viaPear.- Vous devez l'installer manuellement dans votre projet.
- Il est impératif de télécharger la version "Conventional Package" de
Propel.
- Les commandes CLI (comme
propel-gen) ne sont pas exécutables sur le serveur.- En conséquence,
Propelne s'utilise qu'en mode "Runtime" sur la production. La génération des classes (build) doit être effectuée localement. - Le workflow consiste à générer le code sur un environnement de développement, puis à transférer les fichiers résultants vers le serveur.
- En conséquence,
- Dépendances:
- L'ensemble des librairies nĂ©cessaires Ă
Propelest disponible, Ă l'exception dePhing. - L'absence de
Phingn'impacte pas la production, car cet outil est uniquement requis lors de la phase de génération locale.
- L'ensemble des librairies nĂ©cessaires Ă
Lien vers cette FAQ: https://faq.infomaniak.com/1142
Cette FAQ a été utile?
Ce guide explique comment prévenir les attaques informatiques et comment éviter un piratage du site que vous gérez.
Utilisateurs WordPress: prenez connaissance de cet article dédié.
Le rôle de l'hébergeur
Le travail d'Infomaniak consiste à fournir un hébergement de qualité donc il est primordial de répondre extrêmement vite aux attaques diverses et variées dont tout acteur Internet peut être l'objet. Infomaniak fait donc tout son possible pour prendre le maximum de précautions contre le hacking, notamment en tenant à jour les différentes versions des technologies utilisées.
Dans le cas d'un piratage avéré, s'il est possible de remonter jusqu'à l'auteur et que la machine a été compromise en raison d'un défaut de sécurité du ressort d'Infomaniak, que l'intégrité des serveurs est en cause, Infomaniak prend les choses en main elle-même.
Le rôle du détenteur de site et du webmaster
Si le piratage de votre site est de votre responsabilité (un script qui n'est pas à jour, un patch de sécurité qui n'a pas été appliqué, etc.) Infomaniak vous contacte afin de vous avertir d'un problème qu'il faudra résoudre rapidement. Certains organismes comme Saferinternet peuvent en outre suspendre le nom de domaine en amont ce qui désactivera le site mais également la messagerie.
Infomaniak ne peut pas contrer des exploits en rapport avec un bug dans votre code PHP ou autre. Si le piratage n'est pas détecté vous constaterez en général l'intrusion assez rapidement par des éléments suspects dans vos pages ou par la réception de nombreux e-mails d'erreurs.
Il est donc de votre responsabilité de vous occuper de l'évolution de votre site au fil du temps et de ne surtout pas le laisser "mourir" dans un coin, quitte à faire appel à un webmaster dont c'est le métier.
Les recommandations Infomaniak
- Mettez à jour régulièrement toutes vos applications Web (WordPress, Joomla, Drupal, ownCloud, etc.).
- Tenez Ă jour la version PHP de votre site sur les serveurs Infomaniak.
- Tenez à jour votre site en migrant vers les nouvelles offres lorsque cela vous est proposé.
- ‍Ajoutez un système de protection sur vos formulaires de contact (captcha, etc.) et sur les éventuels outils de "recommandation aux amis" (tell-a-friend...).
- Lancez régulièrement une analyse antivirus de l'hébergement.
- Surveillez l'outil de détection de vulnérabilités.
- Retirez tout ce que vous n'avez pas développé vous-même et dont l'auteur n'a pas apporté de mise à jour / correction depuis plusieurs mois.
- Réalisez une sauvegarde régulière de votre site (prenez connaissance de cet autre guide si vous utilisez WordPress) lorsque tout va bien et conservez-la en lieu sûr (car les sauvegardes automatiques ne sont conservées que quelques jours et cela n'est parfois pas assez lointain pour revenir en arrière après que vous constatiez une intrusion).
- Consultez ibarry.ch.
Si un problème est apparu...
- Modifiez les mots de passe de vos applications Web, de vos comptes FTP et de vos bases de données en vérifiant préalablement qu'aucun virus ne se trouve sur votre ordinateur.
- Restaurez une sauvegarde mais mettez à jour immédiatement ce qui peut être mis à jour dès la restauration terminée.
- Si vous rencontrez un problème avec un logiciel tiers, contactez directement son éditeur ou un Partenaire et consultez la politique de support ainsi que l'article 11.9 des CGU Infomaniak.
Prenez connaissance de ces recommandations supplémentaires !
Lien vers cette FAQ: https://faq.infomaniak.com/1214
Cette FAQ a été utile?
Ce guide permet de résoudre un problème sur le CMS Prestashop v9.x concernant la génération de factures PDF depuis le panneau d'administration (Back Office), particulièrement lorsque la langue française est utilisée.
Le problème
Lors de la tentative de visualisation ou de téléchargement d'une facture PDF pour une commande en langue française, PrestaShop (en version 9.x) retourne une Erreur 500. Ce dysfonctionnement est lié à une incompatibilité entre la librairie de génération de PDF (TCPDF) utilisant la police par défaut (helvetica) et les configurations d'hébergement.
Définir une police compatible
La solution consiste à forcer l'utilisation de la police freesans, plus compatible, via un fichier de configuration personnalisé.
Il est fortement recommandé de créer un fichier defines_custom.inc.php. Cette méthode est la plus sûre car elle assure que la correction ne sera pas perdue lors des mises à jour du cœur de PrestaShop.
Pour cela:
- Accédez à votre installation PrestaShop 9.x via FTP ou le Gestionnaire de fichiers.
- Naviguez jusqu'au répertoire
/config/. - Créez un nouveau fichier nommé
defines_custom.inc.php. Éditez le fichier
defines_custom.inc.phpet ajoutez le contenu suivant:<?php /** * Avoid error PDF, force font 'freesans'. */ define('PDF_FONT_NAME_MAIN', 'freesans');- Enregistrez le fichier et testez la génération d'une facture en français.
Lien vers cette FAQ: https://faq.infomaniak.com/2690
Cette FAQ a été utile?
Ce guide explique comment consulter et télécharger les journaux Apache d'Hébergement Web, utiles notamment pour analyser des erreurs PHP ou diagnostiquer certains comportements applicatifs.
Préambule
- Les journaux d'accès et d'erreurs sont conservés au moins 7 jours.
- Une fois la période de rétention écoulée, les entrées plus anciennes ne peuvent pas être restaurées, même sur demande.
- Vous pouvez également retrouver ces fichiers directement sur le serveur via SSH/FTP dans le dossier
ik-logsà la racine de votre hébergement.
Accéder aux journaux d'accès et d'erreurs
Pour afficher ces logs:
- Cliquez ici afin d'accéder à la gestion des hébergements & sites sur votre Manager Infomaniak (❓: aide).
- Cliquez sur le nom du site concerné.
- Cliquez sur Avancé dans le panneau latéral gauche.
- Cliquez sur Journaux dans le panneau latéral gauche.
- Cliquez sur Erreurs ou Accès pour afficher le journal d'erreurs ou journal d'accès.
- Choisissez une période si nécessaire.
- Cliquez sur l'icône pour voir les détails.
- Cliquez sur Envoyer par mail pour recevoir immédiatement la totalité des entrées par mail à votre adresse utilisateur.
- Cliquez pour exporter les données au format
.log:
Identifier les adresses IP les plus actives dans les logs d'accès
Pour cela, connectez-vous sur le serveur en SSH (besoin d'aide ?).
La ligne à exécuter en SSH est la suivante :
cat ik-logs/access.log | awk '{ print $2}' | sort -n | uniq -c | sort -n | tail -n 20Lien vers cette FAQ: https://faq.infomaniak.com/1926
Cette FAQ a été utile?
Ce guide concerne Jelastic Cloud qui permet de créer en un clic des conteneurs préconfigurés pour Java, PHP, Ruby, Node.js, Python et Go. Vous avez également la possibilité de déployer n'importe quel conteneur Docker personnalisé dans le Cloud.
Préambule
- Dans le contexte de Jelastic, un conteneur ou nœud fait référence à une unité d'isolation et d'exécution dans laquelle vos applications sont déployées et exécutées, tout en bénéficiant des ressources fournies par le nœud sur lequel elles sont placées.
- Cela permet une gestion efficace des applications et une optimisation des ressources en fonction des besoins de votre projet.
Conteneur
Dans Jelastic, un conteneur est un environnement d'exécution virtuel qui isole vos applications et leurs dépendances du reste du système. Il peut s'agir d'un conteneur Docker ou d'un autre type de conteneur supporté par Jelastic.
Chaque conteneur agit comme une unité distincte, ce qui signifie que vous pouvez exécuter plusieurs applications dans différents conteneurs sans qu'elles interfèrent les unes avec les autres.
Noeud
Un nœud est une instance de serveur virtuel ou physique sur lequel un ou plusieurs conteneurs peuvent être déployés. En d'autres termes, un nœud est une machine virtuelle ou physique qui fournit les ressources (comme le CPU, la mémoire, le stockage, etc.) nécessaires pour exécuter vos applications.
Jelastic distribue automatiquement les conteneurs sur différents nœuds en fonction de la charge et des ressources disponibles pour garantir des performances optimales et une haute disponibilité.
Lien vers cette FAQ: https://faq.infomaniak.com/2254
Cette FAQ a été utile?
Ce guide explique comment utiliser le gestionnaire de fichiers Web FTP qui permet de gérer de façon simple et rapide le contenu de vos Hébergements Web.
Préambule
- Le service en ligne Web FTP / FTP Manager ne nécessite pas d'accès particulier dès lors que vous possédez les droits de gestion sur un hébergement présent dans le Manager Infomaniak et que vous y êtes connecté.
- Aucun besoin donc de posséder un compte FTP et son mot de passe, le mot de passe du compte Infomaniak suffit.
- Cela permet de:
- créer des fichiers,
- naviguer dans les répertoires,
- manipuler des fichiers existants (copier, renommer, déplacer, supprimer, dézipper…),
- éditer et visualiser les fichiers texte, php et html de moins de 1 Mo,
- transférer des fichiers de moins de 50 Mo entre votre ordinateur et le serveur:

- y compris par glissé/déposé directement de l'ordinateur vers la fenêtre Web FTP:

- afin d'aller au-delà de cette limite et pour des possibilités de travail en arrière-plan, reprise des transferts après coupure, de limitation des débits, etc. utilisez un logiciel/client FTP (❓: aide).
- y compris par glissé/déposé directement de l'ordinateur vers la fenêtre Web FTP:
Accéder au serveur par Web FTP
Afin d'accéder rapidement au serveur du site par FTP ou SSH:
- 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 FTP / SSH dans le menu latéral gauche.
- Cliquez sur les boutons
Web FTPouSSH consoleĂ votre disposition:
Lien vers cette FAQ: https://faq.infomaniak.com/1130
Cette FAQ a été utile?
Ce guide explique comment rendre public l'un de vos calendriers / agendas depuis l'app Web Calendar Infomaniak (service en ligne ksuite.infomaniak.com/calendar).
Préambule
- Vous obtiendrez une URL propre Ă votre agenda au format
.icsque Calendar (ex-iCal Apple), Calendrier (ex-iCalendar Microsoft), Thunderbird (ex-Lightning Mozilla) ou encore Google Agenda peuvent reconnaitre pour afficher votre agenda:
- Les données contenues dans le calendrier partagé ne seront plus privées mais ne seront disponibles qu'en lecture seule aux utilisateurs qui s'y "abonnent”.
- La fréquence des mises à jour ponctuelles opérées par l'application qui souscrit à l'URL de votre calendrier doit être définie sur l'application en question.
- Des scripts PHP (non fournis) permettent également de parser de tels fichiers vous permettant par exemple l'inclusion d'évènements sur un site.
- Prenez connaissance de cet autre guide pour configurer la synchronisation de vos calendriers/agendas ou de cet autre guide pour partager un calendrier/agenda à vos collaborateurs avec différentes permissions.
Activer le partage public d'un calendrier Infomaniak
Pour partager un agenda publiquement :
- Cliquez ici afin d'accéder à l'app Web Calendar Infomaniak (service en ligne ksuite.infomaniak.com/calendar).
- Cliquez sur le menu d'action â‹® Ă droite d'un calendrier.
- Cliquez sur Partager le calendrier.
- Activez le bouton Ă bascule (toggle switch) pour le partage public.
- Cliquez sur l'icĂ´ne pour copier l'adresse dans le presse-papiers:

- Il est en tout temps possible de supprimer l'accès public depuis cette page de partage (cf point 4 ci-dessus):

- Il est en tout temps possible de supprimer l'accès public depuis cette page de partage (cf point 4 ci-dessus):
Lien vers cette FAQ: https://faq.infomaniak.com/1763
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?