2010-01-12 3 views
15

Я нашел несколько связанных должностей здесь, но не получил ответа. Итак, отправляем снова.
Как установить расширение PECL на окна? Скажем, я хочу расширение PECL oAuth в Windows XP.
Я знаю 2 метода, но ни один из них не работает для меня.Расширение PECL для Windows

  1. Сайт http://pecl4win.php.net/ не работает месяцами. Поэтому я не могу загрузить DLL. Есть ли место, где мы можем загрузить DLL?

  2. выполнив команду PECL установить OAuth-0.99.9.tgz бросает ошибку
    oauth.dsp DSP не существует.
    Я попытался с несколькими другими расширениями также получить ту же ошибку.

Что мне здесь не хватает?

ответ

17

Релизы теперь можно найти здесь:
http://windows.php.net/downloads/pecl/releases/

Если вам необходимо расширение не доступно там вы можете спросить о PECL-разработчика в списке рассылки lists.php.net.

+1

Поскольку источник расширений легко доступен вместо прямого предоставления определенной DLL, было бы лучше, если бы вы опубликовали подробное руководство по созданию библиотеки dll для расширения pecl из источника. Я нашел несколько статей об этом, но все еще не очень ясен. – Varun

+2

http://wiki.php.net/internals/windows/stepbystepbuild содержит несколько инструкций. Как я уже сказал в комментарии к другому ответу здесь: система сборки на окнах в настоящее время не позволяет строить расширения автономно, но oyu приходится строить из исходного дерева PHP. Для добавления oauth вам нужно либо поставить источники под php-src/ext/oauth перед запуском buildconf.bat, либо использовать параметр -extra-ext-dir (или аналогичный) для buildconf.bat. – johannes

+0

Два года спустя обновление моего предыдущего комментария: Между тем есть инструмент «phpize», похожий на Unix, доступный из двоичных «разработчиков» загрузок. Расширение PECL-расширений часто по-прежнему не является тривиальным, поскольку многие разработчики не тестируют на окнах, что требует некоторых усыновлений, особенно при использовании сторонних библиотек – johannes

1

Установщик PECL загружает исходный код расширения и пытается скомпилировать его с вашим местным компилятором C. Проблема в том, что весь процесс разработан для Unix-систем, где компилятор C доступен или может быть легко установлен. Настройка среды для компиляции кода C под Windows довольно усложняется.

Идеальное решение - получить DLL-файл, который кто-то уже скомпилировал. Для этого был сайт pcle4win. Тем не менее, в настоящее время нет официального хранилища для загрузки PECL библиотек DLL, так у вас есть только две альтернативы:

It» d быть здорово, что там был репозиторий DLL, но я ничего не знаю.

1

Источник php поставляется с набором сценариев конфигурации для Windows (с использованием хоста Windows-скриптов), который имитирует инструменты autoconf в отношении php. Если вы поместите код для расширения в каталог под каталогом/ext (где расположены все другие расширения, такие как bcmath, bzip, ...), вы можете позволить сценарию buildconf создать make-файл, содержащий правила сборки для этого (новое) расширение.
Существует пошаговое прохождение по адресу http://wiki.php.net/internals/windows/stepbystepbuild, которое кажется кратким, но выполнимым.

+1

Вы говорите Unix не Windows. расширение здания автономно без создания всего PHP на окнах невозможно. – johannes

+0

Да, я был намеренно расплывчатым, говоря «создайте make-файл, который содержит правила сборки». И что? Создайте ядро ​​и просто расширение, которое вы хотите использовать в качестве общего модуля, убедитесь, что параметры конфигурации соответствуют параметрам конфигурации php, которые вы используете, а затем используйте .dll с вашей «обычной» установкой php. Может быть проще, но это не ракетостроение, не так ли? Расширение mailparse даже не зависит от внешних библиотек. – VolkerK

2

В настоящее время PECL для окон находится в состоянии нечетной реформации. Причина в том, что я считаю, что они пытаются предоставить исходные версии VS2008. Я бы на самом деле предложил использовать Zend Server до тех пор, пока половина половины php-группы не получит все исправленное. Zend Server включает почти все расширения, которые вы можете найти в PECL, и все остальное, , если вам повезло, вы можете найти компиляцию самостоятельно.

+0

Итак, можем ли мы сказать, что Зенд делает это специально для некоторых возможных будущих денежных прибылей? – Pacerier

+0

@Pacerier Zend не владеет PHP, PHP использует Zend Engine. Группа Windows php представляет собой группу с открытым исходным кодом. Тем не менее, Zend Server - это корпоративное решение от Zend для денежной выгоды. Вероятно, поэтому они добавили наиболее распространенные модули в Zend Server для Windows. –

Смежные вопросы