In my working directory I have two files: index.php and .user.ini:
.user.ini:
display_errors=on
;
;filter.default = "full_special_chars"index.php:
<?php
//ini_set("display_errors", "on");
// Use `.user.ini` file:
//
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";
//
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
// 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.iniwhich does not contain my .user.ini-file.
Explicitly adding the .user.ini-file works:
php --php-ini .user.ini index.phpbut I'd like it to be automatically read when running the script from a given folder.
3 Answers
In the documentation it says:
These files are processed only by the CGI/FastCGI SAPI
and
If you are using Apache, use
.htaccessfiles for the same effect.
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:
<? phpinfo(); 5 According to
Check user_ini.filename in your main php.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
Also check this question outLoading a .user.ini PHP conf file using the PHP 5.4 internal server?
1instead of use .htaccess for php config , u can create .user.ini file and put setting (without any indent or space) . for example my .user.ini config is:
max_execution_time =600
upload_max_filesize=200M
post_max_size=200M
memory_limit=256M