我试图让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)
您是否使用moodle网站上的MAMP捆绑包?http://download.moodle.org/download.php/macosx/Moodle4Mac-XAMPP-20.dmg这个应该可以。
PHP 加载扩展失败的原因可能是架构类型导致的,PHP 及其扩展必须在 CFLAG 中使用相同的架构类型参数。
我遇到了类似的问题,但我没有使用MAMP,我使用静态链接编译PHP,有时,Mac OS X 加载动态库时出现奇怪的问题。