我正在与许多开发人员通过 Git 开展一个项目,现有代码库使用 PECL YAML PHP 扩展 (v1.0.1)。

我已经尝试了许多步骤来在我的 MAMP 服务器上安装 PECL YAML 扩展,但没有任何乐趣!

我假设其他开发人员在 Linux 上。

安装的前几次尝试在我的 php_error_log 中发现了这个错误:



经过大量时间的谷歌搜索后,我意识到我并不孤单,这是因为我使用“./pecl i yaml”编译的扩展是 64 位版本

“文件yaml.so”:
yaml.so:Mach-O 64 位包 x86_64

但是,将此与我的 MAMP 设置上的工作扩展名进行比较,即“文件 xdebug.so”:



所以我发现了一些博客,可以帮助我确定确切的问题。

无法在 32 位 MAMP 服务器上运行 64 位扩展 - 有道理。

我的安装过程是:

  • 下载PECL YAML源码
  • 将 tar 和 cd 提取到模块源
  • phpize 模块目录
  • 使用来自博客的命令运行 .configure:

  • 使
  • 将创建的模块从 modules/yaml.so 复制到 MAMP:


  • 上述解决方案似乎对除我之外的所有人都有效。

    我的错误日志现在报告这个:



    我现在已经花了几个小时在这上面,需要你的帮助。

    我实际上要做的就是在 PHP 中解析 YAML。

    我有两个选择:
  • 修复它并松一口气
  • 改用 PHP YAML 解析类,并在 future 避免此扩展

  • 选项 2 的问题是由于我无法安装扩展,代码库将发生变化。

    任何建议或解决方案将不胜感激。

    干杯

    最佳答案

    如果您安装了 Homebrew,那么您可以执行以下操作:

    brew install libyaml --universal
    

    否则安装最新的 libyaml

    您可以通过将 CFFLAGSLDFLAGS 设置为 -arch i386 -arch x86_64 来为 32 位和 64 位英特尔构建。

    然后,安装 PEAR/PECL(您也可以按照 here 的说明进行操作)
    wget http://pear.php.net/go-pear.phar
    sudo php -d detect_unicode=0 go-pear.phar
    

    默认情况下,它将安装在 ~/pear/ 目录中。现在运行
    sudo ~/pear/bin/pecl install yaml
    

    然后,照顾好so文件。

    这个 nice article 将演示如何手动安装 MAMP 堆栈。

    关于php - 在 MAMP 上安装 YAML Pecl PHP 扩展,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6716912/

    10-16 12:43