• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:cakephp1.3によるbatch)

cakephp1.3によるbatchの実行エラー

このQ&Aのポイント
  • cakephp1.3を使用してbatchを実行する際にエラーが発生しています。
  • batch実行用に追加設定が必要なのか、それとも何かコツが必要なのかを知りたい。
  • win-vistaの環境からlinux環境に移行した場合でも同様のエラーが発生しています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

-appというスイッチがありますが、-appスイッチを使用すると、現ディレクトリに-appで指定したディレクトリをコンカチしたディレクトリを-workingに指定するようで、結果、「Not Found」になるようです。 従いまして、実行ディレクトリは必ずAPPでなくてはならず、-appスイッチで指定してはいけません。 ただし、表示された-workingのディレクトリを作ってあげると動く気はします。 (ソースを追っただけで未検証) これはどうもcakeconsleのバグっぽいですね。 とりあえず、適当なファイルを入れてcakeconsole1.3.8で試してみました。 (画像添付) 画像はユーザのHOMEDIRから実行したときのキャプチャです。 -appで指定したのが、cakeのAPPです。 これを見ますと、たしかに-workingが変なディレクトリになっているのがわかると思います。 cookbookを見ると、「-appでshellアプリのディレクトリを指定しましょう」という記述が見受けられますが、本当に動かして検証したのか疑問になります。 もっとも、cakephpではweb関連が動けばいいので、batchは素の(フレームワークを使用しない)phpか、rubyやperl、c、はたまたbashなんかで書かれるが吉かと思います。

f_user
質問者

お礼

丁寧な回答・解説ありがとうございます。 キャプチャまで貼っていただき感謝です。 おっしゃるとおり、-appで指定したディレクトリが-workingに変に影響しているのはおかしいと思っていました。1.2でも同じ挙動だったのですが、だれもticketにしなかったのでしょうか?? web関連のテストは熟成されていると思いますが、batch系はあまりテストしていないのでしょうかね。

その他の回答 (2)

回答No.2

-appスイッチを利用する場合は、APPのルートのパスをそこに記述すれば行けると思いますが、いかがでしょう。 cake -app "c:\hogehoge\app" test とか。 結局、CakePHPは設定ファイルとかでアプリケーションディレクトリの絶対パスを記述したりとかそういう設定ではないので コマンドラインで明示的にアプリケーションのルートパスを設定しなかった場合は、コマンドが実行された時点のカレントディレクトリをルートとして読む、という挙動になっているト思います。 Webアプリのindex.phpの定数もデフォルトでindex.phpのおいてある場所からの相対パスで設定するようになっていたかと思います。

f_user
質問者

お礼

詳しい回答・解説ありがとうございます。 batchで設定ファイルを使えないというのは、かなり偏った仕様なんですね。 cookbookを斜め読みしただけですが、相対パスと絶対パスは両方とも想定されているようなので、-appで絶対パスを指定すれば動くと思っていたのですが、こちらの想定どおりの動作になっていなかったので、質問いたしました。

回答No.1

実行時は、APPディレクトリのルートで実行しないとエラーになります。 ので、 cd APP で移動した場所で実行してみてください。

f_user
質問者

お礼

原典の提示がなく、残念です。 回答ありがとうございました。

f_user
質問者

補足

回答ありがとうございます。-appというスイッチがありながらAPPdirで実行しなくてはいけないとは・・・ 原典があれば、ご提示いただければと存じます。

関連するQ&A