- Установка PECL PHP
- Глава 5. Установка PECL расширений
- Таблица содержимого
- Введение в PECL установку
- Загрузка PECL расширений
- PECL для Windows пользователей
- Компиляция совместных PECL расширений с PEAR
- Компиляция совместных PECL расширений с phpize
- Компиляция статических PECL расширений PHP
- Установка PHP-расширения в Windows
- Где найти расширение?
- Какое расширение нужно загрузить?
- PHP: Hypertext Preprocessor
- PECL For Windows
- Which version do I choose?
- IIS
- Apache
- VC15 & VS16
- TS and NTS
- What is PGO?
- amd64 (x86_64) Builds
- Long and multibyte path
- Archives
Установка 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 содержащий информацию о различных расширениях, которые предлагаются командой разработчиков PHP. Информация доступная там содержит: лог изменений, замечания о релизе, требования и другие детали.
PECL расширение имеющее релизы и находящееся в списке PECL на веб сайте и доступное для скачивания и инсталляции с использованием команды pear. Вами может быть выбрана требуемая ревизия.
Большинство 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
PECL для Windows пользователей
Как и множество других PHP DLL расширений, инсталляция заключается в простом копировании DLL файла с PECL расширением в папку с расширениями «extension_dir» и их дальнейшей загрузкой в php.ini. Для примера, добавьте следующую строку в Ваш php.ini:
После того, как все сделано, перезапустите веб сервер.
Компиляция совместных PECL расширений с PEAR
PEAR легко создает общедоступные PHP расширения. Используя команду pear, сделайте следующее:
Эта команда загрузит исходник extname, скомпилирует и инсталлирует extname.so в Вашу директорию с расширениями «extension_dir», затем extname.so может быть загружено через php.ini.
По умолчанию, команда pear не инсталлирует пакеты, которые помечены как альфа или бета релизы. Если нет доступного стабильного пакета, Вы можете инсталлировать бета пакет используя следующую команду:
Вы также можете инсталлировать определенную версию расширения используя следующий вариант:
Компиляция совместных 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
Это создаст следующую директорию:
# 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
26 июня, 2007 , 17:49
handyblogger[at]gmail.com
Скажите, а чем можно заменить команду phpize? Потому как у меня её использование выдаёт ошибку:
sudo phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
cp: невозможно выполнить stat для «libtool.m4»: Нет такого файла или каталога
cp: невозможно выполнить stat для «ltmain.sh»: Нет такого файла или каталога
cat: ./build/libtool.m4: Нет такого файла или каталога
configure.in:3: warning: prefer named diversions
configure.in:8: warning: LT_AC_PROG_SED is m4_require’d but not m4_defun’d
aclocal.m4:2619: PHP_CONFIG_NICE is expanded from…
configure.in:8: the top level
configure.in:74: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure:2560: error: possibly undefined macro: LT_AC_PROG_SED На более низком уровне чем заменить phpize?
У меня вчера тоже такое выдавало. Седня набрел на этот сайт и просто набрал:
pecl install dbase Он все сам скомпилировал и поставил.
Спасибо за статью.
Вы знаете, дорогой автор, есть люди, и притом нормальные, образованные, знающие английский язык, но по какой-то причине услышавшие слово PECL первый раз в жизни. Вот моделирую ситуацию. Надо мне быстро сделать приложение, которое бы работало с существующей базой SQLite3. Я не знаю, что такое SQLite3 и чем оно отличается от других. Иду в википедию и читаю. Там написано, что куча языков работает с этой библиотекой. В частности PHP. Идем в PHP. Читаем доку в оригинале (чтобы вам было приятно, уточню, что в оригинале) Since PHP 5.0 this extension was bundled with PHP. Beginning with PHP 5.4, this extension is available only via PECL. Ну я не всегда сразу переключаюсь на последние PHP. Но в перспективе переключусь. А что же за хрень этот Пекл? (Причем Пекл — знакомо как-то звучит и вполне возможно, что я года 3 назад, уже озадачивался тем же вопросом, но забыл за ненадобностью) Иду Википедию и читаю по русски :(, что это сборник библиотек для PHP, созданный для того, чтобы было куда складывать библиотеки вышедшие из стандартной сборки PHP. Тогда у меня возникает логичный вопрос. А может быть кто-то сделал скрипт для того, чтобы сразу скачать и сразу установить и сразу php.ini изменить? Я ввожу запрос и о чудо! Нахожу ваш блог. Читаю. При этом совершенно не напрягаюсь, ибо на родном языке написано. Спасибо, автор, за то, что сделали перевод. Ура! Мир-дружба-жвачка! Любопытство я свое удовлетворил и скорее всего забуду эту инфу где-то через год-полтора. Надеюсь после этого объемного поста вам стало яснее, кто ищет установку Пекл и находит вас? Дмитрий.
Установка PHP-расширения в Windows
В Windows есть два способа загрузки PHP-расширения: скомпилировать его вместе с PHP или загрузить DLL. Загрузка заранее скомпилированного расширения является наиболее простым и предпочитаемым способом.
Для загрузки расширения, оно должно присутствовать на вашей системе в виде ".dll" файла. Все расширения автоматически и периодически компилируются командой PHP (см. следующий раздел для загрузки).
За инструкциями по компиляции расширения в PHP обратитесь к разделу "Сборка из исходников".
Для компиляции отдельного расширения (или DLL-файла), обратитесь к разделу " Сборка из исходников". Если DLL-файла нет ни в стандартной поставке PHP ни в PECL, возможно, вам придется скомпилировать его вручную.
Где найти расширение?
PHP-расширения обычно имеют имена вида "php_*.dll" (где звездочка обозначает имя расширения) и располагаются в папке "PHP\ext".
PHP поставляет расширения наиболее полезные большинству разработчиков. Такие расширения называются "основными" ("core").
Однако, если вам требуется функционал, который не предоставляется ни одним из основных расширений, возможно, нужное вам расширение есть в PECL. Библиотека расширений сообщества PHP (The PHP Extension Community Library, PECL) является хранилищем расширений PHP, предоставляя каталог и хостинг всех известных расширений для скачки и дальнейшей разработки расширений в PHP.
Если вы разработали какое-либо расширение для собственных нужд, возможно, вы захотите хранить его в PECL, так, чтобы другие также могли воспользоваться результатами вашего труда. Хорошим побочным эффектом будет неплохой шанс получить обратную связь, благодарности (надеемся, что так и будет), сообщения об ошибках и даже исправления/патчи. Пожалуйста, прочтите » публикация PECL; перед отправкой вашего расширения в PECL.
Какое расширение нужно загрузить?
- Различные номера версий (по крайней мере первые два числа должны совпадать)
- Различные настройки потокобезопасности
- Различная архитектура процессора (x86, x64, . )
- Различные настройки отладки
- и т.д.
Помните, что настройки ваших расширений должны совпадать со всеми настройками используемого вами бинарного файла PHP. Следующий PHP-скрипт выведет вам все настройки PHP:
Пример #1 Вызов phpinfo()
Или запустите из командной строки:
PHP: Hypertext Preprocessor
This site is dedicated to supporting PHP on Microsoft Windows. It also supports ports of PHP extensions or features as well as providing special builds for the various Windows architectures. If you like to build your own PHP binaries, instructions can be found on the Wiki.
PECL For Windows
PECL extensions for Windows is being worked on. Windows DLL can be downloaded right from the PECL website.
The PECL extension release and snapshot build directories are browsable directly.
Which version do I choose?
IIS
Apache
Please use the Apache builds provided by Apache Lounge. They provide VC15 and VS16 builds of Apache for x86 and x64. We use their binaries to build the Apache SAPIs. With Apache, using the apache2handler SAPI, you have to use the Thread Safe (TS) versions of PHP.
VC15 & VS16
More recent versions of PHP are built with VC15 or VS16 (Visual Studio 2017 or 2019 compiler respectively) and include improvements in performance and stability. - The VC15 and VS16 builds require to have the Visual C++ Redistributable for Visual Studio 2015-2019 x64 or x86 installed
TS and NTS
TS refers to multithread capable builds. NTS refers to single thread only builds. Use case for TS binaries involves interaction with a multithreaded SAPI and PHP loaded as a module into a web server. For NTS binaries the widespread use case is interaction with a web server through the FastCGI protocol, utilizing no multithreading (but also for example CLI).
What is PGO?
amd64 (x86_64) Builds
PHP 7 provides full 64-bit support. The x64 builds of PHP 7 support native 64-bit integers, LFS, 64-bit memory_limit and much more.
x64 builds are recommended (almost all Windows installations support x64).
Long and multibyte path
PHP 7.1+ supports long and UTF-8 paths. See the manual for details.
Archives
Past releases are available from our archives, older versions not found there can be found at the Museum.