スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PHP OAuthのエラー

Evernote APIのoauthサンプル(evernote-api-1.20)をPHPで動かすべくDLしてサーバにアップ。index.phpへアクセスしてみたところ、

The PHP OAuth Extension is not installed

というエラー表示。このエラーについてサンプル内を検索したら、以下のような記述を見つけた。どうやらOAuthの拡張機能が必要のようだ。

OAuth support is implemented using the <a href="http://www.php.net/manual/en/book.oauth.php">PHP OAuth Extension</a>

これを入れようと、サーバで、

# pecl install oauth

とコマンドしてみると、



running: make
/bin/sh /var/tmp/pear-build-root/oauth-1.2.2/libtool --mode=compile gcc -I. -I/tmp/tmpPckkzC/oauth-1.2.2 -DPHP_ATOM_INC -I/var/tmp/pear-build-root/oauth-1.2.2/include -I/var/tmp/pear-build-root/oauth-1.2.2/main -I/tmp/tmpPckkzC/oauth-1.2.2 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -DHAVE_CONFIG_H -g -O2 -Wall -g -c /tmp/tmpPckkzC/oauth-1.2.2/oauth.c -o oauth.lo
mkdir .libs
gcc -I. -I/tmp/tmpPckkzC/oauth-1.2.2 -DPHP_ATOM_INC -I/var/tmp/pear-build-root/oauth-1.2.2/include -I/var/tmp/pear-build-root/oauth-1.2.2/main -I/tmp/tmpPckkzC/oauth-1.2.2 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -DHAVE_CONFIG_H -g -O2 -Wall -g -c /tmp/tmpPckkzC/oauth-1.2.2/oauth.c -fPIC -DPIC -o .libs/oauth.o
In file included from /tmp/tmpPckkzC/oauth-1.2.2/oauth.c:14:
/tmp/tmpPckkzC/oauth-1.2.2/php_oauth.h:47:31: error: ext/pcre/php_pcre.h: No such file or directory
/tmp/tmpPckkzC/oauth-1.2.2/oauth.c: In function 'php_so_object_new':
/tmp/tmpPckkzC/oauth-1.2.2/oauth.c:178: warning: unused variable 'tmp'
/tmp/tmpPckkzC/oauth-1.2.2/oauth.c: In function 'oauth_http_build_query':
/tmp/tmpPckkzC/oauth-1.2.2/oauth.c:617: warning: dereferencing type-punned pointer will break strict-aliasing rules
make: *** [oauth.lo] エラー 1

エラーが出て止まる。php_pcre.hが無いと言ってるのはわかるが、どうすればとググるもなかなか見つからなかったが、とってもぴったりなのを発見。

・Memo/PHP/PECL/oauth - DEX Lab
http://dex.qp.land.to/pukiwiki/index.php?Memo%2FPHP%2FPECL%2Foauth

CentOS5.4 php5.1.6で「ext/pcre/php_pcre.h: No such file or directory」エラーの場合。rpm版だと入っていないので、ソースから該当部分を取得

ここの説明にあるように、PHP5.1.6を一旦ダウンロードして、該当部分をコピーでいけた。


# yum install php-devel php-pear pcre-devel curl-devel
# wget http://museum.php.net/php5/php-5.1.6.tar.gz
# tar xvfz php-5.1.6.tar.gz
# cp -r php-5.1.6/ext/pcre /usr/include/php/ext/


「pecl install oauth」というコマンドだと、最新版の1.2.2をインストールしようとする。これだと、PHP5.1.6では動かないようだ。上記にあるように、とりあえず古い版を入れてみた。

#pecl install oauth-0.99.9



/etc/php.d/oauth.iniのiniファイルを新規作成するか、php.iniに

extension=oauth.so


と記述してApacheを再起動させると、やっとphpinfo()で認識してくれた。

Screenshot_1.png
スポンサーサイト

PHPのバージョンを確認する

■コマンドで確認する方法(サーバにインストールされているか?)

#php -v


CentOS5の場合、以下のように表示されます。

PHP 5.1.6 (cli) (built: Sep 20 2007 10:16:10)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies



もし、インストールされていなければ、GUIの画面から、
[アプリケーション] - [ソフトウェアの追加/削除]でパッケージマネージャを起動し、一覧よりチェックを付けてインストールを行ってください。

■PHPプログラムで確認する(Apatch上で正しく動作しているか?)
<?
phpinfo()
?>

PHPが正しく動作していれば、下記のように表示されます。

動作画面

tag : バージョン ソフトウェアの追加/削除

プロフィール

白鯖

Author:白鯖
安い寄せ集めの部品で構築し、CentOS5をインストールしました。主に、Webサーバ、アプリケーションサーバとして運用中。ハードの知識はあまり無いプログラマですが、全部自前で作るのは、手間はかかるけど、レン鯖より面白いです。

ハードウェア構成

カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
Max TDP控え目なCPU
安くて静音なクーラー
検索フォーム
ユーザータグ
RSSフィード
はてな
スポンサード リンク
おすすめ書籍
twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。