В моем рабочем каталоге у меня есть два файла: 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
но я бы хотел, чтобы он автоматически читался при запуске скрипта из заданной папки.
В документации говорится:
Эти файлы обрабатываются только CGI / FastCGI SAPI
а также
Если вы используете Apache, используйте файлы
.htaccess
для того же эффекта.
Поэтому, если вы запускаете PHP как модуль Apache, из командной строки или с помощью встроенного сервера, .user.ini
.user.ini не обрабатываются.
Чтобы узнать свой API-интерфейс сервера, просто сгенерируйте PHP-скрипт со следующим контентом и вызовите его в своем веб-браузере:
<? phpinfo();
Согласно http://php.net/manual/en/configuration.file.per-user.php
Проверьте user_ini.filename
в своем основном php.ini
чтобы убедиться, что он не пуст, и он действительно разобран. Если его значение пустое, то PHP вообще не сканирует.
Также см. Значение user_ini.cache_ttl
Пожалуйста, взгляните на
Руководство по php.net
Также проверьте этот вопрос. Загрузите файл конфигурации .user.ini PHP conf с помощью внутреннего сервера PHP 5.4?