Ошибка модуля INI-файла на терминале

Обновлено: 03.07.2024

Файл конфигурации ( php.ini ) считывается при запуске PHP. Для версий серверного модуля PHP это происходит только один раз при запуске веб-сервера. Для версий CGI и CLI это происходит при каждом вызове.

  • Специальное расположение модуля SAPI (директива PHPIniDir в Apache 2, параметр командной строки -c в CGI и CLI)
  • Переменная среды PHPRC.
  • Расположение файла php.ini можно указать для разных версий PHP. Корень ключей реестра зависит от 32- или 64-битности установленной ОС и PHP. Для 32-битного PHP в 32-битной ОС или 64-битного PHP в 64-битной ОС используйте [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] для 32-битной версии PHP в 64-битной ОС используйте [HKEY_LOCAL_MACHINE\SOFTWARE \WOW6432Node\PHP] ]. Для установки той же разрядности проверяются следующие ключи реестра по порядку: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\xyz], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\xy] и [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x] , где x, y и z означают основную, дополнительную и выпускную версии PHP.Для 32-разрядных версий PHP в 64-разрядной ОС проверяются следующие ключи реестра по порядку: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\xyz], [ HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\xy] и [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x] , где x, y и z означают основную, дополнительную и релизную версии PHP. ключи, первый найденный будет использоваться в качестве местоположения 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 — это используемый SAPI, например, php-cli.ini или php-apache.ini ), он используется вместо php.ini . Имя SAPI можно определить с помощью php_sapi_name() .

Примечание:

Веб-сервер Apache изменяет каталог на корневой при запуске, в результате чего PHP пытается прочитать php.ini из корневой файловой системы, если она существует.

Переменные среды можно использовать в php.ini, как показано ниже.

К существующим переменным .ini можно обращаться из файлов .ini. Пример: open_basedir = $ ":/new/dir" .

Сканировать каталоги

Возможно настроить PHP для сканирования файлов .ini в каталоге после чтения php.ini . Это можно сделать во время компиляции, установив параметр --with-config-file-scan-dir. Затем каталог сканирования можно переопределить во время выполнения, установив переменную среды PHP_INI_SCAN_DIR.

Можно сканировать несколько каталогов, разделив их разделителем пути для конкретной платформы ( ; в ОС Windows, NetWare и RISC; : на всех других платформах; значение, используемое PHP, доступно как константа PATH_SEPARATOR). Если в PHP_INI_SCAN_DIR указан пустой каталог, PHP также будет сканировать каталог, заданный во время компиляции с помощью --with-config-file-scan-dir.

В каждом каталоге PHP будет сканировать все файлы, оканчивающиеся на .ini, в алфавитном порядке. Список загруженных файлов и их порядок можно получить, вызвав php_ini_scanned_files() или запустив PHP с параметром --ini.

module — это пользовательский интерфейс к пакету модулей. Пакет модулей обеспечивает динамическую модификацию среды пользователя с помощью файлов модулей.

Каждый файл модуля содержит информацию, необходимую для настройки оболочки приложения. После инициализации пакета модулей среду можно изменить для каждого модуля с помощью команды модуля, которая интерпретирует файлы модулей. Обычно файлы модулей указывают команде модуля изменять или устанавливать переменные среды оболочки, такие как PATH , MANPATH и т. д. Файлы модулей могут совместно использоваться многими пользователями в системе, и пользователи могут собственный набор для дополнения или замены общих файлов модулей.

файлы модулей добавляются и удаляются из текущей среды пользователем. Изменения среды, содержащиеся в файле модуля, также можно обобщить с помощью команды модуля. Если аргументы не указаны, отображается сводка по использованию модуля и подкоманды.

Действие, которое должна выполнить команда модуля, описывается подкомандой и связанными с ней аргументами.

Инициализация пакета¶

Пакет Modules и команда модуля инициализируются, когда в оболочку загружается сценарий инициализации, специфичный для оболочки. Сценарий выполняет подкоманду autoinit программы modulecmd.tcl, расположенной в /usr/share/Modules/libexec для соответствующей оболочки.Результат этого выполнения оценивается оболочкой, которая создает команду модуля как псевдоним или функцию и создает переменные среды модулей.

Во время этого процесса инициализации, если среда Modules оказывается неопределенной (когда и MODULEPATH, и LOADEDMODULES обнаруживаются либо неустановленными, либо пустыми), файлы конфигурации modulespath и initrc, расположенные в /etc/environment-modules, оцениваются, если они присутствуют, и после этого заказ. Файл modulespath содержит список путей к модулям, которые следует включить во время инициализации. В этом файле пути к модулям разделены символами новой строки или двоеточия. initrc — это файл модуля, который во время инициализации определяет пути к модулям для включения, модули для загрузки и применяемую конфигурацию модуля.

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

Псевдоним или функция модуля выполняет программу modulecmd.tcl, и оболочка оценивает вывод команды. Первый аргумент modulecmd.tcl указывает тип оболочки.

Сценарии инициализации хранятся в /usr/share/Modules/init/, где указано имя исходной оболочки. Например, пользователь C Shell использует сценарий /usr/share/Modules/init/csh. Оболочки sh, csh, tcsh, bash, ksh, zsh и fish поддерживаются modulecmd.tcl. Кроме того, поддерживаются «оболочки» python, perl, ruby, tcl, cmake, r и lisp, которые записывают изменения среды в стандартный вывод в виде кода python, perl, ruby, tcl, lisp, r или cmake.

Инициализацию также можно выполнить, напрямую вызвав подкоманду autoinit программы modulecmd.tcl.

Псевдоним или функция ml также могут быть определены во время инициализации, если они включены (см. раздел MODULES_ML). ml — это удобный интерфейс, использующий все возможности команд модуля с меньшим количеством символов. Подробную информацию см. в мл.

Примеры инициализации¶

Инициализация C Shell (и производные):

Bourne Shell (sh) (и производные):

Bourne Shell (sh) (и производные) с подкомандой autoinit:

Запуск модуля cmd¶

При вызове modulecmd.tcl вызывает сценарий конфигурации для конкретного сайта, если он существует. Расположение этого скрипта — /etc/environment-modules/siteconfig.tcl. Дополнительный сценарий siteconfig можно указать с помощью переменной среды MODULES_SITECONFIG, если это разрешено конфигурацией modulecmd.tcl, и он будет загружен, если он существует после /etc/environment-modules/siteconfig.tcl. Siteconfig — это сценарий Tcl, который позволяет заменить любую глобальную переменную или определение процедуры из modulecmd.tcl .

После этого modulecmd.tcl получает исходные файлы rc, которые содержат глобальные, пользовательские и специфичные для modulefile настройки. Эти файлы интерпретируются как файлы модулей. Подробную информацию см. в файле модуля.

При вызове модуля modulecmd.tcl файлы команд запуска загружаются в следующем порядке:

  1. Глобальный файл RC, указанный в переменной MODULERCFILE или /etc/environment-modules/rc . Если MODULERCFILE указывает на каталог, файл modulerc в этом каталоге используется как глобальный файл RC.
  2. Файл RC пользовательского модуля $HOME/.modulerc
  3. Все файлы .modulerc и .version, найденные при поиске файла модуля.

Переключатели командной строки¶

Команда module принимает переключатели командной строки в качестве первого параметра. Их можно использовать для управления форматом вывода всей отображаемой информации и поведением модуля в случае обнаружения и интерпретации файлов модулей.

Все переключатели можно вводить как в сокращенной, так и в длинной записи. Принимаются следующие переключатели:

Включить скрытые модули в поиск, выполняемый с помощью подкоманд avail, aliases, list, search или whatis. Этот параметр не влияет на жестко скрытые модули.

Новое в версии 4.6.

При загрузке, выгрузке и переключении подкоманд включите режим автоматической обработки модуля. См. также раздел MODULES_AUTO_HANDLING.

Новое в версии 4.2.

Раскрасить вывод. WHEN по умолчанию всегда или может быть никогда или автоматически. См. также раздел MODULES_COLOR.

Новое в версии 4.3.

Подкоманды avail и list возвращают модули, полное имя которых содержит строку поискового запроса.

Новое в версии 4.3.

Изменено в версии 5.1: добавлена ​​поддержка подкоманды list

Режим отладки. Заставляет модуль печатать отладочные сообщения о ходе выполнения. Несколько опций -D увеличивают уровень детализации отладки. Максимум 2.

Новое в версии 4.0.

Изменено в версии 4.6: добавлен вариант формы -DD

В подкоманде avail отображать только версию имени каждого модуля по умолчанию.Версия по умолчанию — это явно установленная версия по умолчанию или также неявная версия по умолчанию, если включена опция конфигурации implicit_default (дополнительную информацию о неявной версии по умолчанию см. в разделе «Расположение файлов модулей» на странице руководства modulefile).

Новое в версии 4.0.

При загрузке, выгрузке и переключении подкоманд обходите любое неудовлетворенное ограничение файла модуля, соответствующее объявленным prereq и конфликту. Это означает, например, что файл модуля будет загружен, даже если он конфликтует с другим загруженным файлом модуля, или что файл модуля будет выгружен, даже если он требуется в качестве предварительного требования для другого файла модуля.

По команде очистки пропустите диалоговое окно подтверждения и продолжите.

Новое в версии 4.3: поддержка --force / -f была прекращена в версии 4.0, но вновь введена, начиная с версии 4.2, с другим значением: вместо включения активного механизма разрешения зависимостей --force переключатель командной строки теперь позволяет обойти согласованность зависимостей при загрузке или выгрузке файла модуля.

Выдает некоторую полезную информацию об использовании и завершает команду.

Сопоставлять аргументы спецификации модуля без учета регистра.

Новое в версии 4.4: поддержка --icase / -i была прекращена в версии 4.0, но вновь введена, начиная с версии 4.4. Когда он установлен, он теперь применяется к строке поискового запроса и спецификации модуля для всех подкоманд и команд Tcl файла модуля.

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

Новое в версии 4.3.

Отображать avail , list , savelist , whatis и результаты поиска в формате JSON.

Новое в версии 4.5.

В подкоманде avail отображать только самую старшую численно отсортированную версию имени каждого модуля (см. раздел «Поиск файлов модулей» на справочной странице файла модуля).

Новое в версии 4.0.

Отобразить файл avail , список и список сохранения в длинном формате.

При загрузке, выгрузке и переключении подкоманд отключить режим автоматической обработки модулей. См. также раздел MODULES_AUTO_HANDLING.

Новое в версии 4.2.

В подкоманде avail ограничить результаты поиска соответствующими файлами модулей и каталогами, найденными на уровне глубины, выраженном поисковым запросом. Таким образом, файлы модулей, содержащиеся в каталогах, являются частью результата.

Новое в версии 4.3.

Не направляйте вывод сообщения на пейджер.

Новое в версии 4.1.

Не отправлять выходные данные сообщения на стандартный вывод. Держите его на стандартном потоке.

Новое в версии 5.1.

Определите содержимое для отчета в дополнение к именам модулей. Эта опция поддерживается подкомандами avail и list в их обычном или кратком режимах вывода. Допустимые значения – это СПИСОК элементов для отчета, разделенных двоеточием ( : ). Порядок элементов в LIST не имеет значения.

Порядок элементов в LIST не имеет значения. Имена модулей — это единственное содержимое, о котором сообщается, когда для LIST задано пустое значение.

Новое в версии 4.7.

Изменено в версии 4.8: добавлен элемент variant для подкоманды списка

Направлять весь вывод сообщений в less (или, если установлено, в команду, указанную в переменной MODULES_PAGER), если поток вывода ошибок является терминалом. См. также раздел MODULES_PAGER.

Новое в версии 4.1.

Отправлять выходные данные сообщения на стандартный вывод вместо стандартного вывода. Поддерживается только в оболочках sh, bash, ksh, zsh и fish.

Новое в версии 5.1.

Отключить сообщения об ошибках, предупреждения и информационные сообщения. На результат вывода команды модуля автоматический режим не влияет.

Новое в версии 4.3: поддержка --silent / -s была прекращена в версии 4.0, но вновь появилась, начиная с версии 4.3.

Подкоманды avail и list возвращают модули, имя которых начинается со строки поискового запроса.

Новое в версии 4.3.

Изменено в версии 5.1: добавлена ​​поддержка подкоманды list

Отобразить файл avail , список и список сохранения в кратком формате.

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

Новое в версии 4.6.

Включить подробные сообщения во время выполнения команды модуля. Несколько опций -v увеличивают уровень детализации. Максимум 2.

Новое в версии 4.3: поддержка --verbose / -v была прекращена в версии 4.0, но вновь появилась, начиная с версии 4.3.

Изменено в версии 4.7: добавлен параметр формы -vv

Показывает текущую версию команды модуля. Затем команда завершается без дальнейшей обработки.

--width =ЦВЕТЫ , -w ЦВЕТЫ ¶

Установите ширину вывода в столбцы COLS. См. также раздел MODULES_TERM_WIDTH.

Новое в версии 4.7.

Подкоманды модуля¶

добавить любой файл модуля [options]. ¶

Новое в версии 5.1.

Список всех доступных символических имен версий и псевдонимов в текущем MODULEPATH .Все каталоги в MODULEPATH рекурсивно просматриваются таким же образом, как и для подкоманды avail. Отображаются только символические имена версий и псевдонимы, найденные при поиске.

Новое в версии 4.0.

Изменено в версии 4.6: добавлен параметр --all / -a

Добавить значение к переменной среды. переменная представляет собой список, разделенный двоеточием или разделителем. Дополнительные пояснения см. в разделе append-path на справочной странице modulefile.

Когда append-path вызывается как подкоманда модуля, переменная счетчика ссылок, обозначающая количество раз, когда значение добавлялось к переменной среды, не обновляется, если не установлен параметр --duplicates.

Новое в версии 4.1.

Изменено в версии 5.0: переменная среды счетчика ссылок больше не обновляется, если не установлен параметр --duplicates

доступно [-d|-L] [-t|-l|-j] [-a] [-o СПИСОК] [-S|-C] [--глубоко|--не-глубоко] [шаблон . ] ¶

Список всех доступных файлов модулей в текущем MODULEPATH . Все каталоги в MODULEPATH рекурсивно ищут файлы, содержащие волшебный файл cookie модулей. Если задан аргумент шаблон, то в каждом каталоге в MODULEPATH выполняется поиск файлов модулей, чье имя пути, символическое имя версии или псевдоним соответствуют шаблону в нечувствительный к регистру способ по умолчанию. шаблон может содержать подстановочные знаки. Для поддержки нескольких версий приложения можно создать подкаталог для приложения, содержащий файлы модулей для каждой версии.

Найденные при поиске символические имена версий и псевдонимы отображаются в результате выполнения этой подкоманды. Символические имена версий отображаются рядом с файлом модуля, которому они назначены, в скобках. Псевдонимы перечислены в разделе MODULEPATH, где они были определены. Чтобы отличить псевдонимы от файлов модулей, рядом с их именем в скобках добавляется символ @. Псевдонимы, определенные через глобальный или пользовательский файл RC модуля, перечислены в разделе global/user modulerc.

Если включен цветной вывод и определено конкретное графическое представление для версии модуля по умолчанию, символ по умолчанию опускается, а вместо этого к соответствующему файлу модуля применяется определенное графическое представление. Когда включен цветной вывод и для псевдонима модуля определено конкретное графическое представление, символ @ опускается. Определенное графическое представление применяется к псевдониму модуля. Дополнительные сведения о цветном выводе см. в разделах MODULES_COLOR и MODULES_COLORS.

Теги модулей, применяемые к доступным файлам модулей, возвращаемым подкомандой avail, сообщаются вместе с именем модуля, с которым они связаны (см. раздел «Теги модулей»).

Раздел Ключ добавляется в конце вывода на тот случай, если некоторые элементы указаны в скобках или шевронах вдоль имени модуля или если некоторые элементы вывода выполнены в графическом виде. Этот раздел Key дает подсказки о значении таких элементов.

Параметр шаблон может также ссылаться на символическое имя файла модуля или псевдоним файла модуля. Он также может использовать особый синтаксис для точного выбора версии модуля (см. раздел «Расширенные спецификаторы версии модуля» ниже).

Изменено в версии 4.0: добавлены параметры --default / -d , --latest / -L

Изменено в версии 4.3: добавлены параметры --starts-with / -S , --contains / -C , --indepth , --no-indepth

Читайте также: