Base de connaissances
1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Ce guide détaille l'utilisation de Crontab (crons via SSH), disponible uniquement sur Serveur Cloud, par défaut (il existe aussi un planificateur de tùches pour tout hébergement).
Prérequis
- Les fichiers scripts appelĂ©s par le cron doivent ĂȘtre exĂ©cutables (CHMOD).
Chemin complet
Les tùches Cron n'ont pas connaissance du chemin absolu (path). Appeler PHP sans spécifier les chemins complets vers l'exécutable rend donc impossible l'exécution de la tùche. Il faut spécifier
/opt/phpX.X/bin/phpen remplaçant X.X par la version de PHP souhaitée (/opt/php8.1/bin/php par exemple).
Autres opérations
Par exemple:
Lister les crons de l'utilisateur SSH en question:
crontab -l -u UsernameEditer les crons:
crontab -e -u UsernameEtre notifié par mail du résultat de vos tùches cron (à ajouter en début de fichier):
MAILTO=e-mail@domain.xyz
Restaurer une sauvegarde
Infomaniak sauvegarde les crons des 7 derniers jours (une fois par jour). En cas de suppression accidentelle, contactez le support Infomaniak pour demander une restauration en précisant l'heure et la date de l'effacement.
Lien vers cette FAQ: https://faq.infomaniak.com/350
Cette FAQ a été utile?
Ce guide explique à quoi sert l'option "Préfixe MySQL" dans les paramÚtres d'un site et quelles sont ses implications pour le fonctionnement de vos applications Web (CMS) et scripts PHP.
Préambule
- Lorsque l'option "Préfixe MySQL" est activée pour un site, il n'est plus nécessaire d'ajouter le préfixe "
wxyz_" devant le nom et les utilisateurs de vos bases de données MySQL. - Un script PHP pourra ainsi se connecter à MySQL avec l'utilisateur "monuser" et une base de données "mabase" et l'accÚs se fera automatiquement avec l'utilisateur "wxyz_monuser" et la base de données "wxyz_mabase".
- â Sâi vous effectuez une migration depuis une ancienne offre Infomaniak:
- AprÚs avoir migré un site de l'ancienne console, l'option "Préfixe MySQL" est activée par défaut afin de maintenir automatiquement la connexion de vos applications Web (WordPress, Joomla, Drupal, etc.) et scripts PHP avec vos bases de données MySQL.
- Afin d'assurer le bon fonctionnement de vos sites en cas de migration de votre hĂ©bergement sur un autre serveur, il est fortement recommandĂ© de dĂ©sactiver cette fonction et d'effectuer les ajustements que cela implique.â
Gérer l'option Préfixe MySQL
Aller plus loin avec les variables d'environnement
Il est possible de configurer des variables d'environnement directement depuis le Manager pour l'ensemble de votre site:
- Cliquez ici afin d'accĂ©der Ă la gestion des hĂ©bergements & sites sur votre Manager Infomaniak (â: aide).
- Cliquez sur le nom du produit concerné.
- Cliquez sur Gérer les paramÚtres avancés:

- Cliquez sur l'onglet PHP / Apache:

- Activez ou désactivez le bouton à bascule (toggle switch) Préfixe MySQL:

- Cliquez sur le bouton Enregistrer en bas de page.
- Effectuez les ajustements nĂ©cessaires dans les fichiers de configuration de vos applications Web et scripts PHPâŠ
Implications et ajustements Ă effectuer
AprÚs avoir désactivé l'option Préfixe MySQL pour un site, certains scripts PHP ou CMS risquent de ne plus fonctionner.
Afin de rétablir la connexion à vos bases de données, vous devrez impérativement mettre à jour les informations suivantes dans le(s) fichier(s) de configuration des scripts concernés:
- le nom de la base de données MySQL: il faudra y ajouter le préfixe de votre serveur
- avant:
dbname - aprĂšs:
wxyz_dbname
- avant:
- l'utilisateur de la base de données MySQL: il faudra y ajouter le préfixe de votre serveur
- avant:
dbuser - aprĂšs:
wxyz_dbuser
- avant:
Lien vers cette FAQ: https://faq.infomaniak.com/2168
Cette FAQ a été utile?
Ce guide donne des indications de base pour créer et utiliser un fichier .htaccess et .user.ini avec un Hébergement Web Infomaniak.
Préambule
- Un fichier
.htaccessse place à la racine d'un site et permet de configurer le serveur HTTP Apache.- En tant que fichier de configuration décentralisé, il offre une flexibilité significative pour ajuster le comportement du serveur selon les besoins spécifiques du site.
- Ce fichier permet de dĂ©finir des rĂšgles de réécriture d'URL, d'imposer des restrictions d'accĂšs, de gĂ©rer les erreurs HTTP, et mĂȘme de personnaliser des aspects de sĂ©curitĂ© tels que la dĂ©sactivation de l'affichage des fichiers/dossiers.
- Il facilite également la mise en place de redirections et d'alias, offrant ainsi un contrÎle précis sur l'organisation et l'accessibilité du site.
- Un fichier
.user.inipermet de personnaliser les directives PHP du dossier (et ses sous-dossiers) dans lequel il se trouve.- En agissant au niveau de l'interpréteur PHP, ce fichier permet de définir des configurations spécifiques pour un dossier donné et ses sous-répertoires.
- Grùce à sa syntaxe claire, il offre la possibilité de modifier divers paramÚtres tels que la limite de mémoire, le temps d'exécution des scripts, la gestion des erreurs, et d'autres directives liées à PHP.
- Cette approche granulaire permet aux développeurs de personnaliser finement le comportement de PHP en fonction des exigences spécifiques de chaque section du site.
CrĂ©er un fichierâŠ
⊠.htaccess
- Connectez-vous à votre hébergement via FTP ou SSH.
- A la racine du site concerné, créez un nouveau fichier et donnez-lui le nom suivant:
.htaccess. - Inscrivez les directives souhaités dans le fichier, prenez connaissance de cet autre guide par exemple.
⊠.user.ini
- Connectez-vous à votre hébergement via FTP ou SSH.
- A l'endroit désiré, créez un nouveau fichier et donnez-lui le nom suivant:
.user.ini. - Inscrivez les paramÚtres de configuration PHP souhaités dans le fichier.
La modification du fichier .user.ini nĂ©cessite plusieurs minutes pour ĂȘtre effective.
Lien vers cette FAQ: https://faq.infomaniak.com/2210
Cette FAQ a été utile?
Ce guide concerne IonCube Loader, un module PHP qui permet de décoder les scripts PHP qui ont été encodés avec IonCube Encoder.
Préambule
- L'encodage IonCube est utilisĂ© pour protĂ©ger le code source d'une application et empĂȘcher la modification ou la distribution illĂ©gale de celui-ci.
- En utilisant IonCube Loader, les propriétaires de site peuvent garantir la sécurité de leur code et leur contenu tout en permettant une distribution en toute sécurité et facile de leurs applications.
Utiliser ionCube Loader
Avec un hébergement mutualisé il n'est plus proposé. Vous pouvez le vérifier depuis le tableau de bord:
- 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 Extensions PHP.
- Cliquez sur ionCube Loader (si présent dans la liste) pour voir le détail:

- Ici, il faudra donc envisager un Serveur Cloud.
Lien vers cette FAQ: https://faq.infomaniak.com/285
Cette FAQ a été utile?
Ce guide détaille l'envoi d'e-mail depuis un site hébergé par Infomaniak en utilisant la fonction PHP mail() désactivée par défaut.
Préambule
- Infomaniak déconseille fortement l'utilisation de la fonction PHP mail() pour l'envoi d'e-mail depuis vos applicatifs:
- Les e-mails seront considĂ©rĂ©s comme ânon-authentifiĂ©sâ et seront donc soumis Ă des limites.
- Leur délivrabilité sera impactée, ce qui peut porter préjudice à votre site.
- Il est vivement recommandé d'utiliser une méthode d'envoi SMTP authentifiée pour vos envois d'e-mail depuis vos applicatifs ; Infomaniak propose à cet effet un service correspondant.
Spécifier l'adresse d'expédition
Pour que les messages partent correctement depuis votre CMS/application Web (et éviter une erreur type Could not instantiate mail function ou sender mismatch) il est nécessaire de spécifier une adresse valide dans les paramÚtres du site cÎté Infomaniak:
- 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:

- Depuis l'onglet Général, entrez une adresse mail existante dans le champ E-mail de l'expéditeur.
- Cliquez sur le bouton bleu Enregistrer:

Réactiver la fonction mail
Si vous souhaitez tout de mĂȘme utiliser la fonction mail de PHP, il vous sera nĂ©cessaire d'activer celle-ci sur chacun des sites de votre HĂ©bergement Web concernĂ©:
- 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:

- Activez la fonction mail :

- Cliquez sur le bouton Enregistrer en bas de page pour valider les modifications.
Exemples PHP mail()âŠ
⊠sur WordPress
Configurez l'envoi du formulaire de contact par défaut inclus avec Constructeur Divi:
- Connectez-vous au tableau d'administration WordPress.
- Rendez-vous dans l'éditeur Divi de la page contenant le formulaire de contact.
- Cliquez sur ParamĂštres â pour paramĂ©trer le formulaire de contact Divi:

- Sous EMAIL, entrez l'adresse mail qui recevra les envois du formulaire et sauvegardez:

- Par défaut lorsqu'un visiteur utilisera le formulaire pour vous contacter, vous recevrez un e-mail provenant de
mail@le-nom-de-votre-siteet si vous répondez, le destinataire sera automatiquement l'adresse mail indiquée par le visiteur lors du remplissage du formulaire de contact.
⊠sur Prestashop
Entrez dans les paramÚtres avancés de Prestashop:
- Spécifiez le mode SMTP.
- Entrez
localhostcomme serveur. - Entrez le port
25. - Ne spécifiez ni nom d'utilisateur ni mot de passe.

⊠sur Joomla
Configurer l'envoi des e-mails via PHPmail (non recommandé) dans Joomla:
- Connectez-vous au tableau d'administration de votre site Joomla.
- Allez sous Configuration puis Serveur.
- N'inscrivez RIEN dans le champ E-mail du site:

Cela empĂȘche malheureusement tout test d'envoi via le bouton Ă cet effet, mais cela fonctionnera si vous configurez un formulaire de contact sur votre site. Cliquez sur Enregistrer une fois la case laissĂ©e vide.
Adresse de réponse PHP mail()
Lors de l'envoi d'un mail avec la fonction mail() de PHP, le return-path sera inscrit de la forme root@h2web3.infomaniak.ch par exemple. En revanche le header Reply-To: présent dans le code de votre formulaire permet de spécifier une adresse de réponse valide.
Lien vers cette FAQ: https://faq.infomaniak.com/2150
Cette FAQ a été utile?
Ce guide explique comment se connecter à une base de données externe depuis un Serveur Cloud.
Préambule
- Il est possible de se connecter en SSL à MySQL (externe ou pas) - à spécifier lors de l'établissement de la connexion.
- Le port MySQL
3306est fermé par défaut - pour l'ouvrir, prenez connaissance de cet autre guide. - Infomaniak n'installe pas
PDO_DBLIB.
Installer PHP_PDO_ODBC
Prérequis
- Avoir le menu Extensions PHP sur le Manager Infomaniak dans la partie Serveur Cloud (si non il sera nécessaire de faire évoluer le Serveur Cloud).
Il est possible d'installer l'extension PHP_PDO_ODBC depuis le menu Extensions PHP de votre Serveur Cloud:
- 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 Extensions PHP dans le menu latéral gauche.
- Cliquez sur le bouton bleu Installer une extension.
- Choisissez l'extension
PHP_PDO_ODBC. - Validez l'installation.
Configurer le connecteur
La configuration du driver est déjà définie dans /etc/odbcinst.ini :
[FreeTDS]
Description = MS SQL database access with Free TDS Driver
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.soIl n'y a pas besoin de la re-dĂ©finir statiquement dans le .odbc.ini ou dans la home de l'utilisateur â~~/.odbc.iniâ ou aussi dynamiquement dans le code PHP.
Exemple avec le driver FreeTDS défini au préalable, il faut aussi que la version du driver soit spécifiée à la fin de la déclaration de l'objet pdo:
$con = new PDO('odbc:Driver=FreeTDS;Server=__SERVER IP__;Port=3306;DATABASE=__DATABASE NAME__;UID=__USERNAME__;PWD=__PASSWORD__;TDS_Version=8.0');Lien vers cette FAQ: https://faq.infomaniak.com/895
Cette FAQ a été utile?
Ce guide explique comment augmenter la valeur max_children sur Serveur Cloud afin d'augmenter le nombre de processus PHP simultanĂ©s qui peuvent ĂȘtre utilisĂ©s par votre site. Cela sera trĂšs utile pour rĂ©soudre des problĂšmes de chargement infini des pages de votre site.
Préambule
- Par défaut sur tout hébergement, la limite de
max_childrenest fixée à 20.- Bien qu'il soit possible d'augmenter cette valeur depuis le Manager Infomaniak, la limite de
max_childrenest automatiquement ajustée en fonction de la configuration de votre Serveur Cloud. - Pour augmenter cette limite sur hébergement mutualisé, migrez sur Serveur Cloud.
- Bien qu'il soit possible d'augmenter cette valeur depuis le Manager Infomaniak, la limite de
- Pour comprendre comment calculer au plus juste les
max_childrennécessaires, prenez connaissance de cet article à ce sujet.
Augmenter la valeur max_children
Prérequis
- S'assurer que vous disposez des ressources nécessaires sur le serveur Cloud.
- S'assurer que l'ensemble des ressources du serveur Cloud ne soient pas utilisées ; s'il s'avÚre que celles-ci sont totalement utilisées, l'augmentation de la valeur
max_childrenn'aura aucun effet (Modifier les ressources du Serveur Cloud). - ContrĂŽler le monitoring des ressources de votre serveur, dans le cas oĂč les ressources de votre serveur sont atteintes, il sera nĂ©cessaire de vĂ©rifier l'optimisation des processus et de votre site avant d'envisager d'augmenter la valeur
max_children. - Consulter les rapports d'erreur PHP depuis le dossier
/ik-logs(master process php logs - nom du fichier : php-fpm.log) pour vérifier si la limite "max_children" a été dépassée... exemple d'erreur:[05-Jul-2024 09:08:58] WARNING: [pool www.infomaniak.ch] server reached max_children setting (20), consider raising it
Pour accéder à la gestion des paramÚtres PHP / Apache du site dont il faut augmenter la valeur max_children sur Serveur Cloud, prenez connaissance de cet autre guide.
Vous pourrez notammentâŠ
- ⊠choisir une nouvelle valeur de
max_children:
N'oubliez pas d'enregistrer les changements en bas de page.
Limites en fonction du serveur
Limite des max_children en fonction des ressources du Serveur Cloud:
| Configuration Serveur Cloud | max_children |
|---|---|
| 2 CPU / 6 Go RAM | 20 |
| 4 CPU / 12 Go RAM | 40 |
| 6 CPU / 18 Go RAM | 60 |
| 8 CPU / 24 Go RAM | 80 |
| 12 CPU / 36 Go RAM | 120 |
| 16 CPU / 48 Go RAM | 160 |
| 24 CPU / 72 Go RAM | 240 |
| 32 CPU / 96 ou 128 Go RAM | 320 |
Lien vers cette FAQ: https://faq.infomaniak.com/1270
Cette FAQ a été utile?
Ce guide concerne Laravel, un framework Web open-source écrit en PHP respectant le principe modÚle-vue-contrÎleur (MVC). Prenez également connaissance de leur documentation.
Prérequis
- Posséder un Hébergement Web mutualisé ou Serveur Cloud avec MySQL/MariaDB le plus récent.
- Site sous PHP 8.2.
- Créer un accÚs SSH.
- Créer une base de données.
Installation de Laravel 11
Pour cela:
- Connectez-vous sur le serveur en SSH (besoin d'aide ?).
- Placez-vous dans le rĂ©pertoire du site en exĂ©cutant la commande âcd chemin-vers-le-siteâ (par exemple
cd sites/laravel.domain.xyz). - Créez un nouveau projet en exécutant la commande
composer create-project laravel/laravel example-app. - Modifiez le fichier
.envà la racine de l'hébergement pour mettre à jour les paramÚtres de connexion à la nouvelle base de données:- DB_CONNECTION=mysql
- DB_HOST=xxxx.myd.infomaniak.com
- DB_PORT=3306
- DB_DATABASE= le nom de la base de données MySQL (xxxx_newbdd)
- DB_USERNAME= l'utilisateur MySQL avec les droits sur cette base
- DB_PASSWORD= son mot de passe
- Placez-vous dans le répertoire du projet et publier via SSH:
cd example-appphp artisan migrate - Modifiez le répertoire cible pour le faire pointer dans le sous-répertoire «public» du projet, ici
/sites/laravel.domain.xyz/example-app/public.
Lien vers cette FAQ: https://faq.infomaniak.com/2119
Cette FAQ a été utile?
Ce guide technique détaille les limites de ressources sur les hébergements Web Infomaniak ; il est essentiel de distinguer le temps réel (horloge) du temps de calcul (processeur) pour comprendre l'origine des interruptions de scripts.
1. Temps de connexion MySQL (I/O)
Limite : 30 secondes réelles
Cette limite correspond au temps absolu écoulé "montre en main". Elle concerne la communication entre PHP et le serveur de base de données (MySQL/MariaDB).
DĂšs qu'une connexion est ouverte, le serveur de base de donnĂ©es alloue 30 secondes maximum pour recevoir la requĂȘte, l'exĂ©cuter et renvoyer les rĂ©sultats. Si ce dĂ©lai est dĂ©passĂ© (souvent Ă cause d'une requĂȘte SQL mal optimisĂ©e), le serveur MySQL coupe brutalement la connexion. Cela gĂ©nĂšre gĂ©nĂ©ralement l'erreur MySQL server has gone away.
2. Temps de traitement PHP (CPU)
Limite : 10 secondes CPU
Cette limite concerne exclusivement la puissance de calcul consommée par le serveur Web pour exécuter le code PHP.
Il est crucial de noter que le temps d'attente ne compte pas. Lorsque PHP attend une réponse de la base de données, il est en pause et ne consomme quasiment pas de temps CPU. Par conséquent, un script sera interrompu par le serveur Web uniquement s'il effectue des calculs intensifs (boucles complexes, cryptographie, traitement de fichiers) pendant plus de 10 secondes cumulées.
Interaction des deux limites
Pour garantir la stabilité de l'application, chaque opération doit respecter simultanément ces deux contraintes distinctes :
- L'application dispose de 30 secondes de temps total pour interagir avec la base de données (latence réseau + exécution SQL).
- L'application dispose de 10 secondes de temps de calcul pur pour traiter les données reçues.
Exemple de fonctionnement valide : un script qui attend 25 secondes une rĂ©ponse complexe de MySQL (I/O) puis traite le rĂ©sultat pendant 2 secondes (CPU) fonctionnera parfaitement, car il n'a dĂ©passĂ© aucun des deux quotas individuels, mĂȘme si le temps total est de 27 secondes.
Lien vers cette FAQ: https://faq.infomaniak.com/481
Cette FAQ a été utile?
Ce guide explique comment modifier la valeur de la directive PHP include_path.
Modifier le include_path
Comme tout autre paramÚtre PHP, include_path est défini dans le fichier .user.ini.
Voici un exemple de chemin Ă utiliser dans votre fichier .user.ini :
include_path = ".:/home/clients/123456789a12345b12fc345d/web/www.domain.xyz/include"- Le point (
.) au début permet de conserver le répertoire courant dans la recherche. - Le deux-points (
:) sert de séparateur entre les différents dossiers.
Prenez connaissance de cet autre guide au sujet du phpinfo afin de vérifier la prise en compte de votre nouvelle directive (la modification peut mettre quelques minutes à apparaßtre).
Bien que cette méthode soit toujours fonctionnelle, l'utilisation de l'autoloader de Composer est aujourd'hui la solution privilégiée pour la gestion des inclusions.
Lien vers cette FAQ: https://faq.infomaniak.com/1108
Cette FAQ a été utile?
Ce guide concerne Redis, un module PHP pour Serveur Cloud Infomaniak.
Préambule
Redisest utilisé avec PHP pour accélérer les performances en servant de cache pour des données temporaires et pour gérer les sessions utilisateur, améliorant ainsi l'efficacité des applications Web.Redispermet également de mettre en place des systÚmes de file d'attente et de stocker temporairement des données pour des tùches asynchrones ou des statistiques.
Installer Redis
Redis s'installe depuis Fast Installer, les applications disponibles en quelques clics sur Serveur Cloud:
- AprĂšs installation,
Redisest accessible via l'IP/portlocalhost:6379ou127.0.0.1:6379 - Le mot de passe pour
Redisdoit faire entre 15 et 99 caractĂšres (inclus).
Lien vers cette FAQ: https://faq.infomaniak.com/2113
Cette FAQ a été utile?
Ce guide détaille les bibliothÚques logicielles permettant de manipuler le format PDF et compatibles avec les différentes offres d'hébergement web Infomaniak.
Préambule
- Les extensions PHP
PDFpermettent entre autre de générer un PDF à partir de données dynamiques pour création de factures personnalisées par exemple.
PDF et Serveur Cloud
Sur Serveur Cloud, vous pouvez installer des apps comme PDFtk âŠ
- La classe PHP
FPDFest supportée. PDFlibde l'éditeur Apryse n'est plus proposé sur les Serveurs Cloud les plus récents car l'extensionPHP_PDFest devenue payante. Si vous vous la procurez il faudra l'installer sur VPS Cloud / VPS Lite ou Public Cloud .
Sur hébergement mutualisé, ImageMagick est actif et supporte les formats EPDF, PDF et PDFA.
Lien vers cette FAQ: https://faq.infomaniak.com/1925
Cette FAQ a été utile?
Ce guide explique comment désactiver ou paramétrer HSTS pour un site.
Préambule
- Lorsque HSTS est activé pour un site, le serveur indique au visiteur du site (si son navigateur comme Brave, Chrome, Edge, Firefox, Opera, Safari⊠est compatible) de remplacer tous les liens non sécurisés par des liens sécurisés.
- Exemple:
http://www.domain.xyz.com/one/page/est automatiquement remplacé parhttps://www.domain.xyz/one/page/. - AprÚs avoir activé un certificat SSL sur un site, le HSTS est configuré comme suit:
max-age=16000000.
DĂ©sactiver HSTSâŠ
⊠avec un CMS (WordPress, Joomla, etc.)
Inclure dans toutes les pages générées par le CMS la ligne suivante:
header( 'Strict-Transport-Security: max-age=0;' );Pour WordPress, il est par exemple possible d'ajouter cette directive dans le fichier functions.php de votre thĂšme:
add_action( 'send_headers', 'add_header_xua' );
function add_header_xua() {
header( 'Strict-Transport-Security: max-age=0;' );
}Plus de détails sur WordPress
⊠avec un site PHP
Inclure la ligne suivante dans toutes les pages php:
header( 'Strict-Transport-Security: max-age=0;' );Pour faire cela sans devoir modifier chaque page php d'un site, il est possible d'utiliser la directive auto_prepend_file dans le fichier .user.ini du site concerné:
auto_prepend_file=/home/clients/xxxx/web/hsts_disable.php... avec le fichier hsts_disable.php suivant:
header( 'Strict-Transport-Security: max-age=0;' );
⊠avec un site au contenu statique (non PHP)
Inclure ce header dans un fichier .htaccess:
# BEGIN DISABLE HSTS
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=0; includeSubDomains;"
</IfModule>
# END DISABLE HSTS
Personnaliser le HSTS
La valeur par dĂ©faut peut ĂȘtre modifiĂ©e dans vos fichiers php de votre site avec la directive suivante:
header( 'Strict-Transport-Security: max-age=X; includeSubdomains; preload' );(X étant le nombre de secondes souhaité).
Activer HSTS pour tous les sous domaines hébergés
includeSubDomains; est activé par défaut et comme son nom l'indique il va inclure les sous-domaines dans les "Strict Transport Security".
Lorsque le visiteur va un sous-domaine non sécurisé, le navigateur redirigera vers le HTTPS automatiquement et provoquera une erreur de sécurité.
Si ce comportement n'est pas dĂ©sirĂ©, il faut enlever cet en-tĂȘte.
Effacer le cache HSTS du navigateurâŠ
⊠sur Chrome
- Dans Chrome, tapez
chrome://net-internals/#hsts. - Entrez le nom de domaine dans le champ texte de la section "Delete domain security policies".
- Cliquez sur le bouton Delete.
- Entrez le nom de domaine dans le champ texte de la section "Query HSTS".
- Cliquez sur le bouton Query.
- La rĂ©ponse doit ĂȘtre "
Not found" (non trouvé).
⊠sur Safari
- Avec Safari, commencez par fermer le navigateur.
- Effacez le fichier
~/Library/Cookies/HSTS.plist. - Rouvrez Safari.
⊠sur Firefox
- Avec Firefox, fermez tous les onglets.
- Ouvrez le menu de Firefox et cliquer sur Historique / Afficher l'historique.
- Recherchez la page dont vous voulez supprimer les préférences HSTS.
- Effectuez un clic droit sur une des entrées lui correspondant.
- Choisissez Oublier ce site.
Lien vers cette FAQ: https://faq.infomaniak.com/2133
Cette FAQ a été utile?
Ce guide s'adresse aux développeurs et webmasters rencontrant des problÚmes d'affichage de caractÚres spéciaux (par exemple accents, caractÚres arabes, chinois, emojis, etc.), sur un site ou dans la base de données, hébergés par Infomaniak.
Préambule
- Causes fréquentes des caractÚres mal affichés qui apparaissent à la place de caractÚres spéciaux ou d'emojis comme
??:- Connexion PHP en
utf8au lieu deutf8mb4 - Table ou colonne MySQL en
latin1ouutf8au lieu deutf8mb4 - Fichier SQL encodé différemment du paramÚtre d'import
- Fichiers HTML/CSS/JS mal encodés
- Absence ou mauvaise déclaration du charset cÎté HTML, PHP ou HTTP
- Connexion PHP en
- Solutions habituelles:
- Utiliser
utf8mb4partout : base, connexions, tables, colonnes, fichiers, en-tĂȘtes - Valider l'encodage de tous les fichiers et dumps
- Tester l'affichage des emojis, accents et autres caractĂšres multilingues
- Utiliser
- Prenez également connaissance de cet autre guide pour forcer un autre encodage lors de la connexion à une base MySQL.
Utilisez un éditeur de texte qui supporte l'enregistrement en UTF-8 sans BOM (Visual Studio Code, Sublime Text, Notepad++...)
1. Utiliser UTF-8 ou UTF-8MB4 partout
L'encodage utf8 de MySQL ne supporte pas les caractÚres sur 4 octets, comme les emojis. Ceux-ci s'afficheront en ??. Il faut donc utiliser utf8mb4, qui est une véritable implémentation complÚte de UTF-8.
2. HTML â DĂ©claration correcte de l'encodage
Dans le <head> de vos pages HTML :
<meta charset="UTF-8">Assurez-vous aussi que les fichiers CSS/JS sont enregistrés en UTF-8 (sans BOM).
3. PHP â Forcer UTF-8 ou UTF-8MB4
a) En-tĂȘtes HTTP
header('Content-Type: text/html; charset=utf-8');b) Connexion MySQL (API MySQL)
$connection = mysql_connect($host, $user, $pass);
mysql_set_charset('utf8mb4', $connection);c) Connexion PDO
$dsn = "mysql:host=localhost;dbname=ma_base;charset=utf8mb4";
$pdo = new PDO($dsn, $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
4. Base de données MySQL
a) Configuration dans phpMyAdmin
- Base de donnĂ©es, tables, et colonnes doivent ĂȘtre en
utf8mb4_unicode_ciouutf8mb4_general_ci. - Dans l'onglet Opérations, choisissez
utf8mb4_unicode_cipour la collation.
b) Commandes SQL utiles
ALTER DATABASE ma_base CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE ma_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;c) AprĂšs la connexion PHP
mysqli_query($conn, "SET NAMES 'utf8mb4'");
mysqli_query($conn, "SET CHARACTER SET 'utf8mb4'");
5. Fichier .user.ini / .htaccess
Pour forcer l'encodage cÎté serveur (Apache) :
AddDefaultCharset utf-8
Header set Content-Type "text/html; charset=utf-8"
# Pour PHP
php_value default_charset UTF-8
php_value mbstring.internal_encoding UTF-8
6. Import / export de dumps SQL
Les erreurs comme Ă© devenant ? ou un emoji âș devenant ?? proviennent souvent d'un dĂ©salignement d'encodage.
Vérifiez l'encodage du fichier SQL avant import. Utilisez iconv si nécessaire :
iconv -f ISO-8859-1 -t UTF-8 dump.sql > dump_utf8.sqlDans phpMyAdmin, précisez l'encodage d'import (par exemple UTF-8, UTF-8MB4 ou latin1 selon le fichier).
Lien vers cette FAQ: https://faq.infomaniak.com/1124
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: https://faq.infomaniak.com/2233
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 ailleurs, chez un concurrent par exemple.
Prérequis
- Commander / PossĂ©der un hĂ©bergement Web Infomaniak (â: aide).
- Ajouter un site vierge sur l'hĂ©bergement Infomaniak (â: aide).
Guides spécifiques
Cliquez sur le lien correspondant aux données à migrer :
Guides pour tout autre hébergeur
Pour récupérer tout autre site, suivez la procédure ci-dessous.
1. Récupérer les données Web
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 et pour cela, il faut l'adresse du serveur chez l'hébergeur, le nom d'utilisateur et mot de passe FTP.
- Ouvrez un logiciel/client FTP comme Filezilla.
- Connectez-vous au serveur avec les informations FTP.
- Téléchargez les fichiers correspondant à votre site 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 de gestion, PHPmyAdmin en général:
- Connectez-vous au Control Panel de votre fournisseur actuel depuis un navigateur comme Brave, Chrome, Edge, Firefox, Opera, SafariâŠ.
- Accédez à PHPMyAdmin.
- Connectez-vous au serveur avec les informations MySQL.
- Cliquez sur Exporter pour paramétrer l'exportation de la base de données puis téléchargez vos données SQL sur votre disque dur.
2. Envoyer ces données Web sur Infomaniak
a. Fichiers HTML, PHP, etc. par FTP
Accédez au site chez Infomaniak et activez la partie FTP :
- 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 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.3) 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 activez la partie MySQL :
- Cliquez ici afin d'accĂ©der Ă la gestion des hĂ©bergements & sites sur votre Manager Infomaniak (â: aide).
- Cliquez sur le nom de l'hébergement concerné.
- Cliquez sur Bases de données dans le menu latéral gauche.
- Cliquez sur le 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.4).
- 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
Guides spécifiques pour adapter le fichier de configuration: WordPress et Joomla.
Si vous utilisez une autre application comme 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 (â: aide) 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
En savoir plus
Lien vers cette FAQ: https://faq.infomaniak.com/2643
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: https://faq.infomaniak.com/2813
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: https://faq.infomaniak.com/363
Cette FAQ a été utile?
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 (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: https://faq.infomaniak.com/322
Cette FAQ a été utile?
Ce guide explique comment utiliser l'en-tĂȘte HTTP X-Frame-Options afin de limiter l'affichage de vos pages dans des cadres (<frame> et <iframe>) et de contribuer Ă la protection contre les attaques de clickjacking (dĂ©tournement de clic).
La valeur ALLOW-FROM n'est plus prise en charge par les navigateurs modernes. Si vous souhaitez autoriser un ou plusieurs domaines spĂ©cifiques, utilisez plutĂŽt l'en-tĂȘte Content-Security-Policy (CSP) avec la directive frame-ancestors.
Valeurs de l'en-tĂȘte X-Frame-Options
L'en-tĂȘte HTTP X-Frame-Options indique au navigateur si une page peut ĂȘtre affichĂ©e dans une balise <frame> ou <iframe>.
DENY: interdit totalement l'affichage de la page dans un cadre, y compris depuis votre propre site.SAMEORIGIN: autorise l'affichage uniquement lorsque la page est intĂ©grĂ©e depuis le mĂȘme domaine.
Mettre en place l'en-tĂȘte
Pour appliquer cette protection Ă l'ensemble de votre site, ajoutez la directive suivante dans le fichier .htaccess :
Header set X-Frame-Options "SAMEORIGIN"Vous pouvez Ă©galement envoyer cet en-tĂȘte depuis un script PHP :
<?php
header('X-Frame-Options: SAMEORIGIN');
?>
Autoriser un domaine spécifique avec Content-Security-Policy
Pour autoriser un domaine externe Ă intĂ©grer votre contenu dans une iframe, utilisez l'en-tĂȘte Content-Security-Policy avec la directive frame-ancestors.
Exemple :
Header set Content-Security-Policy "frame-ancestors 'self' https://domain.xyz"Cette rÚgle autorise votre propre site ('self') ainsi que https://domain.xyz à intégrer vos pages dans une iframe.
Lien vers cette FAQ: https://faq.infomaniak.com/360
Cette FAQ a été utile?