PHPKonf Istanbul PHP Conference 2019 - Call for Papers

Fichiers .user.ini

Depuis PHP 5.3.0, PHP inclut la prise en charge des fichiers INI de configuration par répertoire. Ces fichiers sont analysés uniquement par le SAPI CGI/FastCGI. Cette fonctionnalité rend obsolète l'extension PECL htscanner. Si vous exécutez PHP en tant que module Apache, l'utilisation des fichiers .htaccess produit le même effet.

En plus du fichier php.ini principal, PHP analyse les fichiers INI contenus dans chaque dossier, en commençant par le dossier depuis lequel le fichier PHP courant est appelé, et parcourt les dossiers jusqu'au dossier racine courant (tel que défini par la variable $_SERVER['DOCUMENT_ROOT']). Dans le cas où le fichier PHP est hors de la racine web, seul son dossier est scanné.

Seules les configurations INI avec les modes PHP_INI_PERDIR et PHP_INI_USER seront reconnues dans les fichiers INI .user.ini-style.

Deux nouvelles directives INI, user_ini.filename et user_ini.cache_ttl contrôlent l'utilisation des fichiers INI définis par l'utilisateur.

user_ini.filename définit le nom du fichier cherché par PHP dans chaque dossier ; si cette directive est définie à une chaîne vide, PHP n'analysera rien du tout. Par défaut, vaut .user.ini.

user_ini.cache_ttl contrôle la durée entre 2 re-lectures des fichiers INI définis par l'utilisateur. Par défaut, vaut 300 secondes (5 minutes).

add a note add a note

User Contributed Notes 8 notes

Anteaus at thenox dot com
4 years ago
"If you are using Apache, use .htaccess files for the same effect."

To clarify, this applies only to Apache module mode. If you put php directives in .htaccess on an Apache CGI/FastCGI server, this will bomb the server out with a 500 error. Thus, you unfortunately cannot create a config which caters for both types of hosting, at least not in any straightforward way.
philsward at gmail dot com
5 years ago
If you have no idea what "PHP_INI_PERDIR" or "PHP_INI_USER" are or how they relate to setting a .user.ini file, take a look at the ini.list page:

Basically, anything in the "Changeable" column labeled as PHP_INI_SYSTEM can't be set in the .user.ini file (so quit trying).  It can ONLY be set at the main php.ini level.
7 years ago
This article should be made clearer.
".htaccess-style INI files" meant to me that the ini settings had to follow the syntax used in .htaccess, but this is not the case!

You have to use
and not
php_flag register_globals on

Also, the changes can take a while to propagate to all processes if you have a long process time out.
Restarting php-fpm can give you an answer quicker :)
info at
3 months ago
Be aware that PECL htscanner doesn't work (yet) on PHP7.0.

'pecl install htscanner' throws an "zend_hash_update’ undeclared'" error.
5 months ago
> Thus, you unfortunately cannot create a config which caters for both types of hosting, at least not in any straightforward way.

That's actually not true, as you can easily wrap all PHP things in conditional block in .htaccess using <IfModule>, i.e.

    <IfModule mod_php7.c>
       php_value ....
1 year ago
Just for clarification: The file name is indeed ".user.ini" (with a trailing dot), not "user.ini". This is not a misspelling.

But "php.ini" is without a trailing dot.
amillionlobsters at gmail dot com
1 year ago
Note that, while the documentation's claim that "only settings with the modes PHP_INI_PERDIR and PHP_INI_USER will be recognised" is technically correct, it's ambiguous: settings with the modes PHP_INI_ALL will be recognised, because PHP_INI_ALL = PHP_INI_PERDIR | PHP_INI_USER | PHP_INI_SYSTEM.
3 years ago
One of the most used is to limit the uploading size and memory limit:

upload_max_filesize = 1000M
To Top