До сиx пор ищешь правду и смысл жизни? Может ты пропустил основы: помогать, сострадать и любить?

Установка PECL PHP

Просматривая аналитику обнаружил, что ко мне стали часто обращаться по запросу "установка pecl php", как я понимаю, этому поспособствовала моя предыдущая статья про установку mnoGoSearch. Мне стало интересно, что же люди ищут по этой проблеме?

До конца не осознаю, что их приводит сюда, единственной причиной может служить то, что PECL раздел на официальном сайте PHP долгое время не был переведен на русский язык, может люди ищут русский перевод?

Что-ж, раздел интересный и перевод его занимает не так много времени, людям, которым по душе читать мануалы на русском языке посвящается:

Глава 5. Установка PECL расширений

Таблица содержимого

Введение в PECL установку

PECL это хранилище PHP расширений которое доступно Вам через систему PEAR. Этот раздел руководства предназначет для демонстрации того, как получить и проинсталлировать PECL расширения.

Эти инструкции предполагают, что "/your/phpsrcdir/" это путь к исходному дистрибутиву PHP и что "extname" это имя PECL расширения, поэтому приведите все рассматриваемые здесь примеры в соответствии с Вашими требованиями. Эти инструкции также полагают, что Вы уже знакомы с командой pear.

Для использования расширения оно должно быть собрано, проинсталлировано и загружено. Методы описанные ниже предоставляют Вам различные инструкции о том, как собрать и инсталлировать расширения, но они не загружают их автоматически. Расширения могут быть загружены после добавления директивы расширений в php.ini файле или через использование функции dl().

Когда собираются PHP модули, очень важно знать версии всех необходимых инструментов (autoconf, automake, libtool, и т.д.) Смотрите Анонимные CVS инструкции для детализации требуемых инструментов и требуемых версий.

Загрузка PECL расширений

Существует несколько вариантов для загрузки PECL расширений, такие как:
  • http://pecl.php.net

    Это веб сайт PECL содержащий информацию о различных расширениях, которые предлагаются командой разработчиков PHP. Информация доступная там содержит: лог изменений, замечания о релизе, требования и другие детали.

  • pecl download extname

    PECL расширение имеющее релизы и находящееся в списке PECL на веб сайте и доступное для скачивания и инсталляции с использованием команды pear. Вами может быть выбрана требуемая ревизия.

  • CVS

    Большинство PECL расширений размещено в CVS. Веб просмотр CVS может быть выполнен через http://cvs.php.net/pecl/. Для загрузки прямо из CVS должна быть использована следующая последовательность команд (заметьте, что phpfi это пароль для пользователя cvsread):

    # cvs -d:pserver:cvsread@cvs.php.net:/repository login
    # cvs -d:pserver:cvsread@cvs.php.net:/repository co pecl/extname
    
  • Скачивание для Windows

    Пользователи Windows могут найти уже скомпилированные PECL файлы выполнив закачку Collection of PECL modules со страницы PHP Downloads и выбрав PECL Snapshot. Для компиляции PHP под Windows, читайте соответствующий раздел.

PECL для Windows пользователей

Как и множество других PHP DLL расширений, инсталляция заключается в простом копировании DLL файла с PECL расширением в папку с расширениями "extension_dir" и их дальнейшей загрузкой в php.ini. Для примера, добавьте следующую строку в Ваш php.ini:

extension=php_extname.dll

После того, как все сделано, перезапустите веб сервер.

Компиляция совместных PECL расширений с PEAR

PEAR легко создает общедоступные PHP расширения. Используя команду pear, сделайте следующее:

# pecl install extname

Эта команда загрузит исходник extname, скомпилирует и инсталлирует extname.so в Вашу директорию с расширениями "extension_dir", затем extname.so может быть загружено через php.ini.

По умолчанию, команда pear не инсталлирует пакеты, которые помечены как альфа или бета релизы. Если нет доступного стабильного пакета, Вы можете инсталлировать бета пакет используя следующую команду:

# pecl install extname-beta

Вы также можете инсталлировать определенную версию расширения используя следующий вариант:

# pecl install extname-0.1

Компиляция совместных PECL расширений с phpize

Иногда использование PEAR инсталлятора невозможно. Такое может быть если Вы находитесь за файерволом или расширение, которое Вы хотите инсталлировать, недоступно Вам как PEAR совместимый пакет, таковыми могут быть неизданные расширения из CVS. Если Вам необходимо построить такое расширение, Вы можете использовать низко-уровневую сборку, выполнив построение вручную.

Команда phpize используется в качестве подготовки окружения для PHP расширения. В следующем примере исходные коды для расширения находятся в директории названной extname:

# cd extname
# phpize
# ./configure
# make
# make install

Успешная инсталляция создаст файл extname.so и разместит его в директорию с PHP расширениями. Вам необходимо откорректировать php.ini и добавить в него строку extension=extname.so, прежде чем Вы сможете использовать это расширение.

Если в системе отсутствует команда phpize и используются предварительно скомпилированные пакеты (такие как RPM), будьте уверенны в том, что инсталлируете подходящую версию PHP пакета, так как часто они включают в себя команду phpize наряду с предопределенными файлами заголовков для сборки PHP и его расширений.

Выполните phpize --help для показа дополнительной информации об использовании этой команды.

Компиляция статических PECL расширений PHP

Вам может понадобится собрать PECL расширение статически, т.е. прямо непосредственно в код PHP. Для этого Вам необходимо поместить исходный код расширения в директорию "php-src/ext/" и указать сборщику PHP на регенерацию его конфигурационного скрипта.

# cd /your/phpsrcdir/ext
# pear download extname
# gzip -d < extname.tgz | tar -xvf -
# mv extname-x.x.x extname

Это создаст следующую директорию:

/your/phpsrcdir/ext/extname
Далее дайте PHP команду перестроить конфигурационный скрипт и затем соберите PHP как обычно:
# cd /your/phpsrcdir
# rm configure
# ./buildconf --force
# ./configure --help
# ./configure --with-extname --enable-someotherext --with-foobar
# make
# make install

Замечание:
Для запуска скрипта 'buildconf' Вам необходимы autoconf 2.13 и automake 1.4+ (более новые версии autoconf могут работать, но не поддерживаться).

В зависимости от расширения используется либо --enable-extname либо --with-extname. Обычно расширение, которое не требует внешних библиотек, использует --enable. Для выяснения этого момента запустите следующую строку после buildconf:

# ./configure --help | grep extname