2010-01-12 105 views
15

我在這裏發現了一些相關的帖子,但沒有得到我的答案。所以再次張貼。
我將如何在Windows上安裝PECL擴展?假設我想要Windows XP上的PECL oAuth擴展。
我知道2種方法,但他們都沒有爲我工作。Windows的PECL擴展

  1. 該網站http://pecl4win.php.net/已停產數月。所以我不能下載DLL。有什麼地方可以下載DLL嗎?

  2. 運行命令 PECL安裝OAuth的0.99.9.tgz拋出的DSP oauth.dsp不存在錯誤

    我嘗試了幾個其他擴展也得到相同的錯誤。

我在這裏錯過了什麼?

回答

17

發佈,現在可以在這裏找到:
http://windows.php.net/downloads/pecl/releases/

如果中沒有您需要有你可能會問上在lists.php.net郵件列表PECL-dev的一個擴展。

+1

由於擴展的源代碼很容易獲得,因此不用直接提供特定的dll,而是直接發佈關於如何從源代碼構建pecl擴展dll的詳細指南。 我在這方面找到了一些文章,但仍不是很清楚。 – Varun 2010-01-15 14:03:07

+2

http://wiki.php.net/internals/windows/stepbystepbuild有一些說明。正如我在這裏對另一個答案的評論中所說:Windows上的構建系統目前不允許構建擴展單獨使用,但oyu必須從PHP源代碼樹構建。 要添加oauth,您必須在運行buildconf.bat之前將源文件放在php-src/ext/oauth中,或對buildconf.bat使用--extra-ext-dir(或類似的)選項。 – johannes 2010-01-16 15:16:39

+0

兩年後,我對之前的評論進行了更新:同時還有一個「phpize」工具,類似於Unix下載的「開發」下載的Unix工具。構建PECL擴展通常仍然不是微不足道的,因爲許多開發人員不需要在Windows上測試,這需要一些採用,特別是在使用第三方庫 – johannes 2012-05-15 13:31:16

1

PECL安裝程序會下載擴展的源代碼,並嘗試使用本地C編譯器進行編譯。問題是整個過程都是爲Unix系統設計的,其中C編譯器可用或可以輕鬆安裝。在Windows下設置編譯C代碼的環境相當複雜。

理想的解決方案是獲取某人已編譯的DLL文件。這就是pcle4win網站的用途。然而,目前尚無官方信息庫下載PECL的DLL,所以你只有兩個選擇:

這d很酷,有一個DLL庫在那裏,但我不知道任何。

1

這個php源代碼提供了一套windows配置腳本​​(使用windows腳本主機),它可以模擬autoconf工具,就php而言。如果將擴展的代碼放在/ ext目錄(其中所有其他擴展名如bcmath,bzip,...所在的目錄)下的目錄中,則可以讓buildconf -script創建一個包含該構建規則的生成文件(新)擴展。
http://wiki.php.net/internals/windows/stepbystepbuild有一步一步走過,這似乎是簡短但可行的。

+1

你說的Unix而不是Windows。無法在Windows上構建所有PHP的情況下獨立構建擴展是不可能的。 – johannes 2010-01-12 18:32:14

+0

是的,我故意含糊地說「創建一個包含構建規則的makefile」。所以呢?構建核心,並將其作爲共享模塊的擴展,確保配置參數與您正在使用的php包的配置參數匹配,然後將.dll與「常規」php安裝配合使用。可能會更容易,但它不是火箭科學,是嗎? mailparse擴展甚至不依賴於外部庫。 – VolkerK 2010-01-12 20:48:14

2

當前Windows的PECL處於奇怪的重組狀態。原因是我相信他們正在嘗試提供VS2008源代碼版本。我實際上建議現在使用Zend Server,直到php組的一半的窗口得到一切固定。 Zend Server幾乎包含了所有你可以在PECL中找到的擴展,以及其他一切,如果你很幸運,你可以自己找一個編譯器。

+0

那麼我們可以說Zend是爲了一些可能的未來貨幣收益而進行的嗎? – Pacerier 2014-10-26 18:56:14

+0

@Pacerier Zend不擁有PHP,PHP使用Zend引擎。 windows php組是一個開源組。也就是說,Zend Server是Zend的一個企業解決方案,可以帶來收益。這可能是爲什麼他們將最常用的模塊添加到Zend Server for Windows的原因。 – 2014-10-30 19:43:11