Php/conf: различия между версиями

Материал из ALT Linux Wiki
< Php
(Import from freesource.info)
 
Нет описания правки
Строка 1: Строка 1:
[[Category:Devel]]
[[Category:Devel]]
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/php/conf}}
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/php/conf}}
=== Введение ===
В последнее время язык PHP приобрел большую популярность. Он "заразил" множество рабочих станций и web-серверов. К этому можно относиться по разному, но ясно одно - этот язык применяется во множестве проектов и для самых разных задач. Следовательно, нужен механизм для удобного конфигурирования этого языка.


=== Структура ===
=== Структура ===


Интерпретатор PHP имеет модульную структуру. Модули (extensions) расширяют функциональность языка в ту или иную сторону. Их можно собирать как в составе библиотеки, так и отдельно от неё. Каждый модуль может иметь свои собственные конфигурационные опции.
Интерпретатор PHP имеет модульную структуру. Модули (extensions) расширяют функциональность языка в ту или иную сторону. Их можно собирать как в составе интерпретатора, так и отдельно, в виде разделяемых библиотек. Каждый модуль может иметь свои собственные конфигурационные опции.
 
Также в PHP существуют интерфейсы к интерпретатору - Server API или SAPI. Так например mod_php и cli (command-line interface) являются интерфейсами к apache и к пользователю соответственно.


В ALT Linux (может быть где-то ещё) PHP собран таким образом, что сам интерпретатор находится в разделяемой библиотеке. Это позволяет добиться ряда преимуществ.  
Также в PHP существуют интерфейсы к интерпретатору - Server API или SAPI. Так например, mod_php и cli (command-line interface) являются интерфейсами к apache и к пользователю соответственно.


Так как SAPI это разные интерфейсы, то было бы логично сделать чтобы они были максимально независимы друг от друга. Например вполне может быть полезным если у каждого SAPI будет разный набор модулей. Или у каждого SAPI будет своя собственная конфигурация.
В ALT Linux PHP-интерпретатор и расширения собираются в виде разделяемых библиотек. Различные SAPI конфигурируются независимо друг от друга.


=== Реализация ===
=== Реализация ===


Для осуществления задуманного была создана следующая структура расположения конфигурационных файлов:
/etc/php/<VERSION>/<SAPI>/php.ini
 
/etc/php/<VERSION>/<SAPI>/php.d/<EXTENSION>.ini
<tt>/etc/php/<VERSION>/<SAPI>/php.ini</tt>
<tt>/etc/php/<VERSION>/<SAPI>/php.d/<EXTENSION>.ini</tt>


где, как не трудно, догадаться:
Как не трудно догадаться,
EXTENSION - имя модуля расширения.
; VERSION: версия php.  
VERSION     - версия php.  
; SAPI: название SAPI.
SAPI               - название SAPI.
; EXTENSION: имя модуля расширения.


В начале своей работы SAPI прочитывает сперва свой <tt>php.ini</tt>, а потом все файлы с расширением .ini в директории <tt>php.d</tt> . Файлы, не имеющие расширения .ini игнорируются.
В начале своей работы SAPI прочитывает сперва свой <tt>php.ini</tt>, а потом все файлы с расширением <tt>.ini</tt> в директории <tt>php.d</tt> . Файлы, не имеющие расширения <tt>.ini</tt>, игнорируются.


Если вам не нравится расположение директории php.d, вы всегда можете переопределить это место хранения дополнительных конфигурационных файлов с помощью директивы - <tt>alt_sapi_config_ini_scan_dir</tt> .
Расположение директории <tt>php.d</tt> для каждого SAPI настраивается с помощью директивы в <tt>php.ini</tt>-файле <tt>alt_sapi_config_ini_scan_dir</tt>.

Версия от 23:21, 18 августа 2008

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Структура

Интерпретатор PHP имеет модульную структуру. Модули (extensions) расширяют функциональность языка в ту или иную сторону. Их можно собирать как в составе интерпретатора, так и отдельно, в виде разделяемых библиотек. Каждый модуль может иметь свои собственные конфигурационные опции.

Также в PHP существуют интерфейсы к интерпретатору - Server API или SAPI. Так например, mod_php и cli (command-line interface) являются интерфейсами к apache и к пользователю соответственно.

В ALT Linux PHP-интерпретатор и расширения собираются в виде разделяемых библиотек. Различные SAPI конфигурируются независимо друг от друга.

Реализация

/etc/php/<VERSION>/<SAPI>/php.ini
/etc/php/<VERSION>/<SAPI>/php.d/<EXTENSION>.ini

Как не трудно догадаться,

VERSION
версия php.
SAPI
название SAPI.
EXTENSION
имя модуля расширения.

В начале своей работы SAPI прочитывает сперва свой php.ini, а потом все файлы с расширением .ini в директории php.d . Файлы, не имеющие расширения .ini, игнорируются.

Расположение директории php.d для каждого SAPI настраивается с помощью директивы в php.ini-файле alt_sapi_config_ini_scan_dir.