PHP xmlrpc扩展和MAMP

Joh*_*yes 6 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
Run Code Online (Sandbox Code Playgroud)

我下载了PHP 5.2.11源代码包,并为xmlrpc构建了一个共享库:

$ LIBS=-lresolv ./configure --prefix=/opt --with-xmlrpc=shared
$ make
$ ls modules
xmlrpc.a    xmlrpc.la   xmlrpc.so
Run Code Online (Sandbox Code Playgroud)

我将这些文件复制到MAMP中:

$ cp modules/* /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/
Run Code Online (Sandbox Code Playgroud)

我将扩展设置添加到ini文件中:

$ vi /Applications/MAMP/conf/php5/php.ini
  extension=xmlrpc.so
Run Code Online (Sandbox Code Playgroud)

我重启了MAMP:

$ ./bin/stop.sh
$ ./bin/start.sh
Run Code Online (Sandbox Code Playgroud)

当我做一个phpinfo唯一的参考xmlrpc我发现是在PHP核心部分:

xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off
Run Code Online (Sandbox Code Playgroud)

我正在尝试安装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
Run Code Online (Sandbox Code Playgroud)

Don*_*Cai 0

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

PHP 加载扩展失败的原因可能是架构类型导致的,PHP 及其扩展必须在 CFLAG 中使用相同的架构类型参数。

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