Как включить файл php.ini в другой файл php.ini?
Я не думаю, что вы можете «включить» .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
Я установил 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
можно также определить путь в ~/.bashrc
export PHP_INI_SCAN_DIR=/usr/local/lib/php.d
Вы не можете. Читайте онлайн-страницы:
Файл конфигурации
РЕЗЮМЕ: Файл конфигурации (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.
Кажется, вы не можете включить один файл ini в другой, чтобы получить ссылку и загрузить его. Но вы можете установить php для загрузки нескольких файлов, указав, с какими папками следует смотреть.
При использовании настройки FastCGI (возможно, в FPM тоже, хотя я точно этого не знаю) вы можете экспортировать переменные среды из флэш-обертки.
Там вы можете сделать:
export PHP_INI_SCAN_DIR=/etc/php5/cgi/conf.d:/var/www/mydomain.net/etc
/var/www/mydomain.net/etc
– всего лишь пример, это папка, в которую вы помещаете свои дополнительные INI-файлы. Кажется, это может быть :
разделенный список.
Используйте phpinfo.php
(файл, называемый произвольно содержащим только <? phpinfo();
), откройте соответствующий URL-адрес в вашем браузере и проверьте список проанализированных каталогов и список файлов, загружаемых в его верхнюю область.
/etc/php5/cgi/conf.d
всегда должен быть включен (я думаю, потому что он был скомпилирован в исполняемый файл php) и, возможно, не нужен.
Вы можете попытаться имитировать его, используя функцию ini_set . Но, как указывает «справочная страница», не все опции ini могут быть изменены с помощью ini_set. Это определенно полезная функция.