Подтвердить что ты не робот

Как включить файл php.ini в другой файл php.ini?

Как включить файл php.ini в другой файл php.ini?

4b9b3361

Ответ 1

Я не думаю, что вы можете "включить".ini файлы из основного файла php.ini.

Однако одним из возможных решений может быть использование этой опции в строке конфигурации при компиляции PHP:

--with-config-file-scan-dir=PATH                                                        
    Set the path where to scan for configuration files

Если эта опция используется во время компиляции, PHP будет искать каждый файл .ini в этом каталоге, в дополнение к "обычному" файлу php.ini.

Я предполагаю, что это то, что используется, например, в Ubuntu, который использует разные файлы .ini для каждого загруженного расширения вместо модификации php.ini.

Путь к файлу php.ini, определяемый с помощью этой опции, в строке конфигурации:

--with-config-file-path=PATH                                                            
    Set the path in which to look for php.ini [PREFIX/lib]

Тем не менее, это, вероятно, означает, что вам придется перекомпилировать PHP - что не так сложно, между прочим - самая сложная часть - получить необходимые зависимости.

И вот пост в внутреннем @mailling-list, который говорит то же самое, что и я: файлы конфигурации и PHP_CONFIG_FILE_SCAN_DIR

Ответ 2

Я установил memcached для php и не был уверен, как убедиться, что его ini был включен в мой php.ini, но, как выясняется, это автоматически. Вы можете проверить, что загружается, запустив php --ini.

php --ini
Configuration File (php.ini) Path: /opt/local/etc/php5
Loaded Configuration File:         (none)
Scan for additional .ini files in: /opt/local/var/db/php5
Additional .ini files parsed:      /opt/local/var/db/php5/memcached.ini

Ответ 3

можно также определить путь в ~/.bashrc

export PHP_INI_SCAN_DIR=/usr/local/lib/php.d

Ответ 4

Кажется, вы не можете включить один INI файл в другой, поэтому на него ссылаются и загружают. Но вы можете настроить php для загрузки нескольких файлов, указав, какие папки нужно просматривать.

При использовании установки FastCGI (возможно, и в FPM, хотя я точно не знаю) вы можете экспортировать переменные окружения из оболочки php.

Там вы можете сделать:

export PHP_INI_SCAN_DIR=/etc/php5/cgi/conf.d:/var/www/mydomain.net/etc

/var/www/mydomain.net/etc - это просто пример, это папка, в которую вы помещаете ваши дополнительные INI файлы. Кажется, что это может быть : список разделенным.

Используйте phpinfo.php (произвольно phpinfo.php файл, содержащий только <?php phpinfo();), откройте соответствующий URL в вашем браузере и проверьте список проанализированных каталогов и список файлов, которые загружаются в его верхней части.,

/etc/php5/cgi/conf.d всегда должен быть включен (я думаю, потому что он был скомпилирован в исполняемый файл php) и, возможно, на самом деле не нужен.

Ответ 5

Вы не можете. Читайте онлайн-страницы:

Файл конфигурации

РЕЗЮМЕ: файл конфигурации (php.ini) читается при запуске PHP. Для версий модуля сервера PHP, это происходит только один раз, когда сеть сервер запущен. Для CGI и CLI версии, это происходит на каждом вызов.

. Файлы user.ini

РЕЗЮМЕ: В дополнение к основному php.ini файл, PHP сканирует файлы INI в каждом каталоге, начиная с каталог запрашиваемого файла PHP, и прокладывает себе путь к корень документа (как установлено в $_SERVER [ 'DOCUMENT_ROOT']). Только INI настройки с режимами PHP_INI_PERDIR и PHP_INI_USER будет признан в. INI файлы в стиле .user.ini.

Ответ 6

Вы можете попытаться имитировать его, используя функцию ini_set. Но, как указывает "справочная страница", не все опции ini могут быть изменены с помощью ini_set. Это определенно полезная функция.

Ответ 7

На самом деле вы можете. Я только что проверил это на Debian 9 с PHP-FPM. Из некоторого файла .ini/.conf используйте этот синтаксис:

include=/path/to/special-php.ini

или даже

include=/path/to/special-dir-full-of-conf-files/*.conf 

как это используется в

/etc/php/7.0/fpm/php-fpm.conf
include=/etc/php/7.0/fpm/pool.d/*.conf

Кстати, это будет наиболее полезно, если вы разделите свои настройки по темам и если вы хотите установить набор для dev и еще один для производства. Тогда вы можете сделать это в стиле Debian/Apache, как

/etc/php/conf-available/
/etc/php/conf-enabled/

с символами от второго до другого и включения к этому.