Base de connaissances
1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Jelastic Cloud Infomaniak est l'une des solutions PaaS les plus complètes et flexibles du marché.
Préambule
Node.js= nom officiel du langage/environnement.NodeJS= nom "technique" ou simplifié dans certains contextes (souvent pour des raisons pratiques, pas de vraie différence technique).
Langages supportés
Vous pourrez déployer des applications Java, PHP, Ruby, Node.js, Python et Go sans devoir adapter votre code en utilisant Docker, Kubernetes, GIT, SVN ou des extensions intégrées comme Maven, Ant, Eclipse, NetBeans ou encore IntelliJ IDEA.
Bases de données SQL et NoSQL supportées
MariaDB, MongoDB, MySQL, Postgre, Redis, Neo4j, Cassandra, OrientDB, PerconaDB, CouchDB, Couchbase.
Serveurs d'application supportés
Tomcat, TomEE, Jetty, GlassFish, Payara, Apache PHP, Apache Ruby, Apache Python, NGINX PHP, NGINX Ruby, NodeJS, JBoss, SmartFoxServer, SpringBoot, WildFly, Golang.
Load balancers supportés
NGINX, Apache Balancer, HAProxy, Varnish.
Lien vers cette FAQ:
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".
- ⚠ Si 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 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:

- 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:
Cette FAQ a été utile?
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:
Cette FAQ a été utile?
Ce guide explique comment accéder à la configuration d'un site Web Infomaniak afin d'afficher des informations techniques comme la version de PHP, d'Apache ou les extensions et modules PHP activés.
Visualiser les infos techniques du site
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:

- Prenez connaissance des informations du site Web sous les onglets Général, PHP / Apache et Extensions PHP.
- Cliquez sur Bases de données dans le menu latéral gauche afin d'obtenir la version de MySQL de l'hébergement Web:

Lien vers cette FAQ:
Cette FAQ a été utile?
Ce guide explique comment modifier les variables de l'extension PHP-CLI qui est disponible par défaut sur Serveur Cloud Infomaniak.
Modifier les variables PHP_CLI
Pour accéder aux extensions PHP du Serveur Cloud :
- Cliquez ici afin d'accéder à la gestion de votre Serveur Cloud sur le Manager Infomaniak (besoin d'aide ?).
- Cliquez directement sur le nom attribué au Serveur Cloud concerné.
- Cliquez sur Extensions PHP dans le menu latéral gauche.
- Cliquez sur le menu d'action ⋮ à droite de PHP-CLI dans le tableau qui s'affiche.
- Cliquez sur Configurer:

- Modifiez les variables suivantes :
allow_url_fopen,allow_url_include,memory_limit,max_execution_time,short_open_tag,allow_local_infile - Cliquez sur le bouton bleu Enregistrer.
Lien vers cette FAQ:
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 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 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:
Cette FAQ a été utile?
Ce guide explique comment activer ou désactiver la fonction PHP set_time_limit d'un Hébergement Web.
Préambule
set_time_limitest une fonction PHP fixe le délai d'expiration d'un script, en secondes ; si cette limite est atteinte, le script s'interrompt et renvoie une erreur fatale.set_time_limitn'est pas utilisable pour définir des valeurs allant au-delà de la limite du temps d'exécution des scripts (max_execution_time) définie dans le Manager.
Activer ou désactiver la fonction PHP set_time_limit
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:

- Cliquez sur le bouton à bascule (toggle switch) On/Off comme désiré:

- Cliquez sur le bouton Enregistrer en bas de page pour valider les modifications.
Lien vers cette FAQ:
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:
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.), que ce soit sur un site Web Infomaniak ou dans sa base de données.
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-86. 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:
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:
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:
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 Web 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 Web 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:
Cette FAQ a été utile?
Ce guide technique détaille les limites de ressources sur les hébergements Web Infomaniak ; il est essentiel de distinguer le temps réel (horloge) du temps de calcul (processeur) pour comprendre l'origine des interruptions de scripts.
1. Temps de connexion MySQL (I/O)
Limite : 30 secondes réelles
Cette limite correspond au temps absolu écoulé "montre en main". Elle concerne la communication entre PHP et le serveur de base de données (MySQL/MariaDB).
Dès qu'une connexion est ouverte, le serveur de base de données alloue 30 secondes maximum pour recevoir la requête, l'exécuter et renvoyer les résultats. Si ce délai est dépassé (souvent à cause d'une requête SQL mal optimisée), le serveur MySQL coupe brutalement la connexion. Cela génère généralement l'erreur MySQL server has gone away.
2. Temps de traitement PHP (CPU)
Limite : 10 secondes CPU
Cette limite concerne exclusivement la puissance de calcul consommée par le serveur Web pour exécuter le code PHP.
Il est crucial de noter que le temps d'attente ne compte pas. Lorsque PHP attend une réponse de la base de données, il est en pause et ne consomme quasiment pas de temps CPU. Par conséquent, un script sera interrompu par le serveur Web uniquement s'il effectue des calculs intensifs (boucles complexes, cryptographie, traitement de fichiers) pendant plus de 10 secondes cumulées.
Interaction des deux limites
Pour garantir la stabilité de l'application, chaque opération doit respecter simultanément ces deux contraintes distinctes :
- L'application dispose de 30 secondes de temps total pour interagir avec la base de données (latence réseau + exécution SQL).
- L'application dispose de 10 secondes de temps de calcul pur pour traiter les données reçues.
Exemple de fonctionnement valide : un script qui attend 25 secondes une réponse complexe de MySQL (I/O) puis traite le résultat pendant 2 secondes (CPU) fonctionnera parfaitement, car il n'a dépassé aucun des deux quotas individuels, même si le temps total est de 27 secondes.
Lien vers cette FAQ:
Cette FAQ a été utile?
Ce guide explique comment modifier une offre d'Hébergement Web existante afin de par exemple pouvoir y héberger des sites Web supplémentaires si le quota de sites maximum est atteint, ou obtenir une solution d'hébergement plus récente pour bénéficier des dernières versions de PHP & MySQL.
Modifier l'offre d'hébergement Web afin de…
… commander des sites, de l'espace disque ou des IP supplémentaires
Pour accéder au configurateur de l'hébergement Web:
- Cliquez ici afin d'accéder à la gestion de votre hébergement sur le Manager Infomaniak (besoin d'aide ?).
- Cliquez sur le menu d'action ⋮ situé à droite de l'hébergement concerné.
- 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, vous pouvez soit…
- … prendre connaissance de cet autre guide en suivant la procédure qui y est indiquée jusqu'au bout:

- … prendre connaissance de cet autre guide en suivant la procédure qui y est indiquée jusqu'au point 4 puis cliquez sur le bouton pour mettre à jour:

Si aucun bandeau d'information n'est affiché, c'est que vous bénéficiez déjà d'une offre d'hébergement récente.
Lien vers cette FAQ:
Cette FAQ a été utile?
Ce guide détaille l'envoi d'e-mail depuis un site Web 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 Web.
- 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 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:

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

- 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 l'icône 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:
Cette FAQ a été utile?
Ce guide explique comment désactiver ou paramétrer HSTS pour un site Web.
Préambule
- Lorsque HSTS est activé pour un site Web, le serveur indique au visiteur du site (si son navigateur Web 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 Web, 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 Web 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:
Cette FAQ a été utile?
Ce guide concerne la configuration et la gestion de ModSecurity sur les serveurs Infomaniak. En comprenant ses limitations, restrictions et en gérant efficacement les erreurs, vous pouvez optimiser la sécurité de votre site tout en maintenant sa fonctionnalité.
Configuration par défaut
ModSecurity (mod_secure) est disponible et activé par défaut sur les serveurs Infomaniak. Cela signifie que toutes les requêtes HTTP seront soumises aux règles de sécurité définies par ModSecurity.
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.
Gestion des erreurs
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 votre navigateur Web. Cette erreur peut parfois être causée par des paramètres de langue mal configurés dans le navigateur.
L'extension PHP uploadprogress n’est pas disponible sur les serveurs Infomaniak, car PHP est utilisé dans sa version FPM.
Lien vers cette FAQ:
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:
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:
Cette FAQ a été utile?
Ce guide détaille le header "X-Frame-Options", utilisé pour protéger votre site contre les attaques de clickjacking (détournement de clic).
La valeur ALLOW-FROM est désormais obsolète. Pour autoriser un domaine spécifique, il est recommandé d'utiliser le header Content-Security-Policy (CSP) avec la directive frame-ancestors.
Valeurs pour le header X-Frame-Options
Ce header indique au navigateur s'il doit autoriser ou non l'affichage de votre page dans une balise <frame> ou <iframe>.
- "DENY" : Interdiction totale. Le site ne peut être chargé dans aucun cadre, même provenant de votre propre site.
- "SAMEORIGIN" : Autorise l'affichage en iframe uniquement si le site parent a le même domaine que le contenu.
Implémenter l'en-tête
Via le fichier .htaccess (recommandé pour tout le site) :
Header set X-Frame-Options "SAMEORIGIN"Ou via PHP (pour une page spécifique) :
<?php
header('X-Frame-Options: SAMEORIGIN');
?>L'alternative moderne : Content-Security-Policy (CSP)
Si vous devez autoriser un site externe spécifique (ex: domain.xyz) à intégrer votre contenu, n'utilisez plus X-Frame-Options mais le header suivant dans votre .htaccess :
Header set Content-Security-Policy "frame-ancestors 'self' https://domain.xyz"Cette règle autorise votre propre site ('self') ainsi que domain.xyz à vous afficher dans une iframe.
Lien vers cette FAQ:
Cette FAQ a été utile?