掲示板お問い合わせランダムジャンプ



この広告は30日以上更新がないブログに表示されております。 新しい記事を書くことで広告を消すことができます。

2008年08月11日
Windows用XAMPPでSynfonyする時の注意点
どうも最新の1.1.1の不具合らしいのだが、検索してもなかなか情報を見つけられなかったのでメモ書きしておく。
●「symfony propel:build-model」で「Cannot make static method Phing::printVersion()」というエラーが出る
「symfony propel:build-model」コマンド(1.1ではSymfonyのコマンドライン命令の文法も変更されたので注意。詳しくはこちらを参照)で上記のエラーが発生する。これはそこそこ有名な障害なようで、2chあたりでは「PEARに入ってるPhingが優先されているからこのエラーが出る」という情報がある。英語サイトでは主に以下の三つの解決策が提案されているようだ
  1. エラーを発生させているsfPhing.class.php を書き換える
  2. PEARからphing/phingをアンインストールする
  3. Symfony1.0に戻す
が……。残念ながら1.1.1では2.は動かない。他の、最新のPhingにしかないファイルを要求してくるのだ。
(正確にいうとCreoleSQLExecTask.php。これはSymfonyの中に組み込まれているのだが、PEARのPhing/Phingのファイル構造を前提とした位置を検索して「存在しない」というエラーを返してくる。ついでにいうと、このファイルを要求された位置にコピーしてもう一度動作させても、今度は本当にPEAR側のPhingにしかないファイル「PDOSQLExec.Task.php」を要求してくる)
もしかしたら他にもPEARを見ている処理があり、そちらが最新のPhingを要求しているのかもしれないが、どちらにしろSymfony組み込みのPhingでは動作しない。ということで、解決策は1.か3.なのだが……1.は本当に大丈夫なのだろうか? なんにしろ、早く解決していただきたいものだ

●それでも「symfony propel:build-model」でエラーが出る
domdocumentがどうのこうのというエラーが出てくるので、php_domxmlあたりが入っていないのだろうと思いきや、php.iniではちゃんと有効になっている。さてどうしたものかとエラーメッセージをよく見てみれば……
domdocument::domdocument() expects parameter 2 to be long
これで検索してみると原因が判明した。xamppのPHPはDOMとDOMXMLが両方有効になっており、DOMXMLの方が優先されるのである。ということで、php.iniからphp_domxml.dllをコメントアウトすると、ようやく動いた……と思いきや、最後の障害

●XAMPPでは、Apacheで動くPHPのためのphp.iniと、コマンドラインで動くPHPのためのphp.iniは別である
いやまぁ、最初にコマンドラインから「php -i」しておいて、Webのphpinfo()の結果と見比べればすぐにわかる話ではあったのだが……。最後の止めとして、%xamppインストールディレクトリ%\apace\binと、%xamppインストールディレクトリ%\phpの両方のphp.iniを修正して終了。いやはや、細かいことではあるが、積み重なるとだいぶ時間を取られるものである。
追伸
ついでにOracle10g Express Editionもインストールしてみたのだが、NLS_LANGを設定しないと文字化けを起こす。サーバ側のデフォルトがAL32UTF8になっている事&ローカル環境であることに油断して、この環境変数を設定することを忘れないように。
[ 投稿者:朽木三郎 at 11:00 | PHP | コメント(0) | トラックバック(0) ]

この記事へのコメント

この記事へのトラックバック

この記事へのトラックバックURL
http://shinshu.fm/MHz/52.04/a08157/0000250422.trackback

この記事の固定URL
http://shinshu.fm/MHz/52.04/archives/0000250422.html

記事へのコメント
 
簡単演算認証: 9 x 6 + 5 =
計算の答えを半角英数字で入力して下さい。
名前: [必須]
URL/Email:
タイトル:
コメント:
※記事・コメントなどの削除要請はこちら