如何在 PHP 中正确使用 `.user.ini`-file?
How to correctly use `.user.ini`-file in PHP?
在我的工作目录中有两个文件:index.php
和 .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/
使用上面的 .user.ini
-文件(在我的工作目录中)我希望 "Setting for 'display_errors': "
的值为 on
或 1
,但它是空的。
如何使用 .user.ini
文件正确更改设置?
运行 php --ini
结果
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
其中不包含我的 .user.ini
-文件。
显式添加 .user.ini
文件有效:
php --php-ini .user.ini index.php
但我希望当 运行 来自给定文件夹的脚本时自动读取它。
根据http://php.net/manual/en/configuration.file.per-user.php
检查您的主 php.ini
中的 user_ini.filename
以确保它不是空白并且确实已被解析。如果它的值为空,那么 PHP 根本不会扫描。
另请参阅 user_ini.cache_ttl
的值
请看
也看看这个问题
Loading a .user.ini PHP conf file using the PHP 5.4 internal server?
在 documentation 中说:
These files are processed only by the CGI/FastCGI SAPI
和
If you are using Apache, use .htaccess
files for the same effect.
因此,如果您 运行 PHP 作为 Apache 模块,从命令行或使用内置服务器,则 .user.ini
文件不会被处理。
要找到您的服务器 API,只需生成一个包含以下内容的 PHP 脚本并在您的网络浏览器中调用它:
<? phpinfo();
您可以创建 .user.ini 文件并放置设置(没有任何缩进或 space) 。例如我的 .user.ini 配置是:
max_execution_time =600
upload_max_filesize=200M
post_max_size=200M
memory_limit=256M
在我的工作目录中有两个文件:index.php
和 .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/
使用上面的 .user.ini
-文件(在我的工作目录中)我希望 "Setting for 'display_errors': "
的值为 on
或 1
,但它是空的。
如何使用 .user.ini
文件正确更改设置?
运行 php --ini
结果
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
其中不包含我的 .user.ini
-文件。
显式添加 .user.ini
文件有效:
php --php-ini .user.ini index.php
但我希望当 运行 来自给定文件夹的脚本时自动读取它。
根据http://php.net/manual/en/configuration.file.per-user.php
检查您的主 php.ini
中的 user_ini.filename
以确保它不是空白并且确实已被解析。如果它的值为空,那么 PHP 根本不会扫描。
另请参阅 user_ini.cache_ttl
请看
也看看这个问题 Loading a .user.ini PHP conf file using the PHP 5.4 internal server?
在 documentation 中说:
These files are processed only by the CGI/FastCGI SAPI
和
If you are using Apache, use
.htaccess
files for the same effect.
因此,如果您 运行 PHP 作为 Apache 模块,从命令行或使用内置服务器,则 .user.ini
文件不会被处理。
要找到您的服务器 API,只需生成一个包含以下内容的 PHP 脚本并在您的网络浏览器中调用它:
<? phpinfo();
您可以创建 .user.ini 文件并放置设置(没有任何缩进或 space) 。例如我的 .user.ini 配置是:
max_execution_time =600
upload_max_filesize=200M
post_max_size=200M
memory_limit=256M