PHPを使うことが多くなりそうなので今後のためのちょっとしたメモ
■php.ini
・php.iniディレクティブ
設定を変更するときはまずここを見ること
・セッションのガベージコレクション関連の設定
session.gc_probability
session.gc_divisor
session.gc_maxlifetime
※httpd.confでもそうだけどphp.iniを変更したらサーバーを再起動しないと反映しない。
当たり前?
・register_globals
Onにしているとpostとかgetとか関係なく普通に変数に入ってしまうという設定です。
ようするに、http://www.aaa.com/index.php?test=1にリンクしてindex.php内の$testに値が$_GET["test"]とか
せずに上書きされたりします。詳細はgoogleとかで調べればすぐ出ます。
唐突に変数が現れて利用されている場合はそこらへんの設定を確認してみるといいみたいです。
古いサンプルで初期化もされていない変数が利用されてて、なんだこれは?と思い調べると、この設定のせいでした。
PHP4.2.0以前はこの設定がOnだったらしいです。
■PEARのインストール
・php4.4.4をインストールしpearをインストールしようとするとエラーになる問題
> Fatal error: Undefined class name 'pear' in C:\php\PEAR\go-pear.php on line 747とかいう
エラーが出る。なぜだ!ということで調べました。
結論を言えばpearモジュールの最新版をDLして
"phpインストールフォルダ"\PEAR\go-pear-bundle
に上書きすれば動作しました。
以下のリンクを辿れば詳細はだいたい分かりますが、pearにはいろいろ利用方法があります。
私はperlのppmみたいな使い方にしました。
http://www.go-pear.org/manual/ja/installation.php
http://www.y2sunlight.com/ground/?PHP5.0%2F6.PEAR%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB
http://papipookoo3.com/wp/?p=3
■セッションIDをDBで利用する
以下はセッションをDBで実現するときのサンプルです。
とても分かりやすく一発で動作できました。
_destroyはsession_destroyを読んだ時に呼ばれます。
_cleanはGCで初めの方に書いたphp.iniの"session.gc_"関連の設定で制御してます。