必要な環境
- ウェブサーバ
- PHP 5.2 以降
- PEAR の HTTP_Request2 と HTTP_OAuth 及びその依存するモジュール
- 文字コードは UTF-8 環境を前提にしています。
環境設定
configurable_variables.php の設定
YANMAH2 をウェブサーバにアップロードする前に、configurable_variables.php をテキストエディタで開き、必要な箇所を編集してください。特に $admin_name と $admin_url には必ず適切な内容に書き替えてください。また $conkey と $conkey_sec の設定も必要になります。以下に記入例を示します。
//**************************************************** //このプログラムを設置・管理する責任者名を記入する。 $admin_name = "はいく野あい子"; //上の設置者と連絡をとる手段、またはその情報を含む URLを記入する。 $admin_url = "http://h.hatena.ne.jp/Haikuno_Ico/"; //**************************************************** //エントリの表示文字数制限の基準値(文字幅) $entry_limit = 560; //インクルードパスの設定。"default" でシステムの設定をそのまま使用する。 //パスを記入するとそのパスが追加される。 $extra_include_path = "/var/www/path/to/directory/PEAR"; //モバイルゲートウェイの URL $mobile_gateway = "http://www.google.co.jp/gwt/n?u="; //利用するハイクのホスト(h.hatena.ne.jp|h.hatena.com) $haiku_host = "h.hatena.ne.jp"; //ハイク公式の URL $haiku_official_url = "http://{$haiku_host}/mobile/"; //API のベース URL $api_base_url = "http://{$haiku_host}/api/"; //OAuth コンシューマキー $conkey = "**************"; //OAuth コンシューマキー・シークレット $conkey_sec = "*********************"; //設置するウェブサイト名称 $site_name = "はてなハイク 非公式モバイル版"; //サイト名のキャプション $site_name_caption = "@あい子のサイト"; //セッションクッキーの有効期間(秒) $session_cookie_expire = 3600 * 24 * 7; //セッションデータの有効期間(秒) $session_file_lifetime = $session_cookie_expire; //セッションデータの一時保存ディレクトリ $custom_session_save_path = 'default'; //セッションファイルに対するガベージコレクタの作動率(array(分子, 分母)) //array('default','default') ならサーバの設定が使われる。 $session_gc_prob = array('1', '100'); //画像縮小用のモバイルゲートウェイの URL $mobile_gateway_for_images = 'http://mgw.hatena.ne.jp/?'; //スタイルシートへのパス $style_sheet = './style.php'; //デフォルトの文字コード(UTF-8|SJIS|JIS|EUC-JP) $charcode = 'UTF-8'; //**************************************************** //各ページに共通のフッタを記入する。 $footer = <<<EOL <div id="footer"> <address> はてなハイク by <a href="http://mobile.hatena.ne.jp/">はてな</a><br /> {$product_name_abbr} PHP scripts by <a href="{$mobile_gateway}{$project_url}">{$project_name}</a><br /> 設置者:<a href="{$mobile_gateway}{$admin_url}">$admin_name</a><br /> <a href="./about.php">{$product_name_abbr} について</a> </address> </div> EOL; //ログインページに表示する注意書き。 = <<<EOL <div class="notice"> <ul> <li>上のリンクを開き、{$product_name_abbr} に読み書きの許可を与えてください。</li> <li>OAuth 認証の仕組みを利用して、はてなから情報を読み書きするための権限を取得します。</li> <li>ログインするには、Cookie に対応しているブラウザが必要です。</li> <li>セッション Cookie / サーバ側セッションデータの有効期間は {$session_cookie_expire} / {$session_file_lifetime} 秒に設定されています。</li> <li>セッションが有効な間でも通信エラーなどが発生した際にログイン状態が解除されることがあります。</li> <li>取得した認証情報は、この {$product_name_abbr} が設置されているサーバに一時的に保存され、投稿などの際にはてなに送信されます。利用後、サーバから明示的に消去したい場合は、ログアウトしてください。</li> </ul> </div> EOL; //ログイン時に表示する文の部品。 //"ログインしました。あなたは{$lot_one}{名前}({id:hatenaid})です。 //{$lot_two}ハイクしよう。" $lot_one = array("猫とラーメンのトリコ", "邪神の眷族", "鳥類の王", ); = array("今日も元気に", "今日もハイク、明日もハイク、これじゃ毎日", "迷ったら", );
他に場合によって重要になる設定は $extra_include_path と $custom_session_save_pathです。これについては後述します。また、$footer にはアクセス解析用のコードなども含めることができます。
$entry_limit の値は、タイムラインで長文の後ろを切り落とすまでの長さの基準値で、「文字幅」単位です。おおむねいわゆる半角文字を1、全角文字を2として数えます。
OAuth 認証用のコンシューマキーについて
YANMAH2 は OAuth 認証を使ってはてなハイクの読み書きを行ないます。このために必要となるコンシューマキーは、配布物に同梱されていません。各自 https://www.hatena.ne.jp/自分のはてな ID/config/auth/develop からアプリケーションの登録を行ない、取得した OAuth Consumer Key と OAuth Consumer Secret をそれぞれ $conkey、$conkey_sec に設定してください。なお、アプリケーション登録時には「承認を求める操作」の内 read_public、write_public、write_private の三つにチェックを入れる必要があります。
PEAR の HTTP_Request2 並びに HTTP_OAuth パッケージ及びインクルードパスについて
お使いのサーバに PEAR の HTTP_Request2 並びに HTTP_OAuth とこれらが依存するモジュールがインストールされていないと、YANMAH2 の実行時にはてなハイク API へのアクセスができないためエラーが出てしまいます。現在のところ、HTTP_OAuth は HTTP_Request2 に、HTTP_Request2 は Net_URL2 に依存しているため、結果的にはこの三つのモジュールが必要になります。もし自分で全てを管理しているサーバであれば、pear コマンドでこれらのパッケージをインストールしてください(GNU/Linux ディストリビューションでは apt-get などでインストールできる場合もあります)。
レンタルサーバなどでは、管理者に相談するか、go-pear を使うなどして自分が書き込み権限を持っているディレクトリにこれらのモジュールを設置してください。後者の場合は、php.ini か .htaccess を編集して、PEAR をアップロードしたディレクトリに PHP のインクルードパスを通す必要があります。しかしそのサーバでユーザによる php.ini や .htaccess の編集が許可されていない場合でも、上記 configurable_variables.php の $extra_include_path を設定することで YANMAH2 に PEAR パッケージを読み込ませることができます。ここには、スラッシュから始まるサーバ上でのそのディレクトリへの絶対パスを記入してください。
サーバへの設置
YANMAH2 プロジェクトのリリース一覧からダウンロードした圧縮アーカイブを展開し、上記 configurable_variables.php の設定を終えたら、各 php ファイル、favicon.ico をウェブサーバにアップロードし、必要ならパーミッションを適切に変更してください。$style_sheet に標準の ./style.php 以外を指定している場合はそれを、./syle.php のママにしている場合はこれを必要なら編集してアップロードしてください。favicon.ico はお好みの物に差し替えても結構です。
product_definitions.php / configurable_variables.php / entry_processor.php / keywords_processor.php / post_proccessor.php については、他の php ファイルと同じディレクトリか、インクルードパスが通っているディレクトリに置いてください。これらファイルは他の php ファイルから呼び出されて各種の処理や環境変数の設定などを行うもので、ウェブブラウザから直接指定されても何も内容を返しません。
セッションデータを保存するディレクトリとガベージコレクトについて
上記 configurable_variables.php の $custom_session_save_path が "default" になっている場合は、そのウェブサーバで PHP に設定されたデフォルトのセッションデータ保存用ディレクトリが使われます。ここに $extra_include_path と同様に、サーバのファイルシステム上のあるディレクトリへのパスを代入すると、そのディレクトリが使われる様になります。
$custom_session_save_path にパスを設定する場合は、そのディレクトリを第三者に盗み見られない様に十分注意してください。これにはウェブサーバ上の公開領域外のディレクトリを使用することを推奨します。しかしそれができるかどうかに関わらず、ディレクトリのパーミッションは適切に設定してください。
古いセッションファイルを削除するガベージコレクタの作動確率を変更したい場合は、$session_gc_prob に数値の配列を設定してください。array('1', '100') なら100分の1という意味になります。array('default', 'default') ならサーバの設定が使われます。