Développement et bases de données

Personnaliser la configuration de PHP avec le fichier .htaccess

Vérifié le 3 min de lecture PHP .htaccess

La plupart des valeurs de PHP peuvent être modifiées depuis le fichier .htaccess situé dans public_html ou dans le dossier de votre application. S'il n'existe pas, créez un fichier vide portant ce nom.

Les valeurs les plus courantes (memory_limit, upload_max_filesize, post_max_size, max_execution_time, max_input_vars) peuvent aussi être modifiées sans toucher aux fichiers, depuis PHP dans l'espace client ou dans cPanel. Le .htaccess est utile lorsque vous voulez une valeur différente pour un seul site ou dossier, ou lorsque l'option n'y apparaît pas.

Comment faire

Ajoutez au début du .htaccess une ligne pour chaque valeur à modifier, avec cette syntaxe :

php_value directiva nuevo_valor

Où directiva est le paramètre PHP et nuevo_valor la valeur à appliquer. Par exemple, pour porter max_input_vars à 10000 (ce que demandent souvent PrestaShop ou WooCommerce avec de nombreuses variantes de produit) :

php_value max_input_vars 10000

Vous pouvez ajouter autant de lignes que nécessaire :

php_value memory_limit 512M
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value max_execution_time 300

Pour les options qui s'activent ou se désactivent (On/Off), utilisez php_flag :

php_flag display_errors Off

Le changement s'applique immédiatement, sans rien redémarrer. Il s'applique à ce dossier et à tous ses sous-dossiers.

Vérifier qu'il a été appliqué

Créez dans le même dossier un fichier info.php contenant :

<?php phpinfo();

Ouvrez-le dans le navigateur (https://tudominio.com/info.php), cherchez la directive et regardez la colonne Local Value. Supprimez le fichier dès la vérification faite : il affiche des données internes du serveur.

En cas d'erreur 500

Si, après avoir ajouté la ligne, le site affiche une erreur 500, retirez la ligne : il y a une faute de frappe ou ce site utilise une version de PHP qui n'accepte pas php_value dans .htaccess. Dans ce cas, créez dans le même dossier un fichier nommé .user.ini avec les valeurs au format php.ini :

max_input_vars = 10000
memory_limit = 512M

Les modifications dans .user.ini peuvent mettre jusqu'à 5 minutes à s'appliquer.

Certaines directives ne peuvent pas être modifiées depuis un dossier (par exemple disable_functions), et aucune valeur PHP n'augmente les ressources de votre offre : si vous fixez memory_limit au-dessus de la mémoire de l'offre, c'est la limite de l'offre qui s'applique.

Cela peut aussi vous aider

Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.