Base de connaissances
1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Ce guide explique comment convertir une offre Web Starter gratuite vers une offre payante plus complète et améliorée, comme un Hébergement Web mutualisé ou un hébergement Web sur Serveur Cloud.
Préambule
- En achetant un nom de domaine auprès d'Infomaniak, vous obtenez 1 adresse mail gratuite ainsi qu'un espace Web basique de 10 Mo.
- En quelques clics, il est possible de faire évoluer ces offres pour bénéficier d'une expérience enrichie.
Modifier l'offre Starter - page Web basique
Pour faire évoluer cette offre gratuite :
- Cliquez ici afin d'accéder à la gestion de votre produit sur le Manager Infomaniak (besoin d'aide ?).
- Cliquez sur le menu d'action ⋮ situé à droite de l'élément concerné.
- Cliquez sur Modifier l'offre:
- Suivez l'assistant pour choisir le nouveau type d'hébergement, payez pour terminer le changement d'offre.
Ce guide explique pourquoi il existe un dossier /icons/
au sein des Hébergements Web Infomaniak.
Dossier /icons/ sur votre Hébergement Web
Dans certains cas, un dossier nommé /icons/
est présent par défaut sur votre hébergement Web. Ce dossier est généralement accessible via HTTP, mais n'est pas visible dans l'arborescence FTP (www.domain.xyz/icons/
).
Ce répertoire /icons/
est souvent utilisé pour stocker des icônes ou des images spécifiques servant à l'affichage des listes de répertoires. Ces icônes sont généralement utilisées par les serveurs Web pour représenter visuellement les différents types de fichiers dans les répertoires lorsqu'ils sont consultés via un navigateur.
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.
Ce guide fournit des informations précises sur la prise en charge de l'environnement de développement ASP
(Active Server Pages, aspx) au sein de l'infrastructure d'Infomaniak.
Prise en charge de l'ASP
Les services d'hébergement Web et Serveurs Cloud reposent sur une architecture serveur Apache qui ne supporte pas nativement le module Apache::ASP.
Cependant, il existe la possibilité d'installer et de configurer cet environnement ASP sur VPS Cloud Infomaniak.
Ce guide explique comment ajouter des adresses IP Ă la liste blanche d'un site Web Infomaniak.
Préambule
- Autoriser des IP sur
xmlrpc.php
permet 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 produit sur le Manager Infomaniak (besoin d'aide ?).
- Cliquez directement sur le nom attribué au produit concerné:
- Cliquez sur Gérer sous Paramètres avancés:
- Cliquez sur l'onglet PHP / Apache.
- Complétez la ligne concernée:
- Cliquez sur le bouton pour sauvegarder.
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_timeout
etinteractive_timeout
qui 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.
Ce guide vous concerne si vous souhaitez réaliser des tests de vulnérabilité de votre site / serveur hébergé par Infomaniak.
Tolérés et restreints
Vous êtes libre de réaliser des tests de vulnérabilité (injection SQL, XSS, etc.), d'intrusion, ou test de pénétration (pentest) de votre hébergement Infomaniak uniquement selon les conditions suivantes:
- … entre 9h et 17h CET
- … du lundi au vendredi
- … avec le minimum de paquet d'attaque quel que soit le logiciel employé (AppScan p.ex)
- … sans jamais faire une seule attaque de type DoS ou DDoS (Déni de service / Denial of Service)
- … en respectant les CGU Infomaniak en particulier le cadre mutualisé des services
Ce guide explique comment mettre en place un réseau de sites WordPress afin de gérer plusieurs sites à partir d’une même installation WordPress Infomaniak, avec des adresses URL de type site1.domain.xyz
, site2.domain.xyz
, ou mĂŞme avec domain1.com
, domain2.com
, etc.
Simplifiez-vous la vie ! En cas de besoin, des partenaires locaux et référencés par Infomaniak peuvent s'occuper de ces démarches. Lancez un appel d'offres gratuit. Ils s'occupent de tout, vous libérant des détails techniques.
Installation de WordPress multisite
Pour commencer:
- Installez WordPress via Infomaniak sur votre espace d'hébergement avec un nom de domaine principal:
- Ce premier site WordPress doit ĂŞtre atteignable et fonctionner correctement:
- Ce premier site WordPress doit ĂŞtre atteignable et fonctionner correctement:
- Connectez-vous par FTP.
- Editez le fichier
wp-config.php
de ce premier site WordPress concerné. - Au-dessus de la ligne "
/* That's all, stop editing! Happy blogging. */
" (#94) copiez-collez le codedefine('WP_ALLOW_MULTISITE', true);
:
- Enregistrez vos changements.
- Connectez-vous ensuite sur l'administration de votre site WordPress.
- Désactivez temporairement toutes les extensions WordPress:
- Rendez-vous dans le menu OUTILS afin de créer un Réseau:
- Choisissez la méthode de création de vos différents WordPress (sur sous-domaines)…
- Cliquez sur le bouton d'installation:
- Ajoutez les indications qui s'affichent à l'écran dans le
wp-config.php
et.htaccess
sur le serveur. - Après reconnexion à votre WordPress vous obtiendrez un nouveau menu "Mes sites" dans lequel vous pourrez ajouter et gérer vos différents sites du même réseau:
- Réactivez vos extensions désactivées.
- Sur le Manager, ajoutez un alias Ă votre site de la forme
*
.votre-domaine-ici (l'astérisque permet de créer un alias wildcard) avec mise à jour DNS afin que le bonCNAME
soit ajouté automatiquement dans la zone: - Installez ou mettez à jour vos certificats SSL:
- Lorsque vous créerez un nouveau site au sein du réseau, en le nommant par exemple
home2
alors il deviendra accessible viahome2.domain.xyz
et ainsi de suite:
Ce guide explique comment résoudre un problème d'importation de fichier .csv dans une table MySQL. L'alternative proposée consiste à lire le fichier CSV ligne par ligne à l'aide de 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 dans une table MySQL et est malheureusement désormais fréquemment utilisée par les pirates pour obtenir l'accès à certains sites hébergés sur des machines acceptant cette fonction.
Pour lutter contre les actes de malveillances et continuer à protéger autant que possible les données des clients, Infomaniak a désactivé la fonction LOAD DATA LOCAL INFILE
. Ne sont pas concernées par cette modification les personnes important leurs fichiers CSV (à condition de ne pas cocher "CSV via LOAD DATA") via phpMyAdmin.
Voici une alternative pour continuer à importer des données au format CSV dans une table MySQL, un exemple complet (en français) du code avec une gestion correcte des erreurs pour l'ouverture du fichier CSV et l'insertion des données dans la base de données.
Cette version utilise mysqli
pour se connecter à la base de données et les requêtes préparées pour insérer les données, offrant ainsi une meilleure sécurité et compatibilité avec les versions récentes de PHP et une facilité à l'implémenter dans votre script PHP ou simplement dans un nouveau fichier PHP de votre répertoire /web:
$NomDuFichier = "data.csv";
// Connexion à la base de données MySQL avec mysqli
$link = new mysqli("localhost", "username", "password", "database");
// Vérification de la connexion
if ($link->connect_error) {
die("Échec de la connexion : " . $link->connect_error);
}
// Ouverture du fichier CSV en lecture
if (($handle = fopen($NomDuFichier, "r")) !== FALSE) {
// Décomposition de chaque ligne du fichier CSV
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
// Préparation de la requête SQL
$query = "INSERT INTO `test` VALUES (" . str_repeat('?,', count($data) - 1) . "?)";
$stmt = $link->prepare($query);
// Vérification de la préparation de la requête
if ($stmt === FALSE) {
die("Échec de la préparation de la requête : " . $link->error);
}
// Liaison des paramètres
$types = str_repeat('s', count($data)); // Assume que toutes les colonnes sont de type string
$stmt->bind_param($types, ...$data);
// Exécution de la requête
if (!$stmt->execute()) {
die("Échec de l'exécution de la requête : " . $stmt->error);
}
// Fermeture de la déclaration
$stmt->close();
}
// Fermeture du fichier CSV
fclose($handle);
} else {
echo "Erreur : impossible d'ouvrir le fichier.\n";
exit(1);
}
// Fermeture de la connexion à la base de données
$link->close();
?>
Obtenir de l'aide
Il est malheureusement impossible de vous indiquer précisément à quel endroit de votre script ces lignes de code doivent être ajoutées.
Si l'alternative proposée pose problème lorsque vous soumettez plusieurs fichiers CSV à lire et que la procédure par exemple se termine sans renvoi de message malgré les points de gestion des messages dans le fichier PHP, il est possible que les tables et les champs utilisés soient mal indexés et dans ce cas, contactez également votre webmaster.
Prenez connaissance de la documentation de PHP concernant fgetcsv
.
Simplifiez-vous la vie ! En cas de besoin, des partenaires locaux et référencés par Infomaniak peuvent s'occuper de ces démarches. Lancez un appel d'offres gratuit. Ils s'occupent de tout, vous libérant des détails techniques.
Ce guide présente l'outil de Diagnostic DNS qui permet de vérifier que les relations entre…
- NOM DE DOMAINE chez Infomaniak
et
- HEBERGEMENT WEB chez Infomaniak
… sont bien correctes, ceci afin que le trafic Web se dirige au bon endroit.
Préambule
- Pour vérifier, l'outil contrôle les enregistrements A, CNAME, etc.
- Vous pourrez ainsi détecter et corriger certains problèmes Web en particulier s'ils sont liés aux DNS (informations techniques qui, en gros, déterminent où doit être dirigé tel ou tel trafic Web) en agissant au niveau de votre domaine.
- La correction automatique n'est possible que lorsque le nom de domaine est présent sur la même Organisation que le produit auquel il doit être rattaché.
- Si tel n'est pas le cas alors la correction devra se faire manuellement.
Diagnostiquer un problème DNS
Afin d'accéder au diagnostic DNS de votre nom de domaine :
- 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 Web dans le menu latéral gauche.
- Cliquez sur Diagnostic DNS dans le menu latéral gauche:
- Si des problèmes de DNS sont détectés, un affichage rouge sur le tableau le signale:
- Corrigez chaque erreur individuellement en cliquant sur le menu d'action ⋮ situé à droite de l'élément concerné…
- … ou toutes les erreurs d'un coup…
- … ou si nécessaire et que vous êtes sûr de vous, ignorez ces avertissements.
- Si des problèmes de DNS sont détectés, un affichage rouge sur le tableau le signale:
Prenez connaissance de cet autre guide au sujet de ce même processus de vérification automatique mais pour les Services Mail.