0

好的,在搞了一天 Fink、Macports、Pecl 等各种事情之后,我设法在 OSX 上安装了 oauth.so 模块。

但是,我在本地使用MAMP,我认为它使用了自己的PHP版本(即在自己的位置),并且该模块已安装到PHP的主系统版本?

所以我从 MAMP 文件夹中运行了 PECL 的版本:

sudo /Applications/MAMP/bin/php5.2/bin/pecl install oauth

但它似乎已经将它安装在通用文件夹中

    ...
    Build process completed successfully
    Installing '/usr/lib/php/extensions/no-debug-non-zts-20090626/oauth.so'
    install ok: channel://pecl.php.net/oauth-1.0.0
    configuration option "php_ini" is not set to php.ini location
    You should add "extension=oauth.so" to php.ini

注意 /usr/lib/... 文件夹。但是 php.ini MAMP 正在使用,实际上在 /Applications/MAMP/bin/php5.2/lib/php/extensions/no-debug-non-zts-20060613

我认为这就像复制 .so 文件一样简单......但是希望太多了......

谁能帮助我,我怎样才能在正确的文件夹中安装这个扩展并让 php 知道它?

谢谢

4

4 回答 4

4

我在 Mac OSX 版本 10.7.4 上运行 MAMP 版本 1.9.6 并且遇到了同样的问题。

我检查了我的 MAMP php 错误日志/Applications/MAMP/logs/php_error.log

发现了这个错误

[22-Jul-2012 12:11:20] PHP 警告:PHP 启动:无法加载动态库 '/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626 /oauth.so' - dlopen(/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/oauth.so, 9):找不到合适的图像。发现:
        /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/oauth.so:mach-o,但第 0 行 Unknown 中的架构错误

我用以下方法修复了它:

  1. 从http://pecl.php.net/package/oauth下载源代码

    打开终端,导航到下载文件所在的位置,然后键入以下命令:

  2. tar xzvf oauth-1.1.0.tgz

  3. cd oauth-1.2.2/oauth-1.2.2

  4. phpize

  5. sudo ./configure MACOSX_DEPLOYMENT_TARGET=10.7 CFLAGS="-arch i386 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch i386 -g -Os -pipe" CXXFLAGS="-arch i386 -g -Os -pipe" LDFLAGS="-arch i386 -bind_at_load"

    注意:TARGET确保在上述命令中 键入正确的 Mac OSX 版本号。

  6. sudo make

  7. sudo make install

  8. sudo cp /usr/lib/php/extensions/no-debug-non-zts-20090626/oauth.so /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/oauth.so

  9. 在您最喜欢的编辑器中,打开php.ini(在我的情况下它位于 /Applications/MAMP/conf/php5.3/php.ini)并在扩展区域中添加以下行:

    extension=oauth.so

  10. 保存更改并重新启动 MAMP。您应该在 MAMP PHPINFO 页面中看到一个 oauth 条目。

于 2012-07-22T20:32:34.877 回答
0

您应该将 pecl 的 php_ini 设置设置为指向 MAMP 安装的 php.ini。所以:

sudo /Applications/MAMP/bin/php5.2/bin/pecl config-set /Applications/MAMP/conf/php.ini

这应该使 pecl 使用您当前的 MAMP php 配置

于 2011-04-18T18:42:17.763 回答
0

PECL 模块是编译模块,为了安装它们,你需要 PHP 头文件。您可以在 php.net/downloads.php 上找到标题,确保下载与您的 PHP 版本匹配的版本。然后你可以按照这个:在 MAMP 环境中安装 PHP OAuth

于 2014-06-18T00:15:00.717 回答
0
sudo /Applications/MAMP/bin/php/php7.4.12/bin/pear install HTTP_OAuth-0.3.2

使用上述命令在 MAMP 中安装 Oauth 库

然后你应该将“extension=oauth.so”添加到 php.ini

在 php.ini 文件中添加扩展后重新启动服务器

于 2021-06-25T04:48:34.083 回答