Php/rpm

Материал из ALT Linux Wiki
< Php
Версия от 19:06, 28 июля 2008; PhpCoder (обсуждение | вклад) (Import from freesource.info)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с 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")
  1. /usr/share/php/service/<SAPI>/ - в этой директории находятся скрипт(ы) для перезагрузки конфигурации на сервере, для которого предназначен данный SAPI.
  2. /usr/share/php/scripts/ - содержит скрипты для включения/выключения какого-либо расширения.

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