2010/08/31

pear install --onlyreqdeps -f mail_mimedecode

空メールの処理を行おうとして、メールサーバーの設定をして、テスト的にメールを送信したら
下記のエラーがやたら発生する。

: Command died with status 255:


メールのエラーログを調べてみると、空メール受信をトリガーに起動するPHPファイルに問題があった。

php on line 5 PHP Fatal error:require_once(): Failed opening required 'Mail/mimeDecode.php'

さらに、「'Mail/mimeDecode.php'」ファイルを調べてみると、
インクルードしているはずの「mimeDecode.php」ファイルが無いではないか!


1.えーここで、急きょ、強制アップグレード。
   pear upgrade -f PEAR


  んで、Mail_Mimeをインストール
   pear install Mail_Mime


2.状況変わらずで、モジュール指定で、下記のコマンドを実行
   yum install php-pear-Mail-Mime

3.さらに状況変わらずで、「Mail_MimeDecode」で検索したら
  最近PEAR::Mail_Mimeから独立して、別パッケージになったとさ。。。

  っちっくしょーということで、下記コマンドを実行

   pear install --onlyreqdeps -f mail_mimedecode

   pear upgrade pear


もーPEARは好きじゃない。

2010/08/07

2010/08/05

セッションをDBに保持する方法

WEB開発を行っていると、時々、WEBサーバーが複数台構成で、ロードバランスしたりする場合などがあり、
セッション情報をDBに持つ場面があったりします。

この際、セッションをDBに持たせることにより解決しますが、その設定方法を記載します。

・前提
 Linux + PHP + MySQLでの開発

・方法
 1.php.iniのsession.save_handlerにuserを設定。(ini_set関数でも可)

 2.session_set_save_handler関数にてユーザー定義のセッション保存関数を設定。
   session_set_save_handler('open','close','read','write','destroy','clean');

via.http://jp.php.net/manual/ja/function.session-set-save-handler.php


 3.セッション保存用のテーブルを用意(※下記は必要に応じて変更してください。)

   CREATE TABLE sessions
   (
     id INTEGER NOT NULL AUTO_INCREMENT,
     session_id TEXT NOT NULL ,
     value TEXT,
     update DATETIME ,
     PRIMARY KEY (id) ,
     UNIQUE Index_1(session_id )
   ) 

 4.上記2で定義した下記の関数を設定します。
   open
   close
   read
   write
   destroy
   clean

  ex).セッション参照
function read($session_id)
{
$conn = mysql_connect('hostname_or_ip' , 'user', 'password');

   $session_id = mysql_real_escape_string($session_id);

   $query = "SELECT value FROM sessions WHERE session_id = '".$session_id."'";

$rows = mysql_query($query , $conn );

mysql_close($rows );

while ($row = mysql_fetch_array( $rows ))
{
$value = $row['data'];
}

return $value ;
}

2010/08/04

電子書籍の作成方法

電子書籍を作成し、実機(iPad)で確認した所、ページ毎に白紙ページが混ざっていました。

これの原因は、ページの縦のサイズが大きいのが原因でした。

ちなみに作成したのは、画面いっぱいに画像を表示するだけ電子書籍でしたが、
この画像の縦サイズが大きいために白紙ページが表示されていました。

画像サイズの縦を「760px」に設定したら白紙が表示されなくなりました。

※ちなみに770pxだと白紙が再び表示されます。

電子書籍の作成方法

iPadやiPhone、iPodTouchなどのiBooksに電子書籍を出す際、どのような手続きを踏めばよいのか不明なため調べてみました。

日本で iBooks を利用することができるのは暫く先の事らしいですが、iBooks のフォーマットが 「EPUB」というものであることが判明したので、作れないものか試してみました。

そもそも「EPUB(いーぱぶ)」とは
HTMLやWebブラウザソフトのオープン性を保持しつつ、インターネット接続が切断された状態のPDAやノートパソコンなどでも読書が継続できるようにダウンロード配信を前提にパッケージ化された、XHTMLのサブセット的なファイルフォーマット規格である。

via. http://ja.wikipedia.org/wiki/EPUB

「XHTMLのサブセット的なファイルフォーマット規格」とのことなので、XHTMLのタグが若干違うもの?との認識

取り敢えず、電子書籍の内容は、「XHTML + CSS」を利用するみたいです。
それをZIPして、拡張子を .epub に変えることで準備完了との事らしいです。



ではさっそく電子書籍の作成にチャレンジ!


日本語非対応なのですが、EPUBを作成するエディタがGOOGLEから出てるらしいので使ってみました。

Sigil
http://code.google.com/p/sigil/