6

我正在尝试让 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 Core 部分:

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
4

4 回答 4

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,就是这样。希望能帮助到你!:-)

于 2010-06-01T18:53:54.160 回答
0

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

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

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

于 2010-01-09T06:57:38.753 回答
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 你会看到成功了,所以不用担心,它会工作的.

于 2014-05-02T05:50:49.413 回答
0
  1. 从 sourceforge http://sourceforge.net/projects/mamp/files/mamp/2.1.2/下载 MAMP 组件
  2. 提取 zip 文件
  3. 在提取的文件夹中,您将看到几个 php 档案。提取与您安装的版本相对应的那个。(在我的例子中,我安装的版本是 5.5.9,但 mamp 组件中可用的最高版本是 5.4.4,所以我使用了它,因为无论如何我都要自己构建源代码)。
  4. 从终端 cd 进入您提取的 php 文件夹的 ext 文件夹,然后 cd 进入 xmlrpc 文件夹。
  5. 从终端运行以下命令

    。/配置

    制作

  6. 如果成功,请将 xmlrpc.so 从 builds 文件夹复制到 php 安装的 extensions 文件夹。
  7. 将 extension=xmlrpc.so 添加到 php.ini
于 2014-09-11T01:55:11.410 回答