FreeSource : AltLinux/Sisyphus/devel/php/rpm

Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.

Сборка модулей


Чтобы реализовать гибкую структуру для установки и конфигурирования модулей и SAPI придется решить несколько проблем связанных с модульностью, за которой мы так гонимся (закон сохранения энергии действует даже здесь ).

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

Вторая — это несовместимость некоторых расширений PHP с некоторыми SAPI. Следовательно, определенные расширения не должны быть включены для одних SAPI и выключены для других.

Для решения этих проблем был создана следующая структура:

  1. /usr/share/php/extconf/<EXTENSION>/ – директория, содержащая конфигурацию для данного расширения.
    1. /usr/share/php/extconf/<EXTENSION>/config – в этом файле должна находится конфигурация php, специфичная для этого модуля (например, в этом файле может указываться директива подключения модуля «extension=mysql.so»).
    2. /usr/share/php/extconf/<EXTENSION>/params – здесь находится конфигурация, необходимая для включения данного модуля в разных SAPI:
      • exceptions – в этой переменной перечисляются SAPI модули, для которых расширение не должно быть включено.
      • file_ini – здесь необходимо указать имя конфигурационного файла (например «file_ini=mysql.ini»)
  2. /usr/share/php/service/<SAPI>/ – в этой директории находятся скрипт(ы) для перезагрузки конфигурации на сервере, для которого предназначен данный SAPI.
  3. /usr/share/php/scripts/ – содержит скрипты для включения/выключения какого-либо расширения.


См. также:
Создание RPM пакета для SAPI модуля
Создание RPM пакета для расширения PHP
Создание модулей, написанных на PHP

Страницы, ссылающиеся на данную: AltLinux/Sisyphus/devel/php
AltLinux/Sisyphus/devel/php/MkRpmExtension
AltLinux/Sisyphus/devel/php/MkRpmSAPI