настройки — Как правильно использовать `.user.ini`-файл в 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-file (в моем рабочем каталоге) я ожидаю "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

но я бы хотел, чтобы он автоматически читался при запуске скрипта из заданной папки.

11

Решение

в документация это говорит:

Эти файлы обрабатываются только CGI / FastCGI SAPI

а также

Если вы используете Apache, используйте .htaccess файлы для того же эффекта.

Так что, если вы запускаете PHP как модуль Apache, из командной строки или используете встроенный сервер, .user.ini-файлы не обрабатываются.

Чтобы узнать свой серверный API, просто сгенерируйте скрипт PHP со следующим содержимым и вызовите его в своем веб-браузере:

<? phpinfo();
11

Другие решения

В соответствии с http://php.net/manual/en/configuration.file.per-user.php

Проверьте user_ini.filename в твоем главном php.ini чтобы убедиться, что он не пустой и действительно проанализирован. Если его значение пустое, то PHP вообще не сканирует.

Также смотрите значение user_ini.cache_ttl

Пожалуйста, посмотрите на

Руководство по php.net

Также проверьте этот вопрос
Загрузка файла PHP .user.ini с использованием внутреннего сервера PHP 5.4?

2

По вопросам рекламы [email protected]