PHP xmlrpc扩展和MAMP

时间:2010-01-08 23:43:03

标签: php mamp moodle

我试图让xmlrpc扩展在MAMP(1.8.4)中为php5工作。

我检查了安装了什么版本的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

当我执行phpinfo时,我发现xmlrpc的唯一引用位于PHP核心部分:

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

我正在尝试安装Moodle,它仍然告诉我xmlrpc扩展名不可用。

我是一个PHP新手,所以如果有人可以告诉我如何确认扩展是否可用,那将是非常好的,或至少有一些关于如何进一步调试的指针。

感谢。

UPDATE :我找到了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

4 个答案:

答案 0 :(得分: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.so添加到PHP.INI

重新启动MAMP就是这样。希望能帮助到你! : - )

答案 1 :(得分:0)

您是否正在使用moodle网站上的MAMP捆绑包? http://download.moodle.org/download.php/macosx/Moodle4Mac-XAMPP-20.dmg这个应该有用。

PHP无法加载扩展的原因可能是由于体系结构类型,PHP及其扩展必须在CFLAG中使用相同的体系结构类型参数。

我遇到了类似的问题,但我没有使用MAMP,我使用静态链接编译PHP,有时,Mac OS X已经遇到了加载动态库的问题。

答案 2 :(得分:0)

请务必将xmlrpc.so文件移至/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/(PHP版本也可以是5.4)或5.5) 然后重启MAMP 然后在你的moodle安装中点击继续,它仍然会说你应该继续检查安装。 它将开始安装并将完成所有模块和组件的安装,当所有安装时按下命令F(MAC)或控制F(Win)并搜索xmlrpc.so 你会看到这是成功的,所以不要担心,它会起作用。

答案 3 :(得分:0)

  1. 从sourceforge http://sourceforge.net/projects/mamp/files/mamp/2.1.2/
  2. 下载MAMP组件
  3. 解压缩zip文件
  4. 在解压缩的文件夹中,您将看到几个php档案。提取与您安装的版本对应的一个。 (在我的情况下,我安装的版本是5.5.9,但是mamp组件提供的最高版本是5.4.4,所以我使用它,因为我打算自己构建源代码。)
  5. 从终端cd进入你解压缩的php文件夹的ext文件夹,然后cd进入xmlrpc文件夹。
  6. 从终端

    运行以下命令

    ./配置

  7. 如果成功,请将xmlrpc.so从builds文件夹复制到php安装的extensions文件夹。
  8. 将extension = xmlrpc.so添加到php.ini