База знаний
Как узнать где находится php.ini используемый веб-сервером под Linux?
Обычно php.ini находится в /etc/php.ini, однако в зависимости от ОС, используемой панели управления, набора RPM пакетов, конфигурации apache может находиться и в других местах, например:
/usr/local/lib/php.ini
/usr/local/php/etc/php.ini
/usr/local/Zend/etc/php.ini
Узнать где находится ваш php.ini вы можете с помощью команд:
updatedb
locate php.ini
Если php.ini в системе есть несколько — посмотрите какой из них используется в выводе функции phpinfo(). Для этого на любом из сайтов, расположенных на вашем сервере создайте файл phpinfo.php с содержимым:
После чего откройте его в броузере и в строке
Loaded Configuration File будет указан полный путь к используемому вашим web-сервером php.ini.
Где php ini
Файл конфигурации ( php.ini ) считывается при запуске PHP. Для версий серверных модулей PHP это происходит только один раз при запуске веб-сервера. Для CGI и CLI версий это происходит при каждом вызове.
- По месту расположения модуля SAPI ( PHPIniDir директива Apache 2, -c параметр командной строки CGI и CLI)
- Переменная среды PHPRC .
- Местоположение файла php.ini может быть указано для различных версий PHP. Корневой ключ реестра зависит от разрядности операционной системы и установки PHP. Для 32-разрядного PHP на 32-разрядной Windows или 64-разрядного PHP и 64-разрядной Windows используйте [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] . Для 32-разрядного PHP на 64-разрядной Windows [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP] . Следующие ключи реестра исследуются при поиске для установок с совпадающей разрядностью: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z] , [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x] , где x, y и z подразумевают major, minor и release версии PHP. Для 32-разрядного PHP на 64-разрядной Windows ключи реестра будут другими: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z] , [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x] . Если также имеется значение IniFilePath в любом из этих ключей, то местонахождение php.ini будет определено первым ключом по порядку (только для Windows).
- [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] или [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP] , значение IniFilePath (только для Windows).
- Текущая директория (исключая CLI).
- Директория веб-сервера (для модулей SAPI) или директория PHP (иначе в Windows).
- В директории Windows ( C:\windows или C:\winnt ) (для Windows) или —with-config-file-path с выбором при компиляции.
Если файл php-SAPI.ini существует (где SAPI — это тип интерфейса, который используется, например, php-cli.ini или php-apache.ini ), то он используется вместо php.ini . Тип интерфейса между веб-сервером и PHP может быть определён с помощью функции php_sapi_name() .
Замечание:
Веб-сервер Apache изменяет текущую директорию на корневую при запуске, в результате чего PHP считывает php.ini из корневой файловой системы, если файл существует.
В php.ini можно использовать переменные окружения, как показано ниже.
Пример #1 Переменные окружения php.ini
; PHP_MEMORY_LIMIT взята из переменных окружения memory_limit = $
Директивы php.ini , обрабатываемые модулями, описаны на соответствующих страницах модулей. Список директив ядра имеется в приложении. Не все директивы PHP документированы в этом руководстве: для ознакомления с полным списком директив доступных в вашей версии PHP, прочитайте комментарии вашего php.ini . Кроме того, вы можете найти полезной » последнюю версию php.ini из Git.
Пример #2 Пример php.ini
; любой текст в строке после точки с запятой (;) без кавычек игнорируется [php] ; маркеры разделов (текст в квадратных скобках) также игнорируется ; Могут быть установлены следующие логические значения: ; true, on, yes ; или false, off, no, none register_globals = off track_errors = yes ; вы можете заключать строки в двойные кавычки include_path = ".:/usr/local/lib/php" ; обратный слеш обрабатывается так же, как любые другие символы include_path = ".;c:\php\lib"
Возможно обращаться к существующим ini-переменным из ini-файлов. Пример: open_basedir = $ «:/new/dir» .
Сканирование директорий
Существует возможность сконфигурировать PHP для сканирования директорий в поисках .ini-файлов после считывания php.ini . Это можно сделать на моменте компиляции, указав опцию —with-config-file-scan-dir. Сканирование директорий может быть переопределено во время исполнения установкой переменной среды PHP_INI_SCAN_DIR .
Можно сканировать несколько директорий, разделяя их разделителем, используемом в вашей операционной системе ( ; в Windows, NetWare и RISC OS; : на всех остальных платформах; в PHP есть константа PATH_SEPARATOR , которую можно использовать) Если PHP_INI_SCAN_DIR пуста, то PHP также будет сканировать директорию, заданную на этапе компиляции с помощью —with-config-file-scan-dir.
В каждой директории PHP сканирует все файлы заканчивающиеся на .ini в алфавитном порядке. Список всех загруженных файлов в том порядке, в котором они были загружены, доступен с помощью функции php_ini_scanned_files() , либо при запуске PHP с опцией —ini.
Допустим, что PHP сконфигурирован с --with-config-file-scan-dir=/etc/php.d, и разделитель путей . $ php PHP загрузит все файлы /etc/php.d/*.ini как конфигурационные. $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php PHP загрузит все файлы /usr/local/etc/php.d/*.ini как конфигурационные. $ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php PHP загрузит все файлы /etc/php.d/*.ini, а потом /usr/local/etc/php.d/*.ini как конфигурационные. $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php PHP загрузит все файлы /usr/local/etc/php.d/*.ini, а потом /etc/php.d/*.ini как конфигурационные.
Как узнать, где путь php.ini?
Как узнать, где путь php.ini? В стандартных папках его нет. В php -i указывает на /var/lib/php. Но там такого файла нет. Хочу включить модуль не не могу найти конфиги.
- Вопрос задан более года назад
- 1263 просмотра
3 комментария
Простой 3 комментария

Дмитрий @Compolomus Куратор тега PHP
И ни слова про ос, обычно все это добро лежит в /etc/php
SSh @sorbon4499 Автор вопроса
Дмитрий, ubuntu 20.04

Дмитрий @Compolomus Куратор тега PHP
SSh, а как вы запускаете пых? Как ставили?
Решения вопроса 1

Научись пользоваться дебаггером
Ответ написан более года назад
Комментировать
Нравится 5 Комментировать
Ответы на вопрос 2

Еда — это святое
В линукс PHP распространяется в виде исходного кода, мейнтейнеры дистрибутивов уже его компилируют и включают в репозитории. В каких директориях хранятся конфиги — зависит от мейнтейнера. В убунте, к примеру, это /etc/php/8.1/cli и /etc/php/8.1/fpm (для cli и fpm соответственно).
Если ставите PHP вместе с какой-нибудь панелью, то там есть вероятность, что сборки PHP свои, и пути к конфигам тоже свои.
Ответ написан более года назад
Нравится 1 2 комментария
SSh @sorbon4499 Автор вопроса
Весь этот сырбор начался после того как я поверх установленного пхп из пакетов версии 7.4.30 скомпили такую же версию

SSh, тогда зависит от того, как именно и с какими параметрами вы компилировали. В любом случае, в phpinfo (php -i) эта информация должна фигурировать
Что такое php.ini
Файл «php.ini» — это текстовый файл с настройками PHP. Php.ini содержит набор директив, каждая их которых пишется с новой строки и представляет собой пару ключ-значение, разделенные знаком равно. Строки начинающиеся с «;» не выполняются, это комментарии. Директивы определяют множество настроек интерпретатора PHP, а также отвечают за загрузку модулей.
Визуально php.ini выглядит так:

Рассмотрим несколько встроенных директив:
- Mbstring.func_overload — задействует механизм перегрузки функций
- Allow_url_include — позволяет использовать подключение файлов через URL
- Disable_functions — запрещает выполнения внутренних функций PHP
- Memory_limit — задает максимальный объем памяти в байтах
- Output_buffering — включает и отключает буферизацию вывода.
Посмотреть настройки php.ini можно через веб-интерфейс, выполнив php-файл с кодом:
В операционной системе CentOS находится по адресу: /etc/php.ini, в других ОС местоположение файла может быть другим.
Обычно провайдеры на виртуальном хостинге не предоставляют возможность редактировать файл «php.ini» целиком.
На всех тарифах нашего хостинга включена поддержка PHP. Ознакомиться с тарифами и купить хостинг c php можно на нашем сайте.

Все способы
© 2009–2023 «HANDYHOST.RU» 8-800-505-68-01

- Услуги
- Хостинг сайтов
- Домены
- Конструктор сайтов
- Linux VPS / Windows VPS
- Выделенные серверы
- SSL сертификаты
- Клиентам
- Контакты
- О компании
- Акции
- Оборудование
- Партнерская программа
- Поддержка
- Способы оплаты
- Регламент
- Документы
- Справка