Php/rpm: различия между версиями
PhpCoder (обсуждение | вклад) (Import from freesource.info) |
Ilis (обсуждение | вклад) Нет описания правки |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/php/rpm}} | {{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/php/rpm}} | ||
=== Сборка модулей === | === Сборка модулей === | ||
Строка 25: | Строка 23: | ||
[[php/MkRpmExtension|Создание RPM пакета для расширения PHP]] | [[php/MkRpmExtension|Создание RPM пакета для расширения PHP]] | ||
[[php/MkRpmModulePHP|Создание модулей, написанных на PHP]] | [[php/MkRpmModulePHP|Создание модулей, написанных на PHP]] | ||
{{Category navigation|title=PHP|category=PHP|sortkey={{SUBPAGENAME}}}} | |||
[[Категория:RPM]] |
Текущая версия от 07:03, 15 января 2009
Сборка модулей
Чтобы реализовать гибкую структуру для установки и конфигурирования модулей и SAPI придется решить несколько проблем связанных с модульностью, за которой мы так гонимся (закон сохранения энергии действует даже здесь ).
Первая проблема заключается в том, что возможна ситуация, когда очередной SAPI модуль будет установлен после того как были установлены несколько пакеров с расширениями. В этом случае, SAPI должен узнать обо всех расширениях PHP (и их конфигурации), установленных до SAPI.
Вторая -- это несовместимость некоторых расширений PHP с некоторыми SAPI. Следовательно, определенные расширения не должны быть включены для одних SAPI и выключены для других.
Для решения этих проблем был создана следующая структура:
- /usr/share/php/extconf/<EXTENSION>/ - директория, содержащая конфигурацию для данного расширения.
- /usr/share/php/extconf/<EXTENSION>/config - в этом файле должна находится конфигурация php, специфичная для этого модуля (например, в этом файле может указываться директива подключения модуля "extension=mysql.so").
- /usr/share/php/extconf/<EXTENSION>/params - здесь находится конфигурация, необходимая для включения данного модуля в разных SAPI:
- exceptions - в этой переменной перечисляются SAPI модули, для которых расширение не должно быть включено.
- file_ini - здесь необходимо указать имя конфигурационного файла (например "file_ini=mysql.ini")
- /usr/share/php/service/<SAPI>/ - в этой директории находятся скрипт(ы) для перезагрузки конфигурации на сервере, для которого предназначен данный SAPI.
- /usr/share/php/scripts/ - содержит скрипты для включения/выключения какого-либо расширения.
См. также: Создание RPM пакета для SAPI модуля Создание RPM пакета для расширения PHP Создание модулей, написанных на PHP