2010-01-08 88 views
6

我想獲得xmlrpc擴展爲php5在MAMP(1.8.4)中工作。PHP的xmlrpc擴展和MAMP

我檢查安裝什麼版本的PHP 5:

$ /Applications/MAMP/bin/php5/bin/php -v 
PHP 5.2.11 (cli) (built: Dec 12 2009 13:19:08) 
Copyright (c) 1997-2009 The PHP Group 
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies 
    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies 
    with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies 

我下載了PHP 5.2.11源包和專爲XMLRPC共享庫:

$ LIBS=-lresolv ./configure --prefix=/opt --with-xmlrpc=shared 
$ make 
$ ls modules 
xmlrpc.a xmlrpc.la xmlrpc.so 

我複製這些文件到MAMP:

$ cp modules/* /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/ 

我將擴展設置添加到ini文件中:

$ vi /Applications/MAMP/conf/php5/php.ini 
    extension=xmlrpc.so 

我重新啓動MAMP:

$ ./bin/stop.sh 
$ ./bin/start.sh 

當我做了phpinfoxmlrpc唯一的參考,我覺得是在PHP的核心部分:

xmlrpc_error_number => 0 => 0 
xmlrpc_errors => Off => Off 

我試圖安裝的Moodle和它仍然告訴我,xmlrpc擴展名不可用。

我是一個PHP新手,所以如果有人可以告訴我如何確認擴展是否可用,這將是偉大的,或至少有一些關於如何進一步調試的指針。

謝謝。

更新:我發現PHP的日誌文件,它具有以下條目:

[08-Jan-2010 23:37:52] PHP Warning: PHP Startup: Unable to load dynamic \ 
    library '/Applications/MAMP/bin/php5/lib/php/extensions/ \ 
    no-debug-non-zts- 20060613/xmlrpc.so' - (null) in Unknown on line 0 

回答

0

是否使用了MAMP捆綁包從Moodle的網站? http://download.moodle.org/download.php/macosx/Moodle4Mac-XAMPP-20.dmg這一個應該工作。

PHP無法加載擴展的原因可能是架構類型造成的,PHP及其擴展必須在CFLAG中使用相同的架構類型參數。

我有類似的問題,但我沒有使用MAMP,我使用靜態鏈接編譯PHP,有時,Mac OS X已經解決了加載動態庫的問題。

+0

我已經有甲基苯丙胺在我的機器上,以便想安裝進去。 我對CFLAGS一無所知,但是有沒有辦法找出CFLAG被用來構建MAMP附帶的PHP版本? (也許我應該在MAMP名單上提問)。 – 2010-01-09 13:32:20

+0

是的。我有'/Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/xmlrpc.so:通用包裝中的未知匹配體系結構在第0行'令人毛骨悚然的錯誤...你是如何解決它的? – 2012-07-02 05:23:29

+0

有關於此的任何解決方案?我得到同樣的問題,你:S – chifliiiii 2012-08-06 18:25:01

4

這種方式爲我工作:

  • 下載Moodle4Mac(Moodle是需要PHP和XMLRPC軟件,它帶有一個內置的XAMPP);
  • 從該軟件包複製xmlrpc.so(我的文件名爲/Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts-20090626)到MAMP的PHP擴展文件夾(我的文件是/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/);
  • 加入extension=xmlrpc.soPHP.INI

重新啓動的MAMP就是這樣。希望能幫助到你! :-)

+0

謝謝切斯特,希望能夠自己建造它。 – 2011-01-27 17:15:13

+0

是的,這將是最好的解決方案。但是,在我嘗試去做很多幾乎不存在的頭髮之後,我放棄了並開始挖掘現成的。如果您瞭解如何構建它,請告訴我們! – chesterbr 2011-02-08 02:08:55

+0

你可以分享單個xmlrpc.so文件嗎?它應該是幾KB,它將有助於緩慢連接,因爲Moodle是142MB。謝謝。 – 2012-07-02 05:05:09

0

只要確保將xmlrpc.so文件移動到位置/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/(PHP版本也可能是5.4或5。5) 然後重新啓動MAMP 然後在您的moodle安裝中,只需點擊繼續,它仍會說您應該檢查安裝是否繼續。 它將開始安裝,並將完成安裝所有模塊和組件,當所有安裝完成後按下Command F(MAC)或Control F(Win)並搜索xmlrpc.so 您將看到成功,所以不用擔心,它將工作。

0
  1. 從SourceForge http://sourceforge.net/projects/mamp/files/mamp/2.1.2/
  2. 下載MAMP組件把zip文件解壓
  3. 裏面提取的文件夾,你會看到幾個PHP檔案。提取對應於您的安裝版本的一個。 (在我的情況下,我的安裝版本是5.5.9,但mamp組件提供的最高版本是5.4.4,所以我使用了,因爲我自己也會自己構建源代碼)。
  4. 從終端cd進入您提取的php文件夾的ext文件夾,然後cd進入xmlrpc文件夾。
  5. 運行以下命令,從終端

    的./configure

    使

  6. 如果成功的話,複製xmlrpc.so從建立文件夾,你的PHP安裝的擴展文件夾中。
  7. 添加擴展= xmlrpc.so爲php.ini
+0

我發現本指南:[鏈接](http:// carlosjlaurel .com /?p = 47)我不得不使用php 5.5.26(在mamp上有5.6.x的問題) – massimilianoarceri 2016-02-16 10:38:27