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_limitdoit ê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_sizelégèrement supérieur àupload_max_filesizepour tenir compte des métadonnées.
Exemple :
upload_max_filesize = 64Mpost_max_size = 68Mou128M
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
- Connectez-vous à cPanel
- Dans la section Logiciels, cliquez sur MultiPHP INI Editor

Étape 2 : Sélectionner l'emplacement
- Restez sur l'onglet Mode Basique (Basic Mode)
- 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

- Répertoire personnel (
💡 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
- Cliquez sur le bouton Appliquer (Apply)
- 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
- Dans MultiPHP INI Editor, cliquez sur l'onglet Mode Éditeur (Editor Mode)
- 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
- Cliquez sur Enregistrer (Save)
- 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
- Via le Gestionnaire de fichiers cPanel, allez dans
public_html - Créez un nouveau fichier nommé
php.ini - 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.iniau lieu dephp.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
- Dans
public_html, créez.user.ini - 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.inipeuvent prendre 5 minutes à s'appliquer (cache PHP-FPM).
✅ Vérifier les Changements
Méthode 1 : Via WordPress
- Allez dans Outils → Santé du site → Informations
- Déroulez la section Serveur
- 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()
- Créez un fichier
info.phpdanspublic_html:
<?php
phpinfo();
?>
- Accédez à
https://votre-site.com/info.php - Recherchez les paramètres modifiés (Ctrl+F)
- Supprimez le fichier après vérification (sécurité)
Méthode 3 : Via WordPress (Média)
- Allez dans Médias → Ajouter
- 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
- Via FTP/Gestionnaire de fichiers :
- Renommez
.htaccessen.htaccess.bak - Ou supprimez les lignes
php_valueajoutées
- Renommez
- 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 :
- ✅
upload_max_filesizeest bien modifié - ✅
post_max_size≥upload_max_filesize - ✅
memory_limit≥post_max_size - ✅ Aucun plugin WordPress ne limite l'upload
- ✅ 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 :
- Contactez le support pour augmenter la limite
- Passez à une offre supérieure
- 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
