2009年9月28日月曜日

PostgreSQL データベースサイズ

データベースのサイズ
select pg_database_size('DB名');

テーブルやインデックスのサイズ
select pg_relation_size('テーブル名');

テーブルスペースのサイズ
SELECT pg_tablespace_size('テーブル名');

カラムのサイズ
SELECT pg_column_size(カラム名) FROM テーブル名;

abcという文字列のサイズ
SELECT pg_column_size('abc');
abcという文字列のサイズをTEXT型で
SELECT pg_column_size('abc'::TEXT);


単位がわかりにくくて見にくいとき
SELECT pg_size_pretty(pg_database_size('DB名'));

2009年1月23日金曜日

Yiiを使ってみる

phpのフレームワークのいいのがないかと再度探している途中。
  • CodeIgniter
  • kohana
  • Yii
あたりかな。

CodeIgniterはセッション管理が独自なので携帯サイトなんかで厄介そうという事と、そろそろPHP5の環境も出揃ってきているので、kohanaやYiiでどうだろうかと。

kohanaはPHP5.2.3以上が必要とある。
レンサバ利用を考えると、5.2はちょっときついかも。(確かこの間CentOS入れたときは5.1が入って滝がする。)

というわけで、Yiiしてみる事に。
英語苦手なもんで、日本語情報少なくてちょっと面倒です。

環境はWinXP、Apache2.2、PHP5.2.3、sqlite、PostgreSQL8.2など。
早速躓きました。
yiicというコマンドラインの自動コード作成コマンドを利用するのだが、コンソールでコマンド打っても表示されない。

設定を変えてみたり、PHPのバージョンを変えてみたりしたところ、下記の設定が悪いようだ。
output_handler = mb_output_handler

デフォルトは
output_handler = 
なので、何でこんな設定にしたんだろう。

半日ほど悩みましたがひとまず解決。

mb_output_handlerを指定することでバッファリングされてコンソールに表示されない様になってたんだろうか。
ちなみにバッファー量を減らして見たらどうかと思い、output_buffer=32とかして見えないながらもhelpコマンド何回か打ってみましたが表示されませんでした。

今回はphp.ini自体を直しましたが、以下の方法でも対応可能。

php.iniを新しく別に用意して、
>php -c 新しく用意したphp.iniのパス YiiRoot/framework/yiic.php webapp 新規webappのディレクトリ

問題の設定のみ上書き実行時に上書き
>php -d output_handler=  YiiRoot/framework/yiic.php webapp 新規webappのディレクトリ


2008年8月17日日曜日

WindowsでApacheを複数起動

既にインストールしてあるApacheを設定を変えてもう一つ起動したい場合、次の要領でもう一つサービスに追加する。

1.設定ファイルの作成

元の設定ファイル(httpd.conf等)をコピーして別の設定ファイルを作成する。
今回はPHP4用のApacheとPHP5用のApacheを作成したいので、現在PHP4を動かす設定のhttpd.confをコピーしてhttpd_php5.confにする。
変更箇所は、以下の通り。
(PHP4がC:\php、PHP5がC:\php5に解凍されて設置されている)

# httpd.conf
Listen 80

LoadModule php4_module "C:/php/php4apache2.dll"
PHPIniDir "C:/php"



# httpd_php5.conf
Listen 10000

LoadModule php5_module "C:/php5/php5apache2.dll"
PHPIniDir "C:/php5"

※Listenするポートを変更するのを忘れずに。
※php.iniはそれぞれの環境に合わせて修正しておく。


2.Apacheをサービスに登録

コマンドプロンプトで、インストール済みのApacheのbinまでおりて行き、次のコマンドでApacheをサービスに登録する。

> apache -k install -n "Apache2php5" -f conf/httpd_php5.conf

オプション
-k install:サービスに登録
-n:サービス名
-f:コンフィグファイルのパス

ちなみに削除するには次のコマンド
> apache -k uninstall -n "Apache2php5"

これで登録できたら、サービスを開始すればOK。

2008年7月1日火曜日

お地蔵様の掃除

お地蔵様の掃除が回ってきました。
お地蔵様はいまや町内になく、近くの寺にあるらしい。
近くの寺といってもたくさんあるので、前に聞いたうろ覚えの寺の名前を頼りに探しに行く。
門を入っておくに進むと近くの町のお地蔵様の祠と2つ並んであるという我が町のお地蔵様の祠を発見。祠の横に町名も彫ってあるので間違いない。
預かっていた鍵で祠を開けます。
もともとお地蔵様をお祭りしていた家の方が右側の花を代えているらしいので左側の花を代えて掃除をすればいいはず。うまい具合というか、ちゃんと左の花が枯れています。
軽く掃き掃除、拭き掃除をして、水を代え、近くのスーパーで買った仏花を挿して終了。
いや~一仕事終了。

2008年6月27日金曜日

PHP文字化け対策

いいサイトを発見。
http://hain.jp/index.php/tech-j/2007/02/13/p125

設定の肝だけ抜粋
;; Disable Output Buffering
output_buffering = Off

;; Set HTTP header charset
; default_charset = EUC-JP

;; Set default language to Japanese
mbstring.language = Japanese

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = off

;; Set HTTP input encoding conversion to auto
mbstring.http_input = pass

;; Convert HTTP output to EUC-JP
mbstring.http_output = pass

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII

2008年6月19日木曜日

xpチューニング zipの中を調べない

xpでzipファイルがたくさんあるディレクトリを表示するのが遅い。
zipファイルの中を展開しているかららしい。
そこでこの機能をオフにしてやる方法はないかと調べたらありました。
http://journal.mycom.co.jp/column/winxp/018/index.html

以下方法だけ抜粋。

  1. <スタート>メニュー→<ファイル名を指定して実行>を選択。
  2. 名前欄に半角で「regsvr32 /u zipfldr.dll」と入力。
  3. <OK>ボタンをクリック。
  4. 結果を表わすダイアログが表示されたら<OK>ボタンをクリック。
  5. <スタート>メニュー→<ファイル名を指定して実行>を選択。
  6. 名前欄に半角で「regsvr32 /u cabview.dll」と入力。
  7. <OK>ボタンをクリック。
  8. 結果を表わすダイアログが表示されたら<OK>ボタンをクリック。

問題があれば下記の方法で戻す。
  1. <スタート>メニュー→<ファイル名を指定して実行>を選択。
  2. 名前欄に半角で「regsvr32 zipfldr.dll」と入力。
  3. <OK>ボタンをクリック。
  4. 結果を表わすダイアログが表示されたら<OK>ボタンをクリック。
  5. <スタート>メニュー→<ファイル名を指定して実行>を選択。
  6. 名前欄に半角で「regsvr32 cabview.dll」と入力。
  7. <OK>ボタンをクリック。
  8. 結果を表わすダイアログが表示されたら<OK>ボタンをクリック。