gpt4 book ai didi

php - 在 MAMP 上安装 YAML Pecl PHP 扩展

转载 作者:可可西里 更新时间:2023-10-31 22:09:34 24 4
gpt4 key购买 nike

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

我已经尝试了很多步骤来在我的 MAMP 服务器上安装 PECL YAML 扩展,但没有成功!

我假设其他开发人员使用的是 Linux。

最初几次安装尝试在我的 php_error_log 中显示了这个错误:

"[16-Jul-2011 11:29:13] PHP Warning: PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/yaml.so' - dlopen(/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/yaml.so, 9): no suitable image found. Did find: /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/yaml.so: mach-o, but wrong architecture in Unknown on line 0"

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

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

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

xdebug.so: Mach-O universal binary with 2 architectures
xdebug.so (for architecture ppc): Mach-O bundle ppc
xdebug.so (for architecture i386): Mach-O bundle i386

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

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

我的安装过程是:

  • 下载 PECL YAML 源代码
  • 将tar和cd解压到模块源
  • 在模块目录中进行 phpize
  • 使用博客中的命令运行 .configure:

    "CFLAGS='-O3 -fno-common -arch i386 -arch x86_64 -g -Os' LDFLAGS='-O3 -arch i386 -arch x86_64′ CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64 -g -Os' ./configure –-disable-dependancy-tracking –-disable-shared -enable-static"

  • 制作

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

    "sudo cp modules/yaml.so /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/."

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

我的错误日志现在报告如下:

[16-Jul-2011 11:09:25] PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'yaml.so' in Unknown on line 0

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

我实际上想做的就是用 PHP 解析 YAML。

我有两个选择:

  1. 修复它并松一口气

  2. 改用 PHP YAML 解析类,并在将来避免此扩展

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

如有任何建议或解决方案,我们将不胜感激。

干杯

最佳答案

如果你有Homebrew安装然后你可以这样做:

brew install libyaml --universal

否则安装最新的libyaml .

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

然后,安装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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com