xFramework を eAcceleratorを使って動かす。 
月曜日, 12月 4, 2006, 07:06 AM -  PHP
はい、小堤です。
xFrameworkですが、アクセス毎にブートストラップが動作します。そのためソースキャッシュを独自で行いかなり高速化してあります。しかし、ファイルトランスファーの画像転送などがあるため、さらに早くしたほうがいいでしょう。

そこで、eAcceralatorというモジュールを使います。
eAccelerator自体は、ググればたくさんインストールの仕方がでてますが

cd /usr/local/src;
wget http://downloads.sourceforge.net/eaccel ... ror=jaist;
tar jxf eaccelerator-0.9.5.tar.bz2;
cd eaccelerator-0.9.5;
phpize;
./configure --enable-eaccelerator \
--with-eaccelerator-shared-memory \
--with-eaccelerator-sessions \
--with-eaccelerator-content-caching \
--with-eaccelerator-disassembler
make;
make install;

こんなかんじ。SourceForgeからDLするときに直リンクでいけないっぽいので、一回ブラウザでアクセスしてからになるのかな???
とりあえずここからDLしてくだされ。
http://sourceforge.net/project/showfile ... _id=122249

で、だ。
なんでこんな記事をかいているかというとですね。
PHP.5.2.0をつかってxFrameworkを動かしたときに。eAccelerator.0.9.5だと動かないんですよ。二回目のアクセスで画面真っ白くなります。
PHP.5.1.6+eAccelerator0.9.5ならOKなんですがね。
で、5.2.0で回避策を。

eAccelerator0.9.6-svn282-dev を使ってください。
http://snapshots.eaccelerator.net/eacce ... 282.tar.gz
からDLできますので、wgetで取得するURLを書き換えてくださればOKです。

これ、eAccelerator.0.9.6のスナップショットなので、まぁ0.9.6が出てきたときには直ってるんでしょう。こっちのソースをどうにかしないとだめかなぁと思ったのですが、さくっと直ってたので、うれしい限りです。 :)

コメントを書く   |  このエントリーのURL   |  related link   |   ( 3.1 / 27 )

O/Rマッピング xFramework LiveRecord 
木曜日, 11月 30, 2006, 04:35 AM -  PHP
ふぅ、ども。
いやいや、公開以来アクセス解析見てわいわい言ってます。
皆さんにきていただいて感謝感謝。これからもフレームワーク自体とコンテンツの更新がんばっていきますので、よろしくお願いいたします。

さて、いままさに実装中のLiveRecord。
これは次のxFramework.2.1.1で実装される機能なのですが、O/Rマッピングクラスです。

まー簡単に言うとSQL書かないで、データベースアクセスやろうみたいな感じのものです。

ActiveRecordというものが見ているといくつも存在していますが、それににてるのかな?と思います。ただちょっとfind,findallとかid,seqなど制約がある部分を解除したくて、独自仕様になっていると思いますが、それなりに使いやすいようなものになるように、がんばって実装しています。

2.1.1は、Preview版として近日、先出ししますので見てコメントもらえるとうれしいです。

こないだ書いたMySQLのMAX+1ってか、INSERT SELECTなんだけども、それに対応してあります。

いやぁ・・それにしてもこればっかりやってて寝る時間がない・・。

もう一息なのでがんばります:(


休憩がてら。


2 comments ( 36 views )   |  このエントリーのURL   |  related link   |   ( 3 / 25 )

SimpleXMLのシリアライズ 
木曜日, 11月 16, 2006, 11:52 PM -  PHP
久々にPHPネタをっと。
xFrameworkの次バージョンであるxFramework2.1.0の開発をやっていたときに気がついたことです。

PHP5から(細かいバージョン忘れた)SimpleXMLというXMLパーサ機能を備えたライブラリが使えるようになりました。SimpleXML自体の使い方はググればたくさん出てきます。

でだ。

通常オブジェクトであれ、配列であれシリアライズ(serialize)することで、それらを文字列化することができる。
そしてunserizliseすることで、もとのオブジェクトや配列に戻すことができる。
例えば配列をそのまま、ファイルに保存して、ファイルから文字列を呼び出して配列を復元するなどが容易に行える、とーっても便利なものなのですが・・。
が!しかし。

SimpleXMLオブジェクトをシリアライズ化してアンシリアライズしてもとにもどそうとしても、もとにもどせません(;_;)
正確に言うと、シリアライズ自体は成功するんだけども、アンシリアライズした時に、もとのSimpleXMLオブジェクト(SimpleXMLElementオブジェクト)に戻すことができません。

なぜだーって思いながら色々試したけど、だめでした。
他にも同じ現象の人がいたので、まーだめなんだろうなぁ、とあきらめました。
まだPHP5.2.0で検証していないので、わからないですが(PHP5.1.6で試しました)そのうちなおるだろっということで放置。

SimpleXMLのオブジェクトをシリアライズすれば、保存XMLの保存簡単じゃーんっておもったそこの人!ご注意くだされ。
逆にうまくいった人教えてください(他力本願)

Windows上でのSMTPD/POP3D 
日曜日, 11月 12, 2006, 12:28 AM -  PHP
PHPの開発を行う際にWindowsで開発を行う際にxammpなどを利用してスタンドアローンで開発している人は少なくないのではないでしょうか。
しかし、メールの送信プログラムに関してはFTPなどでLinuxサーバに乗せてテストするなどしていませんか?
実際にWindowsの中だけで完結させたいと思いませんか?
僕は前からそうしたいなぁと思っていながら時間が無かったため、しょうがなくそうしていたのですが、xammpのMercuryを使って送信することもできますが、設定が以外とめんどくさいです。
なので、今回はメールサーバとしてjamesを導入してみたいと思います。
http://james.terra-intl.com/ からダウンロードをしてきてください。
解凍すると「james」というフォルダがあるはずです。そのフォルダをC:\直下に移動します。
そうして、bin/run.batを実行すると起動できます。
これで終わりです。あとはPHPからメール送信プログラムを実行して見てください。

・・・。
で・・・コマンドラインでっぱなしなんですが・・・。
そう、実際使いたいときに毎回起動しないとだめなんですね。
めんどくさい。

なので、こいつをサービスとして登録します。
どうやら正当なやり方があるようですが、簡単に導入したいので EntryService というフリーソフトを使ってみます。
こいつにbin/run.batを追加して「自動」で起動するようにしてあげます。
これで終わりです。



コメントを書く   |  このエントリーのURL   |  related link   |   ( 2.9 / 36 )

xFramework2.1.0の動作テストの開始 
土曜日, 11月 11, 2006, 10:52 PM -  PHP
xFramework2.1.0の動作テストの開始だ。
おかげさまで今日も徹夜です、UNITテストも全部できてないからつくらないと・・・。

ついでだから小ネタを。

xFramework2.0.x系では、XMLを解析して配列化して利用しています。
さらに速度向上のため、その配列をserializeしてキャッシュを作成し、キャッシュが存在する場合はunserializeして高速化しています。
xFramework2.1.0では、simplaeXMLを利用するようになったので、この機構が無くなりました。
というかですね・・・simpleXMLオブジェクト、serializeできないんですよ。
serialize自体は成功するんだけども、unserializeしたときにちゃんと元に戻せません。
しかも、このキャッシュの機構を使わなくても、まぁ高速なので問題ないかなぁと思っている訳です。

ということで、simpleXMLのserializeでつまずいているときは、できないってことで・・。
(できる方法があるなら教えてください・・)

では、がんばりますー。
コメントを書く   |  このエントリーのURL   |  related link   |   ( 2.9 / 39 )


Back