In my working directory I have two files: index.php
and .user.ini
:
.user.ini
:
display_errors=on
; http://be2.php.net/manual/en/filter.configuration.php#ini.filter.default
;filter.default = "full_special_chars"
index.php
:
<?php
//ini_set("display_errors", "on");
// Use `.user.ini` file:
// http://php.net/manual/en/configuration.file.per-user.php
echo "Setting for 'user_ini.filename': " . ini_get("user_ini.filename");
echo "\n\n";
// It takes up to five minutes, until `.user.ini` is re-read:
echo "Setting for 'user_ini.cache_ttl': " . ini_get("user_ini.cache_ttl");
echo "\n\n";
// http://php.net/manual/en/function.ini-get.php
echo "Setting for 'display_errors': " . ini_get("display_errors");
echo "\n\n";
echo "Setting for 'filter.default': " . ini_get("filter.default");
echo "\n\n";
// php -S localhost:8000
// http://localhost:8000/
Using the above .user.ini
-file (in my working directory) I expect the "Setting for 'display_errors': "
having a value of on
or 1
, but it's empty.
How to correctly change settings using the .user.ini
-file?
running php --ini
results in
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File: /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed: /etc/php5/cli/conf.d/05-opcache.ini,
/etc/php5/cli/conf.d/10-pdo.ini,
/etc/php5/cli/conf.d/20-json.ini,
/etc/php5/cli/conf.d/20-readline.ini
which does not contain my .user.ini
-file.
Explicitly adding the .user.ini
-file works:
php --php-ini .user.ini index.php
but I'd like it to be automatically read when running the script from a given folder.
In the documentation it says:
and
So if you run PHP as an Apache module, from the commandline, or using the builtin-Server, the
.user.ini
-files are not processed.To find out your Server API, simply generate a PHP script with the following content and call it in your webbrowser:
According to http://php.net/manual/en/configuration.file.per-user.php
Check
user_ini.filename
in your mainphp.ini
to make sure it's not blank and it is indeed parsed. If its value is blank then PHP doesn't scan at all.Also see the value of
user_ini.cache_ttl
Please take a look at
php.net manual
Also check this question out Loading a .user.ini PHP conf file using the PHP 5.4 internal server?