Где php ini
Перейти к содержимому

Где php ini

  • автор:

База знаний

Как узнать где находится 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

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

Compolomus

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

irishmann

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

SagePtr

Еда — это святое

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

Ответ написан более года назад
Нравится 1 2 комментария
SSh @sorbon4499 Автор вопроса

Весь этот сырбор начался после того как я поверх установленного пхп из пакетов версии 7.4.30 скомпили такую же версию

SagePtr

SSh, тогда зависит от того, как именно и с какими параметрами вы компилировали. В любом случае, в phpinfo (php -i) эта информация должна фигурировать

Что такое php.ini

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

Визуально php.ini выглядит так:

Пример настройки PHP версии 7 на вывод ошибок через файл 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 можно на нашем сайте.

МИР Visa MasterCard СБП QIWI Wallet Безналичный платеж

Все способы

© 2009–2023 «HANDYHOST.RU» 8-800-505-68-01

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *