Hébergement web16 décembre 2025 38 vues

Comment modifier les paramètres PHP (php.ini) sur cPanel

Comment modifier les paramètres PHP (php.ini) sur cPanel

Comment modifier les paramètres PHP (php.ini) sur cPanel

Temps estimé : 10 minutes
Difficulté : Intermédiaire ⭐⭐
Prérequis : Accès à cPanel


📋 Introduction

Le fichier php.ini est le fichier de configuration principal de PHP. Il contrôle des paramètres essentiels comme :

  • 📦 La taille maximale d'upload de fichiers
  • 🧠 La mémoire allouée aux scripts
  • ⏱️ Le temps d'exécution des scripts
  • 🔧 Les extensions PHP activées
  • 🐛 L'affichage des erreurs

Sur cPanel, vous pouvez modifier ces paramètres facilement grâce au MultiPHP INI Editor, sans avoir à éditer manuellement les fichiers de configuration.


🎯 Quand Modifier les Paramètres PHP ?

Situations courantes

❌ Problème rencontré ✅ Paramètre à modifier
"The uploaded file exceeds the upload_max_filesize" upload_max_filesize
"Allowed memory size exhausted" memory_limit
"Maximum execution time exceeded" max_execution_time
"Post Content-Length exceeds the limit" post_max_size
Formulaires complexes ne s'enregistrent pas max_input_vars
Timeout lors d'imports/exports max_input_time
Erreurs 500 sur sites WordPress/WooCommerce Plusieurs paramètres

📊 Les Paramètres PHP Essentiels

Tableau récapitulatif

Paramètre Description Défaut serveur Recommandé WordPress Recommandé WooCommerce
memory_limit Mémoire max par script 128M 256M 512M
upload_max_filesize Taille max d'un fichier uploadé 2M - 64M 64M 128M
post_max_size Taille max des données POST 8M 128M 256M
max_execution_time Durée max d'exécution (sec) 30 300 600
max_input_time Durée max lecture données (sec) 60 300 600
max_input_vars Nombre max de variables 1000 3000 5000

📖 Description Détaillée des Paramètres

🧠 memory_limit

Description : Quantité maximale de mémoire qu'un script PHP peut utiliser.

memory_limit = 256M
Type de site Valeur recommandée
Site vitrine simple 128M
Blog WordPress 256M
WordPress + plugins 256M - 512M
WooCommerce 512M
Application PHP lourde 512M - 1024M

Erreur associée :

Fatal error: Allowed memory size of 134217728 bytes exhausted

⚠️ Important : memory_limit doit être supérieur ou égal à post_max_size.


📤 upload_max_filesize

Description : Taille maximale d'un fichier individuel lors d'un upload.

upload_max_filesize = 64M
Usage Valeur recommandée
Images web optimisées 16M
Photos haute résolution 32M
Thèmes/plugins WordPress 64M
Vidéos courtes 128M
Fichiers volumineux 256M+

Erreur associée :

The uploaded file exceeds the upload_max_filesize directive in php.ini

💡 Conseil : Vérifiez aussi les limites côté WordPress : Médias → Ajouter.


📨 post_max_size

Description : Taille maximale totale des données envoyées via POST (inclut les fichiers uploadés).

post_max_size = 128M

Règle importante :

post_max_size ≥ upload_max_filesize

💡 Conseil : Définissez post_max_size légèrement supérieur à upload_max_filesize pour tenir compte des métadonnées.

Exemple :

  • upload_max_filesize = 64M
  • post_max_size = 68M ou 128M

Erreur associée :

Warning: POST Content-Length of X bytes exceeds the limit of Y bytes

⏱️ max_execution_time

Description : Durée maximale (en secondes) pendant laquelle un script peut s'exécuter.

max_execution_time = 300
Opération Valeur recommandée
Navigation normale 30 (défaut)
Import/export WordPress 300
Génération de rapports 300 - 600
Migration de site 600 - 900
Sauvegardes automatiques 600

Erreur associée :

Fatal error: Maximum execution time of 30 seconds exceeded

⚠️ Attention : Sur hébergement mutualisé, cette valeur peut être plafonnée (souvent à 90-120 secondes).


⏳ max_input_time

Description : Durée maximale (en secondes) pour parser les données d'entrée (POST, GET, uploads).

max_input_time = 300
Situation Valeur recommandée
Formulaires simples 60 (défaut)
Upload de gros fichiers 300
Import CSV/XML 300 - 600
Connexion lente 600

💡 -1 = pas de limite (déconseillé en production).


🔢 max_input_vars

Description : Nombre maximum de variables d'entrée acceptées (champs de formulaire).

max_input_vars = 3000
Type de contenu Valeur recommandée
Site simple 1000 (défaut)
WordPress avec menus complexes 3000
WooCommerce avec attributs 5000
Constructeurs de pages (Elementor, Divi) 5000 - 10000

Symptômes si trop bas :

  • Menus WordPress qui ne s'enregistrent pas complètement
  • Options de thème qui disparaissent
  • Variations WooCommerce non sauvegardées

🐛 display_errors

Description : Affiche les erreurs PHP directement sur la page.

display_errors = Off   # Production (recommandé)
display_errors = On    # Développement uniquement

⚠️ Sécurité : Toujours désactivé en production ! Les erreurs peuvent révéler des informations sensibles.


📝 error_reporting

Description : Niveau de détail des erreurs à signaler.

Valeur Description
E_ALL Toutes les erreurs
E_ALL & ~E_NOTICE Erreurs sauf notices
E_ALL & ~E_NOTICE & ~E_DEPRECATED Sans notices ni dépréciations
0 Aucune erreur

Production recommandé :

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

📁 error_log

Description : Chemin du fichier où les erreurs sont enregistrées.

error_log = /home/user/logs/php_errors.log

💡 Utile pour déboguer sans afficher les erreurs aux visiteurs.


🔒 allow_url_fopen

Description : Autorise l'ouverture de fichiers distants via URL.

allow_url_fopen = On   # Souvent nécessaire pour WordPress

Utilisé par :

  • Mises à jour WordPress
  • Récupération de flux RSS
  • API externes

🔐 allow_url_include

Description : Autorise l'inclusion de fichiers distants via include/require.

allow_url_include = Off   # Toujours désactivé (sécurité)

⚠️ Sécurité : Ne jamais activer ! Risque majeur d'injection de code.


⚙️ Méthode 1 : MultiPHP INI Editor (Mode Basique)

Le mode basique offre une interface simple avec des champs pré-configurés.

Étape 1 : Accéder à MultiPHP INI Editor

  1. Connectez-vous à cPanel
  2. Dans la section Logiciels, cliquez sur MultiPHP INI Editor

Image

Étape 2 : Sélectionner l'emplacement

  1. Restez sur l'onglet Mode Basique (Basic Mode)
  2. Dans le menu déroulant "Sélectionner un emplacement", choisissez :
    • Répertoire personnel (home) : Applique à tous les domaines
    • Document root d'un domaine : Applique uniquement à ce domaine
    • Image

💡 Conseil : Pour modifier un seul site, sélectionnez son document root (ex: public_html/monsite.com).


Étape 3 : Modifier les paramètres

Après avoir sélectionné l'emplacement, une liste de directives PHP apparaît :

Directive Champ à modifier
memory_limit Entrez 256M
upload_max_filesize Entrez 64M
post_max_size Entrez 128M
max_execution_time Entrez 300
max_input_time Entrez 300
max_input_vars Entrez 3000

Étape 4 : Appliquer les changements

  1. Cliquez sur le bouton Appliquer (Apply)
  2. Un message de confirmation apparaît :
✅ Les paramètres PHP ont été mis à jour avec succès.

💡 Les changements sont immédiats. Aucun redémarrage nécessaire.


🔧 Méthode 2 : MultiPHP INI Editor (Mode Éditeur)

Le mode éditeur permet d'ajouter des directives personnalisées non disponibles en mode basique.

Étape 1 : Passer en mode Éditeur

  1. Dans MultiPHP INI Editor, cliquez sur l'onglet Mode Éditeur (Editor Mode)
  2. Sélectionnez l'emplacement (domaine ou répertoire personnel)

Étape 2 : Ajouter des directives

Une zone de texte affiche le contenu actuel du fichier php.ini. Vous pouvez ajouter des lignes :

; === CONFIGURATION PERSONNALISÉE ===

; Mémoire et limites
memory_limit = 512M
upload_max_filesize = 128M
post_max_size = 256M

; Temps d'exécution
max_execution_time = 600
max_input_time = 600

; Variables d'entrée
max_input_vars = 5000

; Gestion des erreurs (production)
display_errors = Off
log_errors = On
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

; Sessions
session.gc_maxlifetime = 1440

; Timezone
date.timezone = Europe/Paris

Étape 3 : Sauvegarder

  1. Cliquez sur Enregistrer (Save)
  2. Vérifiez que les changements sont appliqués (voir section Vérification)

📝 Méthode 3 : Fichier .htaccess

Si MultiPHP INI Editor n'est pas disponible, vous pouvez modifier les paramètres via .htaccess.

Ajouter les directives

Ouvrez le fichier .htaccess à la racine de votre site et ajoutez :

# === CONFIGURATION PHP ===

# Mémoire
php_value memory_limit 256M

# Upload
php_value upload_max_filesize 64M
php_value post_max_size 128M

# Temps d'exécution
php_value max_execution_time 300
php_value max_input_time 300

# Variables
php_value max_input_vars 3000

# Erreurs (production)
php_flag display_errors Off
php_flag log_errors On

⚠️ Important : Cette méthode ne fonctionne qu'avec le handler Apache (mod_php ou suPHP). Elle ne fonctionne pas avec PHP-FPM ou CGI.


📄 Méthode 4 : Fichier php.ini personnalisé

Vous pouvez créer un fichier php.ini dans le dossier de votre site.

Créer le fichier

  1. Via le Gestionnaire de fichiers cPanel, allez dans public_html
  2. Créez un nouveau fichier nommé php.ini
  3. Ajoutez le contenu :
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 128M
max_execution_time = 300
max_input_time = 300
max_input_vars = 3000

💡 Sur certains serveurs, le fichier doit s'appeler .user.ini au lieu de php.ini.


📄 Méthode 5 : Fichier .user.ini (PHP-FPM)

Pour les serveurs utilisant PHP-FPM, créez un fichier .user.ini :

Créer le fichier

  1. Dans public_html, créez .user.ini
  2. Ajoutez :
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 128M
max_execution_time = 300
max_input_time = 300
max_input_vars = 3000

⚠️ Les changements via .user.ini peuvent prendre 5 minutes à s'appliquer (cache PHP-FPM).


✅ Vérifier les Changements

Méthode 1 : Via WordPress

  1. Allez dans Outils → Santé du site → Informations
  2. Déroulez la section Serveur
  3. Vérifiez les valeurs :
    • Limite de mémoire PHP
    • Taille maximale des téléversements
    • Temps d'exécution max
    • Variables d'entrée max

Méthode 2 : Via phpinfo()

  1. Créez un fichier info.php dans public_html :
<?php
phpinfo();
?>
  1. Accédez à https://votre-site.com/info.php
  2. Recherchez les paramètres modifiés (Ctrl+F)
  3. Supprimez le fichier après vérification (sécurité)

Méthode 3 : Via WordPress (Média)

  1. Allez dans Médias → Ajouter
  2. La taille maximum d'upload est affichée :
Taille maximale de téléversement : 64 Mo

🎯 Configurations Recommandées par Type de Site

Site vitrine / Blog simple

memory_limit = 128M
upload_max_filesize = 32M
post_max_size = 64M
max_execution_time = 120
max_input_time = 120
max_input_vars = 1000

WordPress standard

memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 128M
max_execution_time = 300
max_input_time = 300
max_input_vars = 3000

WordPress + Constructeur de pages (Elementor, Divi, WPBakery)

memory_limit = 512M
upload_max_filesize = 128M
post_max_size = 256M
max_execution_time = 600
max_input_time = 600
max_input_vars = 10000

WooCommerce / E-commerce

memory_limit = 512M
upload_max_filesize = 128M
post_max_size = 256M
max_execution_time = 600
max_input_time = 600
max_input_vars = 5000

PrestaShop

memory_limit = 512M
upload_max_filesize = 64M
post_max_size = 128M
max_execution_time = 600
max_input_time = 600
max_input_vars = 20000

Application PHP personnalisée / API

memory_limit = 256M
upload_max_filesize = 128M
post_max_size = 256M
max_execution_time = 300
max_input_time = 300
max_input_vars = 3000
allow_url_fopen = On

🔧 Dépannage

Les changements ne s'appliquent pas

❌ Cause possible ✅ Solution
Cache PHP actif Attendez 5 minutes ou videz le cache
Mauvais emplacement sélectionné Vérifiez que vous avez sélectionné le bon domaine
Fichier .htaccess prioritaire Supprimez les directives PHP du .htaccess
Handler PHP incompatible Utilisez MultiPHP INI Editor au lieu de .htaccess
Limite serveur Contactez l'hébergeur (certaines valeurs sont plafonnées)

Erreur 500 après modification

  1. Via FTP/Gestionnaire de fichiers :
    • Renommez .htaccess en .htaccess.bak
    • Ou supprimez les lignes php_value ajoutées
  2. Via MultiPHP INI Editor :
    • Revenez aux valeurs par défaut
    • Modifiez une directive à la fois pour identifier le problème

"php_value not allowed here"

Cette erreur signifie que votre serveur utilise PHP-FPM ou CGI :

.htaccess: php_value not allowed here

Solution : Utilisez MultiPHP INI Editor ou créez un fichier .user.ini.


La taille d'upload WordPress ne change pas

Vérifiez ces éléments dans l'ordre :

  1. upload_max_filesize est bien modifié
  2. post_max_sizeupload_max_filesize
  3. memory_limitpost_max_size
  4. ✅ Aucun plugin WordPress ne limite l'upload
  5. ✅ Le thème ne définit pas de limite

Ordre de priorité des fichiers :

1. php.ini serveur (priorité la plus haute)
2. MultiPHP INI Editor
3. .user.ini ou php.ini local
4. .htaccess
5. wp-config.php (WordPress)
6. functions.php (thème)

max_input_vars ignoré

Certains hébergeurs plafonnent cette valeur. Solutions :

  1. Contactez le support pour augmenter la limite
  2. Passez à une offre supérieure
  3. Optimisez vos menus WordPress (moins d'éléments)

📋 Liste Complète des Directives PHP Utiles

Mémoire et ressources

Directive Description Exemple
memory_limit Mémoire max par script 256M
max_execution_time Temps max d'exécution 300
max_input_time Temps max lecture données 300
max_input_vars Nombre max de variables 3000
max_input_nesting_level Profondeur max tableaux 64

Upload de fichiers

Directive Description Exemple
upload_max_filesize Taille max fichier 64M
post_max_size Taille max données POST 128M
max_file_uploads Nombre max fichiers simultanés 20
file_uploads Autoriser uploads On

Gestion des erreurs

Directive Description Exemple
display_errors Afficher erreurs Off
log_errors Logger les erreurs On
error_reporting Niveau d'erreurs E_ALL & ~E_NOTICE
error_log Fichier de log /home/user/logs/error.log

Sessions

Directive Description Exemple
session.gc_maxlifetime Durée de vie session (sec) 1440
session.cookie_lifetime Durée cookie session 0
session.save_path Chemin stockage sessions /tmp

Sécurité

Directive Description Exemple
allow_url_fopen Ouvrir URL comme fichiers On
allow_url_include Inclure fichiers distants Off
expose_php Révéler version PHP Off
disable_functions Fonctions désactivées exec,shell_exec

Divers

Directive Description Exemple
date.timezone Fuseau horaire Europe/Paris
default_charset Encodage par défaut UTF-8
short_open_tag Tags courts <? Off
output_buffering Buffer de sortie 4096

📝 Récapitulatif

MODIFIER LES PARAMÈTRES PHP :

MÉTHODE 1 - MultiPHP INI Editor (Recommandée) :
1. cPanel → Logiciels → MultiPHP INI Editor
2. Sélectionner le domaine
3. Modifier les valeurs
4. Cliquer sur Appliquer

MÉTHODE 2 - Mode Éditeur :
1. Onglet "Mode Éditeur"
2. Ajouter les directives manuellement
3. Cliquer sur Enregistrer

MÉTHODE 3 - .htaccess (Apache seulement) :
php_value memory_limit 256M
php_value upload_max_filesize 64M

MÉTHODE 4 - .user.ini (PHP-FPM) :
memory_limit = 256M
upload_max_filesize = 64M

VALEURS RECOMMANDÉES WORDPRESS :
├── memory_limit = 256M
├── upload_max_filesize = 64M
├── post_max_size = 128M
├── max_execution_time = 300
├── max_input_time = 300
└── max_input_vars = 3000

RÈGLE IMPORTANTE :
memory_limit ≥ post_max_size ≥ upload_max_filesize

VÉRIFICATION :
├── WordPress : Outils → Santé du site → Informations → Serveur
├── phpinfo() : Créer info.php avec <?php phpinfo(); ?>
└── Médias : Vérifier la taille max d'upload