ちょっとTwitterのAPIを使ってみたいなぁ、と思いまして、今さらながらPHPで簡単にAPIを扱えるPEARパッケージ、Services_Twitterを自分のレンタルしているcoreserverにインストールしてみました。
coreserverでは仕様上、pearコマンドでのPEARパッケージのインストールができません。なので今回はそういう環境の人のためのGo-PEARというパッケージマネージャを使ってPEARのインストールをしました。
環境
今回の環境は以下のとおりでした。一応。。
Go-PEARではPHP4.3.0以上でしか正常に動かないみたいです。
| サーバ | CORESERVER(プランA) |
| PHP ver. | 5.2系 |
| Go-PEAR ver. | 1.1.2 |
| Services_Twitter ver. | 0.5.1 |
ちなみにServices_Twitterには日本製のものとPEAR本家のものと両方あるみたいです。ここではPEAR本家のものをインストールしました。こちらのサイトに両方の比較が載っています。(ちょっと古いですが)
Services_Twitter-0.1.0 betaがリリースされたので日本のと比較してみた – 肉とご飯と甘いもの @ sotarok
Go-PEARの実行
Go-PEARを使ってPEARパッケージマネージャをインストールします。
手順はこんな感じ。すごく簡単です。
- Go-PEARのダウンロード
- PEARパッケージを管理するファイル群のためのディレクトリを用意。
- PEARパッケージをインストールするディレクトリを用意。(パーミッション変更)
- Go-PEARを実行し、パッケージマネージャをインストール。
- パッケージマネージャにBASIC認証を設定する。
まずはGo-PEARのダウンロードです。以下のページにアクセスし、ページをgo-pear.phpという名前で保存します。
http://pear.php.net/go-pear
FTPソフトを使ってgo-pear.phpをサーバ上にアップロードします。
go-pear.phpはパッケージマネージャのインストールに使うだけなので、ブラウザからアクセスできるところならアップする場所はどこでも良いです。
次にパッケージマネージャのファイル群が生成されるディレクトリを準備します。どこでもいいですが、
/public_html/pear-manager/ のように準備するとわかりやすいでしょう。
coreserverはPHPをセーフモードで実行するので、go-pear.phpを設置しただけではうまく機能しません。
なので設置したディレクトリと同じ場所に、以下のように記載した.htaccessをおいてPHPをCGIとして機能させます。
AddHandler application/x-httpd-phpcgi .php
ブラウザから先程のgo-pear.phpにアクセスします。
正常にアクセスできれば、「Welcome to go-pear 1.1.2!」というメッセージが表示されます。
「Next >>」を押して次のステップに進みます。
次の「Configuration」でPEARのパッケージをインストールするディレクトリを指定します。
このディレクトリはブラウザからアクセス出来る場所である必要はありません。
今回は /virtual/youraccount/pear/ (youraccountは自分のアカウントに変更)のようにディレクトリをつくり、このpearディレクトリ以下にパッケージがインストールするように設定します。
ここで注意するべきはこのディレクトリのパーミッションです。
プログラムがファイルを生成するので、パーミッションを「777」に設定する必要があります。
pearディレクトリを作っただけではインストール時にパーミッションをうまく変更できないので、さらに以下のディレクトリを作って、それぞれのディレクトリのパーミッションを「777」に設定します。
- /virtual/youraccount/pear/temp
- /virtual/youraccount/pear/bin
- /virtual/youraccount/pear/PEAR
そして「Configuration」の項目を設定していきます。今回は以下のようにしました。
| 1. Installation prefix ($prefix) | /virtual/youraccout/pear |
| 2. Temporary files directory | $prefix/temp |
| 3. Binaries directory | $prefix/bin |
| 4. PHP code directory ($php_dir) | $prefix/PEAR |
| 5. Documentation base directory | $php_dir/docs |
| 6. Data base directory | $php_dir/data |
| 7. Tests base directory | $php_dir/tests |
| 8. PEAR Installer cache directory | $php_dir/cache |
| 9. Cache TimeToLive | 300 |
| 10. Filename of WebFrontend | /virtual/youraccount/public_html/pear-manager/index.php |
| 11. php.exe path | /usr/local/bin/php |
1番目の項目のパスがPEARパッケージがインストールされるパスです。2~9はデフォルトのままです。10番目の項目にパッケージマネージャのためのディレクトリを指定します。
11番目の項目はcoreserverの仕様に従って、php.exeの場所を指定しました。
ちなみにこのConfigurationの上にあるPackagesの二つのチェックボックスですが、よくわからなければとりあえずチェックしてパッケージをインストールしておけば良いと思います。
Optionalは空のままにして、Installボタンを押します。成功すればしばらくして「Completed」となります。
「Warning!」とでてインストールが完了しない場合は作ったディレクトリのパーミッションを確認してください。
これでパッケージマネージャのインストールは完了です。しかし、今のままでは誰でもこのマネージャにアクセスできてしまうのでBASIC認証でパスワードを設定します。
以下のコードを .htaccess というファイル名で保存し、マネージャのある/public_html/pear-manager/ 以下におきます。.htpasswdはツールなどを使って別途作成してください。
AuthType Basic AuthName "Input your ID and Password." AuthUserFile /virtual/youraccount/public_html/pear-manager/.htpasswd require valid-user
今回はパスワードのある .htpasswd は .htaccess と同じディレクトリにあります。変更する場合はAuthUserFileの場所を変更してください。
インストールの手順は以上です。
あとは、インストールに利用したgo-pear.phpをサーバ上から削除しておきます。
インストールの手順は以下のサイトが参考になります。
its55 lab » coreserverにgo-pearをインストールする
Services_Twitterのインストール
やっとServices_Twitterのインストールです。先に述べた通り、このServices_TwitterはPHPでTwitterのAPIを簡単に扱うためのPEARパッケージです。これを使うとOAuthなどの認証も比較的簡単にできるそうです。
PEAR本家のページはこちら。
Services_Twitter
このServices_Twitterはいくつかのパッケージに依存しているので、他のパッケージも一緒にインストールします。
そうした依存関係も踏まえて、今回インストールするパッケージは全部で4つです。
- Net_URL2 (ver. 0.3.1)
- HTTP_Request2 (ver. 0.5.1)
- Services_Twitter (ver. 0.5.1)
- HTTP_OAuth (ver. 0.1.9)
パッケージマネージャのトップページに行き、左のメニューからPackage Searchを選択してこれらのパッケージをインストールすれば完了です。上から順にインストールすれば依存関係の警告もでないと思います。
これらのパッケージを使う際には、php側でinclude pathを追加する必要があります。
今回の場合は
$path = "/virtual/youraccount/pear/PEAR set_include_path(get_include_path() . PATH_SEPARATOR . $path);
のように書けばinclude()関数などでインストールしたパッケージを読み込むことができるようになります。
今回はインストールだけでしたが、これでTwitter APIを使う準備が整いました。
色々試してみたいと思います。
Using the Twitter API with PHP and PEAR
