Investisseurs

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/php

en 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 Username
  • Editer les crons:

    crontab -e -u Username
  • Etre 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:

  1. Cliquez ici afin d'accĂ©der Ă  la gestion des hĂ©bergements & sites sur votre Manager Infomaniak (❓: aide).
  2. Cliquez sur le nom du produit concernĂ©.
  3. Cliquez sur Gérer les paramÚtres avancés:
  4. Cliquez sur l'onglet PHP / Apache:
  5. Activez ou désactivez le bouton à bascule (toggle switch) Préfixe MySQL:
  6. Cliquez sur le bouton Enregistrer en bas de page.
  7. 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
  • 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

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 .htaccess se 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.ini permet 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

  1. Connectez-vous à votre hébergement via FTP ou SSH.
  2. A la racine du site concerné, créez un nouveau fichier et donnez-lui le nom suivant: .htaccess.
  3. Inscrivez les directives souhaités dans le fichier, prenez connaissance de cet autre guide par exemple.

 


 .user.ini

  1. Connectez-vous à votre hébergement via FTP ou SSH.
  2. A l'endroit désiré, créez un nouveau fichier et donnez-lui le nom suivant: .user.ini.
  3. 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:

  1. Cliquez ici afin d'accĂ©der Ă  la gestion des hĂ©bergements & sites sur votre Manager Infomaniak (❓: aide).
  2. Cliquez sur le nom du site concernĂ©.
  3. Cliquez sur Gérer les paramÚtres avancés:
  4. Cliquez sur l'onglet Extensions PHP.
  5. Cliquez sur ionCube Loader (si présent dans la liste) pour voir le détail:

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:

  1. Cliquez ici afin d'accĂ©der Ă  la gestion des hĂ©bergements & sites sur votre Manager Infomaniak (❓: aide).
  2. Cliquez sur le nom du site concernĂ©.
  3. Cliquez sur Gérer les paramÚtres avancés:
  4. Depuis l'onglet Général, entrez une adresse mail existante dans le champ E-mail de l'expéditeur.
  5. 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Ă©:

  1. Cliquez ici afin d'accĂ©der Ă  la gestion des hĂ©bergements & sites sur votre Manager Infomaniak (❓: aide).
  2. Cliquez sur le nom du site concernĂ©.
  3. Cliquez sur Gérer les paramÚtres avancés:
  4. Cliquez sur l'onglet PHP / Apache:
  5. Activez la fonction mail :
  6. 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:

  1. Connectez-vous au tableau d'administration WordPress.
  2. Rendez-vous dans l'éditeur Divi de la page contenant le formulaire de contact.
  3. Cliquez sur ParamĂštres ‍ pour paramĂ©trer le formulaire de contact Divi:
  4. Sous EMAIL, entrez l'adresse mail qui recevra les envois du formulaire et sauvegardez:
  5. Par défaut lorsqu'un visiteur utilisera le formulaire pour vous contacter, vous recevrez un e-mail provenant de mail@le-nom-de-votre-site et 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:

  1. Spécifiez le mode SMTP.
  2. Entrez localhost comme serveur.
  3. Entrez le port 25.
  4. 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:

  1. Connectez-vous au tableau d'administration de votre site Joomla.
  2. Allez sous Configuration puis Serveur.
  3. 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 3306 est 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

Il est possible d'installer l'extension PHP_PDO_ODBC depuis le menu Extensions PHP de votre Serveur Cloud:

  1. Cliquez ici afin d'accĂ©der Ă  la gestion de votre produit sur le Manager Infomaniak (besoin d'aide ?).
  2. Cliquez directement sur le nom attribuĂ© au produit concernĂ©.
  3. Cliquez sur Extensions PHP dans le menu latéral gauche.
  4. Cliquez sur le bouton bleu Installer une extension.
  5. Choisissez l'extension PHP_PDO_ODBC.
  6. 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.so

Il 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_children est fixĂ©e Ă  20.
    • Bien qu'il soit possible d'augmenter cette valeur depuis le Manager Infomaniak, la limite de max_children est automatiquement ajustĂ©e en fonction de la configuration de votre Serveur Cloud.
    • Pour augmenter cette limite sur hĂ©bergement mutualisĂ©, migrez sur Serveur Cloud.
  • Pour comprendre comment calculer au plus juste les max_children nĂ©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_children n'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 Cloudmax_children
2 CPU / 6 Go RAM20
4 CPU / 12 Go RAM40
6 CPU / 18 Go RAM60
8 CPU / 24 Go RAM80
12 CPU / 36 Go RAM120
16 CPU / 48 Go RAM160
24 CPU / 72 Go RAM240
32 CPU / 96 ou 128 Go RAM320

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

 

Installation de Laravel 11

Pour cela:

  1. Connectez-vous sur le serveur en SSH (besoin d'aide ?).
  2. 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).
  3. Créez un nouveau projet en exécutant la commande composer create-project laravel/laravel example-app.
  4. 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
  5. Placez-vous dans le répertoire du projet et publier via SSH:
    cd example-app
    php artisan migrate
  6. 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

  • Redis est 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.
  • Redis permet Ă©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, Redis est accessible via l'IP/port localhost:6379 ou 127.0.0.1:6379
  • Le mot de passe pour Redis doit 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 PDF permettent 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 


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Ă© par https://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

  1. Dans Chrome, tapez chrome://net-internals/#hsts.
  2. Entrez le nom de domaine dans le champ texte de la section "Delete domain security policies".
  3. Cliquez sur le bouton Delete.
  4. Entrez le nom de domaine dans le champ texte de la section "Query HSTS".
  5. Cliquez sur le bouton Query.
  6. La rĂ©ponse doit ĂȘtre "Not found" (non trouvĂ©).


 sur Safari

  1. Avec Safari, commencez par fermer le navigateur.
  2. Effacez le fichier ~/Library/Cookies/HSTS.plist.
  3. Rouvrez Safari.


 sur Firefox

  1. Avec Firefox, fermez tous les onglets.
  2. Ouvrez le menu de Firefox et cliquer sur Historique / Afficher l'historique.
  3. Recherchez la page dont vous voulez supprimer les préférences HSTS.
  4. Effectuez un clic droit sur une des entrées lui correspondant.
  5. 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 utf8 au lieu de utf8mb4
    • Table ou colonne MySQL en latin1 ou utf8 au lieu de utf8mb4
    • 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
  • Solutions habituelles:
    • Utiliser utf8mb4 partout : 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
  • 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_ci ou utf8mb4_general_ci.
  • Dans l'onglet OpĂ©rations, choisissez utf8mb4_unicode_ci pour 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.sql

Dans 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 

 

Vérifier l'exécution de Memcached

Afin de vérifier le bon fonctionnement de Memcached:

  1. 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;
    }
  2. Téléchargez le fichier PHP sur votre hébergement.
  3. 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:

  1. Accédez à votre espace d'administration Prestashop.
  2. Rendez-vous dans l'onglet ParamÚtres avancés.
  3. Sélectionnez Performances.
  4. Choisissez Oui dans le menu déroulant sous Utiliser le cache dans la section Mise en cache.
  5. Sélectionnez CacheMemcached.
  6. Ajoutez un serveur en fournissant les informations requises telles que
    1. l'adresse IP: 127.0.0.1
    2. le port: 11211
    3. le poids: 1

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 :

  • Site hĂ©bergĂ© par l'hĂ©bergeur Swisscom.
  • Site construit avec la technologie WordPress.

 

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.

  1. Ouvrez un logiciel/client FTP comme Filezilla.
  2. Connectez-vous au serveur avec les informations FTP.
  3. 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:

  1. Connectez-vous au Control Panel de votre fournisseur actuel depuis un navigateur comme Brave, Chrome, Edge, Firefox, Opera, Safari
.
  2. Accédez à PHPMyAdmin.
  3. Connectez-vous au serveur avec les informations MySQL.
  4. 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 :

  1. Cliquez ici afin d'accĂ©der Ă  la gestion des hĂ©bergements & sites sur votre Manager Infomaniak (❓: aide).
  2. Cliquez sur le nom de l'hĂ©bergement concernĂ©.
  3. Cliquez sur FTP / SSH dans le menu latéral gauche.
  4. Cliquez sur le bouton Ajouter pour crĂ©er un nouveau compte FTP / SSH (❓: aide).
  5. Ouvrez un logiciel/client FTP comme Filezilla.
  6. Connectez-vous au serveur Infomaniak avec les informations FTP obtenues au point 4 ci-dessus.
  7. 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 :

  1. Cliquez ici afin d'accĂ©der Ă  la gestion des hĂ©bergements & sites sur votre Manager Infomaniak (❓: aide).
  2. Cliquez sur le nom de l'hĂ©bergement concernĂ©.
  3. Cliquez sur Bases de données dans le menu latéral gauche.
  4. Cliquez sur le bouton Ajouter.
  5. Entrez un nom de base de données aprÚs le préfixe déjà renseigné.
  6. Cliquez sur la case pour Créer un utilisateur associé.
  7. Entrez un nom d'utilisateur aprÚs le préfixe déjà renseigné.
  8. Entrez un mot de passe.
  9. Cliquez sur Valider.
  10. Cliquez sur le bouton bleu Importer.
  11. Cliquez sur Sélectionner un fichier.
  12. Sélectionnez les fichiers SQL sur le disque dur (obtenus au point 1.b.4).
  13. Choisissez comme destination la base de données créée au point 5 ci-dessus.
  14. 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:
    1. 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.
    2. Vous disposez d'un mois pour déplacer vos hébergements sur le nouveau Serveur Cloud mis à disposition (lire ci-dessous).
    3. 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:

  1. Cliquez ici afin d'accĂ©der Ă  la gestion de votre produit sur le Manager Infomaniak (besoin d'aide ?).
  2. Cliquez directement sur le nom attribuĂ© au produit concernĂ©.
  3. 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) :

  1. ImageMagick (CLI) : la suite principale utilisable en ligne de commande (via SSH) ; la commande moderne est magick, mais l'ancienne syntaxe convert reste disponible.
  2. 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.
  3. BibliothÚque GD : une alternative plus légÚre, souvent pré-installée, idéale pour des manipulations simples (miniatures, texte sur image).
  4. 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 :

CommandeUsage principal
magick (ou convert)Convertir, redimensionner et transformer des images.
identifyObtenir les métadonnées d'un fichier (format, taille, etc.).
mogrifyAppliquer une modification directement sur le fichier original.
compositeSuperposer 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?