English 中文(简体)
PHP xmlrpc extension and MAMP
原标题:

I am trying to get the xmlrpc extension to work for php5 in MAMP (1.8.4).

I checked what version of PHP 5 was installed:

$ /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

I downloaded the PHP 5.2.11 source bundles, and built a shared library for xmlrpc:

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

I copied these files into MAMP:

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

I added the extension setting to the ini file:

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

I restarted MAMP:

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

When I do a phpinfo the only reference to xmlrpc I find is in the PHP Core section:

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

I am trying to install Moodle and it still tells me that the xmlrpc extension is not available.

I m a PHP novice, so if someone could tell me how to confirm the extension is available or not that would be great, or at least some pointers on how to debug this further.

Thanks.

UPDATE: I found the PHP log file and it has the following entry:

[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
问题回答

This way worked for me:

  • Downloaded Moodle4Mac (Moodle is a software that needs PHP and xmlrpc, and it comes with a built-in XAMPP);
  • Copied xmlrpc.so from that package (mine was under /Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts-20090626) to MAMP s PHP extension folder (mine is /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/);
  • Added extension=xmlrpc.so to PHP.INI.

Restarted MAMP and that was it. Hope it helps! :-)

Are you using the MAMP bundle package from moodle website? http://download.moodle.org/download.php/macosx/Moodle4Mac-XAMPP-20.dmg This one should work.

The reason PHP failed to load extension may cause by architecture type, PHP and its extension must use the same architecture type parameter in CFLAG.

I was having similar problem, but I wasn t using MAMP, I compiled PHP using static linking, sometimes, Mac OS X has weired problem to load dynamic library.

Just be sure to move the xmlrpc.so file to the location /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/ (PHP version could be also 5.4 or 5.5) Then restart MAMP Then in your moodle install just click continue, it will still say that you should check the installation just continue. It will start installing and will finish installing all modules and components, when all installed press Command F (MAC) or Control F (Win) and search for xmlrpc.so You will see that is succeed, so don t worry, it will work.

  1. Download MAMP components from sourceforge http://sourceforge.net/projects/mamp/files/mamp/2.1.2/
  2. Extract the zip file
  3. Inside the extracted folder you will see several php archives. Extract the one corresponding to your installed version. (In my case, my installed version was 5.5.9, but the highest version available from mamp components was 5.4.4 so I used that since I was going to build the source myself anyway).
  4. From terminal cd into the ext folder of the php folder you extracted and then cd into the xmlrpc folder.
  5. Run the following commands from terminal

    ./configure

    make

  6. If successful, copy xmlrpc.so from the builds folder to the extensions folder of your php installation.
  7. Add extension=xmlrpc.so to php.ini




相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签