尝试在Mac OS狮子的MAMP中安装带有PECL的OAUTH时出现问题

我是新的设置php服务器,我已经去其他相关的post,似乎没有人有像我一样的错误。 我正在使用MAMP 2.0.2,并运行PHP 5.3.6,并试图在我的本地MAMP上安装oAuth,使用以下命令:

$ cd /Applications/MAMP/bin/php/php5.3.6/bin $ ./pecl install oauth 

但是,它返回这样的错误:

 Notice: unserialize(): Error at offset 276 of 1133 bytes in Config.php on line 1050 ERROR: The default config file is not a valid config file or is corrupted. 

发生什么事? PECL捆绑在MAMP中,应该是开箱即用的….

更新:

我在其他地方读了一篇文章,提示configuration文件的数据,其中包含安装path是不正确的,所以我改变了一些值在下面的文件:

 /Applications/MAMP/bin/php/php5.3.6/conf/pear.conf 

然后,我使用命令:

 $ ./pecl install oauth 

它开始下载并解压缩,但是当它尝试安装时,它会提供:

 creating libtool appending configuration tag "CXX" to libtool configure: creating ./config.status config.status: creating config.h running: make /bin/sh /private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/libtool --mode=compile cc -I. -I/private/tmp/pear/temp/oauth -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/include -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/main -I/private/tmp/pear/temp/oauth -I/Applications/MAMP/bin/php/php5.3.6/include/php -I/Applications/MAMP/bin/php/php5.3.6/include/php/main -I/Applications/MAMP/bin/php/php5.3.6/include/php/TSRM -I/Applications/MAMP/bin/php/php5.3.6/include/php/Zend -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -Wall -g -c /private/tmp/pear/temp/oauth/oauth.c -o oauth.lo mkdir .libs cc -I. -I/private/tmp/pear/temp/oauth -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/include -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/main -I/private/tmp/pear/temp/oauth -I/Applications/MAMP/bin/php/php5.3.6/include/php -I/Applications/MAMP/bin/php/php5.3.6/include/php/main -I/Applications/MAMP/bin/php/php5.3.6/include/php/TSRM -I/Applications/MAMP/bin/php/php5.3.6/include/php/Zend -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -Wall -g -c /private/tmp/pear/temp/oauth/oauth.c -fno-common -DPIC -o .libs/oauth.o In file included from /private/tmp/pear/temp/oauth/oauth.c:14: /private/tmp/pear/temp/oauth/php_oauth.h:20:10: fatal error: 'php.h' file not found include "php.h" ^ 1 error generated. make: *** [oauth.lo] Error 1 ERROR: `make' failed 

再一次,发生了什么?

我知道这是旧的,但我有一个类似的问题,但我发现这个问题。

MAMP不附带一堆PHP源代码

  • 下载MAMP组件并configuration
  • URL: http : //www.mamp.info/en/downloads/index.html (即MAMP_components_2.0.2.zip)
  • 解压你的MAMP_components_2.0.2.zip
  • 确定你的php-5.xxtar.gz文件(其中5.xx是你的PHP版本)
  • 如果您使用的是php> 5.4.10,那么请从http://php.net/releases下载源代码,因为它们不在MAMP组件下载(评论中的信用评分);
  • 为您的PHP源创build目录:

    mkdir -vp /Applications/MAMP/bin/php5/include

  • 将php-5.xxtar.gz解压到/Applications/MAMP/bin/php/php5.*/include或/ Applications / MAMP / bin / php5 / include:

    tar zxvf php-5.xxtar.gz -C /Applications/MAMP/bin/php/php5.?.??/include

  • 重命名你的php-5.xx目录到php(没有版本号):

    mv /Applications/MAMP/bin/php/php5.2.17/include/php-5.?.?? /Applications/ MAMP/bin/php/php5.2.17/include/php

  • configurationPHP源代码(它会创build必要的文件,例如zend_config.h,tsrm_config.h等):

    cd /Applications/MAMP/bin/php/php5.?.??/include/php

    ./configure

这个过程是为了另一个修复,但是这解决了与php.h没有被发现的问题

信贷到我find答案 – – :

托马斯·亨特博客

Google文档详述了stream程

我试图用MAMP pecl install -f ssh2时遇到同样的问题。

这是我如何解决它:

  1. MAMP不提供PHP 5.4.10的源代码档案,所以从php.net下载它
  2. 将源代码压缩文件解压到/Applications/MAMP/bin/php/php5.4.10/include/php
  3. 运行./configure为你的平台configuration源代码(没有这一步pecl安装将无法find一堆头文件)
  4. 重试您的pecl安装

(非常感谢斯蒂芬的答案,这几乎是相同的)

这是Stephen的回答和Greg的评论的补充

当在OSX 10.10.2上为php 5.6.2编译xdebug 2.3.2时,我无法摆脱

未find'zend_config.h'文件

错误,直到我将以下选项添加到PHP文件夹中的./configure:

./configure –without-iconv

学分卡梅伦布朗宁

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

Interesting Posts