web-dev-qa-db-ja.com

Mac OS LionのMAMPにPECLをインストールするときにOAUTHで問題が発生する

私はphpサーバーを設定するのが初めてで、他の関連する投稿を行っていましたが、私と同じエラーは誰にもないようです。 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にバンドルされており、そのまま使用できます。

更新:

他の場所で投稿を読んで、インストールパスを保持する構成ファイルのデータが正しくないことを示唆しているため、次のファイルの値を変更しました。

/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

繰り返しますが、何が起こっていますか?

27
David Chen

私はこれが古いことを知っていますが、同様の問題を抱えながらこの質問を見つけました。

MAMPには、PHPソースの束は含まれていません。

  • MAMPコンポーネントをダウンロードして構成する
  • URL: http://www.mamp.info/en/downloads/index.html (つまり、MAMP_components_2.0.2.Zip)
  • MAMP_components_2.0.2.Zipを解凍します
  • Php-5.x.x.tar.gzファイルを特定します(5.x.xはPHPのバージョンです)
  • Php> 5.4.10を使用している場合は、ソースを http://php.net/releases からダウンロードします。これは、MAMPコンポーネントのダウンロードに含まれていないためです(コメントにクレジットpulkitsinghal)
  • PHPソースのディレクトリを作成します。

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

  • Php-5.x.x.tar.gzを/Applications/MAMP/bin/php/php5.*/includeまたは/ Applications/MAMP/bin/php5/includeに解凍します。

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

  • Php-5.x.xディレクトリの名前をphp(バージョン番号なし)に変更します。

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

  • 構成PHPソース(必要なファイル、つまりzend_config.h、tsrm_config.hなどを作成します):

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

    ./configure

プロセスは別の修正のためのものでしたが、これによりphp.hが見つからないという問題が解決しました

私が答えを見つけた場所へのクレジット-:

トーマスハンターブログ

Googleドキュメントの詳細プロセス

65
Stephen

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を実行して、プラットフォームのソースコードを構成します(この手順がないと、peclのインストールは一連のヘッダーファイルの検索に失敗します)。
  4. peclインストールを再試行してください

(ほとんど同じであるスティーブンの答えのおかげで)

29
James Newell

これはスティーブンの答えとグレッグのコメントを補完するものです

OSX 10.10.2でphp 5.6.2用にxdebug 2.3.2をコンパイルすると、

「zend_config.h」ファイルが見つかりません

phpフォルダーの./configureに次のオプションを追加するまでエラーが発生します。

./configure --without-iconv

Cameron Browningへのクレジット

6
beniguet

PECLモジュールはコンパイルされたモジュールであり、それらをインストールするには、PHPヘッダーが必要です。php.net/ downloads.phpでヘッダーを見つけることができます。 PHP version。その後、これを実行できます: Installing PHP OAuth MAMP環境

1
sonique