2009/11/20 金曜日

phpが動いているのはモジュール?cgi?

Filed under: Apache — ne-zu @ 22:14:17 このエントリをはてなブックマークに追加

phpがモジュールモードで動いているか?cgiモードで動いているか?を知る方法 - purazumakoiの[はてな]

phpinfoを表示して

4行目あたり

CGIモード

Server API  : CGI

モジュールモード

Server API  : Apache

とか

Server API  : Apache 2.0 Handler

なるほどメモ。
いつか使うときがきそう。

2009/11/19 木曜日

1PHPファイルで3キャリア対応ケータイサイト

Filed under: モバイル — ne-zu @ 20:04:00 このエントリをはてなブックマークに追加

PHPを使って3分で作る3キャリア対応ケータイサイト | ke-tai.org

これは便利&面白い。
rewriteしてProxyのようにPHPをかまして、3キャリアのケータイサイトに対応させてます。
アイデアがいいなあ。

ぜひ活用させていただこうっ!

2009/11/17 火曜日

シリアライズした行データの復元 @ Zend Framework

Filed under: Zend Framework — ne-zu @ 19:53:33 このエントリをはてなブックマークに追加

Zend FrameworkでのZend_Db_Table_Row_Abstract型、シリアライズ(serialize,unserialize)するとテーブルのmetaデータを無くしてしまいます。

マニュアルを見ると

復元した行は、なぜ切断された状態なのですか?

シリアライズしたオブジェクトは、可読形式の文字列となります。 データベースのアカウントやパスワードといった情報を 暗号化せずにプレーンテキストにシリアライズして保存すると、 セキュリティ上問題となります。 そのようなデータを無防備な状態でテキストファイルに保存したりしたくはないでしょう。 またメールなどで攻撃者に覗き見られることも好まないはずです。 シリアライズされたオブジェクトは、 正しい認証情報を知らない限りデータベースにアクセスすることはできません。

Zend Framework: Documentation

と書いてあります。ごもっとも。テーブルデータを取り戻すには、

PHP:
  1. $rowClone = unserialize($serializedRow);
  2.  
  3. $bugs = new Bugs();
  4.  
  5. // この行をテーブルに再接続し、
  6. // データベースとの接続を復活させます
  7. $rowClone->setTable($bugs);
  8.  
  9. // これで、行の内容を変更して保存することができます
  10. $rowClone->bug_status = 'FIXED';
  11. $rowClone->save();

と、setTableで再接続させます。

rowsetごとキャッシュしてる場合は、

PHP:
  1. $rowset->setTable(new Bugs());

と、rowsetにテーブルのインスタンスを渡してやれば、再接続します。

英語ではReactivating a Row as Live Dataなどと書かれていますね。

行データをキャッシュから戻した場合は、リアクティベイティング(←言いにくい)をお忘れ無く!

2009/11/15 日曜日

任意のPHPコードをWordPressのウィジェットに変換してくれる『Widgetifyr』

Filed under: WordPress — ne-zu @ 23:13:03 このエントリをはてなブックマークに追加

任意のPHPコードをWordPressのウィジェットに変換してくれる『Widgetifyr』 - 100SHIKI ~ 世界のアイデアを日替わりで

これは一度使ってみたい。便利そうな雰囲気はバリバリする。

Google Analyticsから訪問数・PV数をPHPでゲットするサンプルコード

Filed under: Google — ne-zu @ 23:10:12 このエントリをはてなブックマークに追加

Google Analyticsから訪問数・PV数をPHPでゲットするサンプルコード:phpspot開発日誌

これはちょっと便利かも。結果をメールで飛ばしたりすれば無理なく管理できる。

使うにはcURLライブラリがいるので注意でっす。

たまたま使ってたubuntuに入ってなかったので

# apt-get install php5-curl

して入れました。

2009/11/5 木曜日

phpのzlibモジュールでコンテンツを圧縮

Filed under: 高速化, モジュール, さくらインターネット — ne-zu @ 19:38:27 このエントリをはてなブックマークに追加

さくらレンタルサーバはmod_deflateモジュールが入ってないので、PHP側でgzipしてうんぬん~というのをやっていたんだけど、これでよかったのだった。

PHPでコンテンツをgzip圧縮する方法 zlib編

gzip でコンテンツを圧縮することにより、ネットワークの負荷を
軽減させることができ、レスポンススピードの向上が期待できます。

しかしながら、mod_deflateが利用できない場合もあります。phpの拡張 zlib を利用することでコンテンツの圧縮をすることが可能になります。
ob_startとgzhandlerを使うのと異なり、ソースコードの変更は必要ありません。

さくらなどのレンタルサーバを借りている場合に有効な手段になります。

PHPの設定ファイル php.iniに下記設定を追加します。
/usr/local/etc/php/your-php.ini

zlib.output_compression=1

さくらのレンタルサーバの場合、$HOME/www/php.ini に書きます。

うーむ。簡単。
今だとさくらコンパネからphp.iniを修正できるので、そちらで書いても良いですね。

2009/11/1 日曜日

Zend_Db_Table_AbstractでZend_Cacheを利用して負荷軽減

Filed under: DB, Zend Framework — ne-zu @ 11:09:09 このエントリをはてなブックマークに追加

オデの日記@WEB系: Zend_Db_Table_AbstractでZend_Cacheを利用して負荷軽減

で、このZend_Db_Tableですが、生成する度にdiscribetable()というメソッドが呼ばれテーブル情報を取得します。とても便利なのですが、都度DB接続が行われ非効率すぎるのでZend_Cacheを利用してデータをキャッシュさせておきます。
discribeTable()が走るタイミングは
・insert()
・find()
・info()
を呼んだ時だそうです。

というわけでキャッシュを組み込みましょう。

PHP:
  1. $frontendOptions = array(
  2.         'automatic_serialization' => true
  3.     );
  4.     $backendOptions  = array(
  5.         'cache_dir'                => TMP_PATH
  6.     );
  7.    
  8.     $cache = Zend_Cache::factory(
  9.         'Core',
  10.         'File',
  11.         $frontendOptions,
  12.         $backendOptions
  13.     );
  14.     Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);

Powered by PHP-SeeD and WordPress ME