ZendServer CEの環境変数
ローカルになんちゃって、IBM i(AS/400)の環境を作りたくて(個人では買えないですから...)、DB2 for WindowsとZend Sever CE 5.0 for Windowsを入れました。
そもそも、イケない感じはしていたのですが、DB2の入れた順序が悪いらしく、
の順で入れたら、変な挙動をして、一旦アンインストールと思い実行したのですが、待てど暮らせど終了せず、途中で失敗してからは、それはもう最悪の状況になりました。仕方なくレジストリを、地道に修正して、ようやく復帰しました。
今度は、バージョンの古い順に入れたら、おかしな動きはなくなりました。
DB2 V9以降は、複数のDB2を入れても、DB2_COPYという状態で、複数のインストールが出来ます。
DB2には、デフォルトDB2コピーの切り替えが可能な”デフォルトDB2選択ウィザード”([プログラム]→[IBM DB2]→[セットアップ・ツール]→[デフォルトDB2選択ウィザード])が、付属していて、システム環境変数やレジストリを書き換えてくれるようです。
無事切り替えてから、ヤレヤレとホットしたのもつかの間、PHPのアプリケーションでやりたかった、ローカルのDB2 Winの参照が出来ず、DB2 iを参照してしまいます。再起動しても何をしても結果は変わらず、システム環境変数の”PATH”も”DB2INSTANCE”もDB2 Winに変わっているのに...。
”var_dump($_SERVER)”で、環境変数を調べてみると、”PATH”がDB2 iのモジュールに通っている。プロセスブラウザで”Apacheのプロセス(httpd.exe)”を見てももちろん同じ、他のプロセスを見ると、現在のシステム環境変数になっているのにと、そんな状況。
httpd.confに何かあるのか?SetEnvとかしなきゃ駄目?→何もない..。
zend.confに何かあるのか?→何もない..。
php.iniに何か有るのか?→何もない..。
ZendEnablerConf.xml?→Coreには、なかったUTF-8でBOMがエラーで、インストール時のデフォルトでコケたぐらいのファイル。自分が認識が甘かった...。orz
ここにモロに、環境変数が記述してあります。こんな感じで...。
<Environment> <Variable name="DB2INSTANCE" value="DB2" /> <Variable name="PHP_FCGI_MAX_REQUESTS" value="10000" /> <Variable name="TEMP" value="C:\DOCUME~1\ushida\LOCALS~1\Temp" /> <Variable name="PHPRC" value="C:\Program Files\Zend\ZendServer\etc" /> <Variable name="PATH" value="...;C:\Program Files\IBM\SQLLIB\BIN;..." /> </Environment>
”DB2INSTANCE”と”PATH”を変更したら、無事ローカルのDB2 WinとDB iの切り替えが出来ました。これで同じカタログのデータベースを作成すれば、ローカルだけで開発とデモが出来そうです。(X60が頑張りすぎで、ソロソロやばいかもしれません)
あとはデータをDB2 iからDB2 Winへ簡単にレプリケーション出来ないかなぁ?
手動でエクスポート&インポートって何だか原始的だし