Base de connaissances
1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Ce guide concerne ImageMagick, une suite logicielle puissante pour la manipulation d'images, disponible sur les Hébergements Web et Serveurs Cloud Infomaniak.
Installation simplifiée : Pour installer ImageMagick ou ses extensions, il est recommandé d'utiliser Fast Installer depuis votre Manager.
ImageMagick et solutions de manipulation d'images
Plusieurs outils sont Ă votre disposition pour traiter vos visuels (redimensionnement, conversion, filigranes) :
- ImageMagick (CLI) : la suite principale utilisable en ligne de commande (via SSH) ; la commande moderne est
magick, mais l'ancienne syntaxeconvertreste disponible. - Extension PHP
imagick: c'est la solution la plus courante pour les sites web (WordPress, etc.) ; elle permet d'utiliser ImageMagick directement dans vos scripts PHP. - Bibliothèque GD : une alternative plus légère, souvent pré-installée, idéale pour des manipulations simples (miniatures, texte sur image).
- PerlMagick : interface dédiée aux scripts Perl pour accéder aux fonctionnalités d'ImageMagick.
Chemins d'accès et commandes
Sur les infrastructures Infomaniak, ImageMagick est installé de manière standard. Les exécutables se situent dans le répertoire suivant :
/usr/bin/Voici les principales commandes disponibles :
| Commande | Usage principal |
|---|---|
magick (ou convert) | Convertir, redimensionner et transformer des images. |
identify | Obtenir les métadonnées d'un fichier (format, taille, etc.). |
mogrify | Appliquer une modification directement sur le fichier original. |
composite | Superposer plusieurs images (ex: ajout d'un logo en filigrane). |
Pour tester la présence du module Perl Image::Magick, vous pouvez utiliser la commande suivante :
perl -e 'use Image::Magick; print "Installed\n"';Lien vers cette FAQ:
Cette FAQ a été utile?
Ce guide explique comment gérer Memcached et notamment savoir si ce système de mise en cache en mémoire fonctionne correctement sur votre Serveur Cloud managé.
Prérequis
- Installer Memcached sur Serveur Cloud managé.
Vérifier l'exécution de Memcached
Afin de vérifier le bon fonctionnement de Memcached:
Copiez le code suivant dans un fichier PHP (connexion au serveur memcache local):
$fp = fsockopen("localhost", 11211); if ($fp) { // on demande les stats fwrite($fp, "stats\n"); while (!feof($fp)) { $buf = rtrim(fgets($fp)); if (preg_match('/^STAT curr_items ([0-9]+)$/', $buf, $matches)) { // le nombre d'items stockes print $matches[1] . PHP_EOL; } elseif (preg_match('/(END|ERROR)/', $buf)) { // fin des stats break; } } fclose($fp); } else { print "Error: cannot connect to local memcached server: $!" . PHP_EOL; }- Téléchargez le fichier PHP sur votre hébergement.
- Exécutez le fichier PHP.
Le script renvoie le nombre d'éléments mis en cache dans la mémoire du serveur.
Activer Memcached sur…
… Prestashop
L'intégration native de Memcached dans l'application Prestashop simplifie sa configuration. Pour l'activer:
- Accédez à votre espace d'administration Prestashop.
- Rendez-vous dans l'onglet Paramètres avancés.
- Sélectionnez Performances.
- Choisissez Oui dans le menu déroulant sous Utiliser le cache dans la section Mise en cache.
- Sélectionnez CacheMemcached.
- Ajoutez un serveur en fournissant les informations requises telles que
- l'adresse IP:
127.0.0.1 - le port:
11211 - le poids:
1
- l'adresse IP:
Vous pouvez vérifier les informations en cliquant sur le bouton "Tester le serveur" avant de les enregistrer en bas de la section "Mise en cache".
Une fois cette étape terminée, votre application PrestaShop est prête à utiliser Memcached pour mettre en cache certains appels d'API, appels de base de données et objets.
Lien vers cette FAQ:
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:
Cette FAQ a été utile?
Ce guide détaille les différences entre les protocoles IMAP et POP3 sur un logiciel/client de messagerie (Outlook, Microsoft 365, Thunderbird, Apple Mail, eM Client, etc.) et explique pourquoi il est crucial de ne pas les utiliser simultanément pour une même adresse mail gérée par Infomaniak.
IMAP (recommandé)
L'IMAP est le protocole de synchronisation. Les messages restent sur le serveur et sont consultables partout.
- Accès multi-appareils : vos e-mails sont synchronisés entre votre ordinateur, votre mobile et l'app Web Mail Infomaniak.
- Travail collaboratif : idéal pour les boîtes partagées. Si un utilisateur déplace ou supprime un message, la modification est visible par tous.
- Sécurité : en cas de panne de votre ordinateur, vos messages restent sauvegardés sur le serveur.
POP3 (usage spécifique)
Le POP3 est un protocole de téléchargement. Les messages sont récupérés sur votre ordinateur et généralement supprimés du serveur.
- Consultation hors-ligne : les messages sont stockés localement sur votre disque dur.
- Inconvénient majeur : une fois téléchargés, les messages ne sont plus visibles sur l'app Web Mail Infomaniak ou sur vos autres appareils.
- Risques : si vous utilisez l'option "conserver une copie des messages sur le serveur", vous risquez des téléchargements en doublon et des erreurs de synchronisation.
Important : ne jamais mélanger POP et IMAP
L'utilisation simultanée de ces deux protocoles pour une même adresse provoque des conflits techniques majeurs :
- Disparition inexpliquée de messages sur certains appareils.
- Téléchargements répétés d'anciens messages déjà lus (notamment sur Outlook).
- Saturation inutile de l'espace de stockage.
Conseil : privilégiez l'utilisation de l'IMAP sur tous vos logiciels/clients de messagerie.
Prenez connaissance de ces autres guides pour configurer un compte en IMAP ou pour passer de POP Ă IMAP.
Lien vers cette FAQ:
Cette FAQ a été utile?
Ce guide explique comment passer, dans un logiciel/client de messagerie, d'une configuration POP à une configuration IMAP pour une même boite mail. En effet, pour plein de raisons, il est fortement recommandé d'utiliser le protocole IMAP au lieu de POP.
Passer du protocole POP au protocole IMAP…
Si votre adresse mail est déjà configurée avec le protocole POP dans votre logiciel/client de messagerie (Mozilla Thunderbird, Microsoft Outlook, etc.), il est impossible de passer au protocole IMAP directement sur le compte. En effet les logiciels/clients de messagerie les plus courants ne permettent pas de modifier un compte existant POP3 et de le définir en IMAP à la place.
La solution est donc d'ajouter le même compte mail mais avec le protocole IMAP dans votre logiciel/client de messagerie puis de déplacer vos messages et dossiers du compte POP (de votre ordinateur) au compte IMAP (sur le serveur de messagerie).
⚠️ Attention : un compte POP3 sur votre logiciel/client de messagerie implique qu'Infomaniak ne possède la plupart du temps aucune sauvegarde. Il faut donc veiller à sauvegarder vos messages de votre côté avant toute manipulation critique.
… avec Microsoft Outlook
Certaines versions d'Outlook comme la 2016 empêchent l'ajout simple d'un second compte qui aurait la même dénomination (adresse mail identique).
Pour contourner cela il faut ajouter le compte depuis la partie Profils:
Et depuis là vous pourrez ajouter le compte supplémentaire, en IMAP:
- Configurez le nouveau compte mail avec le protocole IMAP (le même compte que celui configuré en POP mais cette fois en IMAP):
- Déplacez un dossier après l'autre en les glissant vers la boite de réception du nouveau compte configuré en IMAP:
- Patientez pendant le transfert des éléments (cela peut prendre beaucoup de temps selon le volume à transférer sur le serveur) ; l'activité est indiquée en bas de la fenêtre:
Si votre compte POP gardait une copie des messages sur le serveur (option déconseillée présente dans les paramètres avancés de votre Outlook), vous risquez d'avoir des messages à double.
… avec Apple Mail
La suppression du compte mail configuré en POP supprime les messages qu'il contient. Il est donc recommandé de désactiver le compte POP au lieu de le supprimer !
Une fois le compte POP désactivé, prenez connaissance de cet autre guide pour configurer votre adresse mail dans Apple Mail, en IMAP.
Lorsque vous aurez terminé, il ne vous restera plus qu'à glisser les messages présents dans votre arborescence de compte POP vers l'arborescence du nouveau compte IMAP.
Lien vers cette FAQ:
Cette FAQ a été utile?
Ce guide explique comment bénéficier de nouvelles versions de PHP, MySQL et de nombreux autres paquets en faisant migrer un Serveur Cloud sur une nouvelle infrastructure Infomaniak.
Préambule
- La migration est gratuite et se déroule en 3 étapes:
- Infomaniak met à disposition un Serveur Cloud dernière génération ayant les mêmes caractéristiques que l'actuel, au même tarif et même durée d'engagement.
- Vous disposez d'un mois pour déplacer vos hébergements sur le nouveau Serveur Cloud mis à disposition (lire ci-dessous).
- Lorsque vos hébergements sont déplacés sur le nouveau serveur, résiliez l'ancien Serveur Cloud.
- Les accès FTP et bases de données ne changent pas.
- Seules changent au niveau des hébergements les versions supportées de PHP et MariaDB, ainsi que les adresses IPv4 et IPv6 du serveur.
- Les noms d'hĂ´tes (hostnames) ne changent pas et sont automatiquement mis Ă jour pour pointer sur les nouvelles adresses IP.
- Lors de cette opération, les statistiques sont réinitialisées.
Procédure de migration
En migrant vos données sur la nouvelle infrastructure Cloud, vous augmentez la performance et la fiabilité de vos sites qui accéderont aux dernières technologies:
- 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 le bouton bleu dans l'encadré "Faire évoluer votre Serveur Cloud" (ou sur Gérer):

Lien vers cette FAQ:
Cette FAQ a été utile?
Ce guide concerne le module Apache mod_auth_mysql qui permet l’authentification des utilisateurs et l’autorisation d’accès via une base de données MySQL.
Avec un hébergement mutualisé
Le module mod_auth_mysql n'est pas disponible avec les hébergements mutualisés ; il faut envisager un Serveur Cloud ou utiliser scripts PHP et sessions.
Lien vers cette FAQ:
Cette FAQ a été utile?
Ce guide explique quelles sont les différences entre les offres d'hébergement Web Infomaniak pour vous aider à choisir la meilleure solution selon vos besoins informatiques.
Si vous cherchez à héberger votre messagerie, prenez connaissance de cet autre guide.
Hébergement Web Starter
L'hébergement Web gratuit
L'hébergement Web Starter est proposé gratuitement avec chaque nom de domaine enregistré chez Infomaniak. Il propose 10 Mo d'espace disque afin de créer un site (pages basiques en langage HTML uniquement - pas de PHP, pas de base de données) même sans connaissance particulière grâce à l'outil Page de bienvenue.
- Enregistrer ou transférer un nom de domaine chez Infomaniak
- En savoir plus sur les avantages inclus avec un nom de domaine
Hébergement Web mutualisé
L'offre phare pour créer vos sites
Ces hébergements Web sont des offres mutualisées (les sites Web seront hébergés sur des serveurs dont les ressources sont partagées avec d'autres clients). Pour garantir la fiabilité de ces services mutualisés, les serveurs Infomaniak utilisent en moyenne seulement 40% de la puissance des CPU et sont équipés de disques SSD professionnels de dernière génération.
L'hébergement Web offre 250 Go d'espace disque minimum et permet de gérer plusieurs sites Web avec plusieurs noms de domaine. Cette offre inclus toutes les technologies habituellement utilisées pour créer des sites professionnels: PHP, MySQL, accès FTP et SSH, certificats SSL et installation facile de WordPress ou CMS courants, etc. Il est également possible d'y ajouter un site Node.js et/ou Site Creator.
A noter que sans hébergement d'aucune sorte, il est également possible d'obtenir puis d'exploiter Site Creator “autonome / standalone ”. Prenez connaissance de cet autre guide.
Serveur Cloud
L'hébergement Web professionnel
Avec un Serveur Cloud, les ressources qui vous sont allouées ne sont pas partagées avec d'autres clients et vous pouvez personnaliser la configuration matérielle et logicielle de votre serveur selon vos besoins. Un Serveur Cloud permet également d'utiliser des composants qui ne sont pas disponibles sur des hébergements Web mutualisés (Node.js, mongoDB, Sol, FFMPEG, etc.).
- Un Serveur Cloud permet de facilement administrer votre serveur via la même interface d'administration que les hébergements Web - vous y gérez les sites de la même façon.
- Un VPS permet de gérer de manière 100% autonome votre serveur avec la version de Windows ou la distribution Linux de votre choix (
Debian,Ubuntu,openSUSE, ...) - de solides compétences techniques sont requises pour utiliser un VPS, y compris VPS Lite.
Public Cloud (et Kubernetes Service)
Solution IaaS ouverte, éprouvée et sécurisée
Pour Infomaniak c'est l'infrastructure qui propulse kDrive, Swiss Backup et le Webmail, des services utilisés par plusieurs millions d'utilisateurs. Mais Public Cloud est accessible à tout le monde et met à disposition les ressources dont vous avez besoin pour le développement de vos projets.‍
A l’aide des offres personnalisées et sur mesure vous n’aurez aucun mal à gérer votre budget de développement. Aucun frais de mise en service. Pas de montant minimum. Résiliable à tout moment. Vous ne payez que les ressources effectivement utilisées avec Public Cloud à la fin de chaque mois, idem pour Kubernetes Service.
Jelastic Cloud
L'hébergement Web sur mesure avec les technologies de votre choix
Jelastic Cloud permet de créer des environnements de développement sur mesure avec les technologies de votre choix (PHP, Java, Docker, Ruby, etc.). C'est une offre cloud flexible:
- Redimensionnement horizontal et vertical des ressources.
- Paiement selon la consommation réelle des ressources.
- Personnalisation facile de votre infrastructure (redondance, IP, SSL, répartition de charge, etc.).
Lien vers cette FAQ:
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 Web 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:
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:
Cette FAQ a été utile?
Merci d'avoir choisi Infomaniak pour créer votre PaaS !
Ce guide vous aide à utiliser rapidement les principales fonctionnalités de votre nouveau produit Jelastic Cloud.
Questions fréquentes
- Présentation de Jelastic
- Conteneurs et nœuds : fonctionnement
- Facturation Jelastic et fonctionnement des Cloudlets
- Technologies compatibles avec Jelastic Cloud
- Créer un VPS avec Jelastic Cloud
- Méthodes de déploiement d'une application
- Différences entre Jelastic Cloud et un VPS
- Ressources disponibles selon le type de compte
Accédez à l'ensemble des FAQ sur Jelastic Cloud.
Ressources techniques
Prenez connaissance de la documentation officielle de Jelastic (en anglais) pour plus de détails techniques :
- Déploiement d'applications en cluster (WordPress, Magento, etc.)
- Création d'un environnement
- Déploiement d'applications ou de code
- Configuration des serveurs (Java, PHP, Ruby, etc.)
- Liaison d'un nom de domaine
- Ajout d'une adresse IP publique
- Suivi des statistiques d'application
- Accès SSH à votre environnement
- Gestion des alertes de consommation des ressources
- Redimensionnement dynamique : horizontal et vertical
- Installer des paquets sans accès root avec Yum Packages Installer
Pour toute question ou difficulté, n'hésitez pas à contacter le support Infomaniak.
Lien vers cette FAQ:
Cette FAQ a été utile?
Ce guide présente des pistes d'amélioration pour réduire le temps de réponse de votre Hébergement Web Infomaniak.
Préambule
- TTFB, ou *Time To First Byte*, est une unité de mesure utilisée pour évaluer la vitesse de réponse d'un serveur Web.
- Le TTFB mesure le temps entre une requête HTTP provenant d'un utilisateur ou d'un navigateur et la réception du premier byte de la page du site à consulter.
- Ce délai est particulièrement important. Il peut faire partie des critères SEO pris en compte par les moteurs de recherche comme Google.
Pistes d'amélioration du TTFB
Pour accélérer le site et obtenir une meilleure valeur TTFB :
- Utilisez un réseau de diffusion de contenu (CDN).
- Optimisez le code du site.
- Optimisez les requêtes de la base de données.
- Limitez les requĂŞtes HTTP.
- Incorporez du CSS et du JavaScript dans vos pages HTML pour ne pas faire appel Ă des ressources externes.
- Utilisez un système de cache RFPL (*Response First, Process Later*).
Prenez connaissance de l'article de Criticalcase (en anglais) pour de plus amples informations.
Tester la vitesse de réponse du serveur
En cas de doute sur la vitesse de réponse du serveur, il est possible de créer un fichier index2.html qui sera enregistré au même niveau que le fichier index.html (ou .php), et ainsi effectuer un test d'optimisation (par exemple domain.xyz/index2.html) sans que le site/CMS principal ne soit pris en compte.
Si le temps de réponse est normal, cela signifie que les lenteurs proviennent du site et non du serveur.
Pour aller plus loin
Prenez connaissance des ressources suivantes :
Lien vers cette FAQ:
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:
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:
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:
Cette FAQ a été utile?
Ce guide explique comment rediriger un nom de domaine directement vers un autre ou comment envoyer automatiquement les visiteurs de votre site Web vers une autre adresse de page (URL interne ou externe).
Préambule
- Pour rediriger du trafic, vous devrez agir…
- … soit sur le nom de domaine lui-même (il doit être hébergé par Infomaniak et ses DNS doivent être ceux d'Infomaniak également),
- … soit sur le code présent dans vos pages (page .htaccess, page d'accueil, etc.) si vous avez un site Web.
Agir sur le nom de domaine
via Outil de Redirection Web
L'outil disponible sur le Manager permet d'agir de manière simple sur le nom de domaine (ou sous-domaine) afin de le rediriger vers l'adresse Internet de votre choix.
via modifications DNS ou enregistrement A
Changer les DNS du nom de domaine ou modifier ses enregistrements A/AAAA permet de diriger le trafic Web chez un autre fournisseur.
Agir sur le code des pages…
… via code HTML à insérer
Insérez cette ligne de code entre les balises <head> et </head> de votre page d'accueil (en principe nommée index.html):
<meta http-equiv="refresh" content="5;url=INSERT-HERE-NEW-URL">Remplacez 5 par le temps d'attente en seconde désiré (0 pour que cela se fasse immédiatement).
Le moteur de recherche Google indique qu’il est préférable d’utiliser une redirection de type 301 côté serveur (lire plus bas). Le W3C conseille également de ne pas l’utiliser.
… via code PHP à insérer
Si la page du site possède une extension .php, insérez cet appel de fonction header tout en haut du fichier:
header("refresh: 5; url=INSERT-HERE-NEW-PAGE-URL");… via fichier .htaccess
Pour rediriger absolument tout le trafic visant votre site (quelle que soit la page appelée) vers une autre adresse, insérez ceci dans le fichier .htacces à la racine de votre site:
RewriteEngine On
RewriteRule ^(.*)$ INSERT-HERE-NEW-URL/$1 [R=301]Pour cibler la page qui doit être redirigée:
Redirect permanent /ancienne_page.html insérer ici adresse URL de destinationRedirectpermanent, Redirect permanent et Redirect 301 sont des commandes équivalentes.
Ci-après un autre exemple de redirection d'une sous-partie vers la page d'accueil (cette directive à l'avantage de fonctionner avec les "deep link" contrairement à une redirection permanente):
RewriteEngine on
RewriteRule "old/path/url "/" [L]Prenez connaissance de cet autre guide Ă ce sujet.
Lien vers cette FAQ:
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:
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:
Cette FAQ a été utile?
Ce guide explique comment ajouter des adresses IP Ă la liste blanche d'un site Web 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 Web :
- Cliquez ici afin d'accéder à la gestion de votre site sur le Manager Infomaniak (besoin d'aide ?).
- Cliquez directement sur le nom attribué au 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:
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 Web.
- 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:
Cette FAQ a été utile?