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

Материал из ALT Linux Wiki
< Php
(Import from freesource.info)
 
Нет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
[[Category:Devel]]
{{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

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