• 締切済み

cakephpで作成ShellをXPで動かしたい

現在、Cakephpを使用して開発を行っています。 開発環境:WindowsXP 本番環境:CentOS5.6 今回、初めてCakephpを使用します。 バッチ処理を作成したく、shellを作成していますが 開発中の為、Windows環境で動作させたいのですが 上手く実行してくれません。 対象ファイル:C:\Apache2.2\htdocs\プロジェクト名\app\vendors\shells\daily_process.php コマンドプロンプトからの実行例  php C:\Apache2.2\htdocs\プロジェクト名\cake\console\cake.php -app iukdb daily_procees 実行結果  Error: Class DailyProceesShell could not be loaded. 何が悪いのかさっぱり分からずに困っています。 ネットで検索するのですが、Linux環境の例ばかりで。。。 やはり、Cygwinをインストールする必要が有るのでしょうか? どなたか助けて下さい。

みんなの回答

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

windows でのshellとは、コマンドプロンプト内での実行と言うことなので、バッチ処理は、windowsのコマンドプロンプト用に書かなければ動きません。 linux用とは全く異なりますので、本番と同様の動作チェックがしたいなら、Cygwinなどを入れて、仮想linux内で、lamp を動作させる必要があるでしょう。

noname#178500
質問者

お礼

回答有難う御座います。 やはりそうですよね。 今は、ロジックのみwindows環境で作成して linuxで実行テストを実施するという面倒な作業をしています。 参考にさせて頂きます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • cakephp1.3によるbatch

    php5.3.1 cakephp1.3 win-vista (他LAPP/LAMP環境整備) を使用し、eclipse3.6でphpソースおよびhtmlソースを作成しています。 すでに、この環境においてcakephpで作成したwebページは表示されていますので、php/apache/DB等々の基本的な設定は問題ないとお考えください。 batchPGの評価を行うべく、サンプルPGを"APP/venders/shells"に配置しました。 batchsample.php <?php class BatchsampleShell extends Shell { function main() { $this->out('hogehoge'); } } ?> cakeコマンドでcli実行しますと、 Error: Class BatchsampleShell could not be loaded. と表示され、実行がかないません。 バッチ実行用に追加設定等が必要なのか、それとも何かコツが必要なのか。 ご存知の方、教えていただけますでしょうか。 よろしくお願いします。 ※cakeコマンドの実行方法 cd APP/venders/shells (pg配置ディレクトリに移動) c:\hogehoge\(cake1.3本体格納ディレクトリ)\cake\console\cake batchsample ちなみに、win-vistaからフォルダをそのまま移行したlinux環境(PHP 5.2.17)でも、webは表示、batchは同様のエラーとなっています。

    • ベストアンサー
    • PHP
  • CakePHPでスキーマファイルが読み込めない

    お世話になります。 現在WindowsのXAMPP上でCakePHPを使ってアプリケーションの開発を行っております。 スキーマファイルを作成し、cakeコマンドからテーブルの作成をしようとしているのですが、 cakeコマンドを実行すると以下の様なエラーが表示されます。 C:\xampp\htdocs\firstcake\app\Console>cake schema create Welcome to CakePHP v2.3.10 Console --------------------------------------------------------------- App : Console Path: C:\xampp\htdocs\firstcake\app\Console\ --------------------------------------------------------------- Cake Schema Shell --------------------------------------------------------------- The chosen schema could not be loaded. Attempted to load: File: C:\xampp\htdocs\firstcake\app\Console\Config\Schema\schema.php Name: 通常schema.phpファイルは~app\Config\Schemaフォルダに配置するのですが上述のエラーが表示され読み込まれなかったため、~app\Console\Config\Schemaフォルダを作成し配置しました。 それでも上記のエラーメッセージが表示されます。 そこでCakePHPにおいてスキーマファイルが読み込めなかった際の対処法についてご教示頂きたく投稿しました。 長文となりましたが、ご協力宜しくお願い致します。 ★環境 OS : Windows 7 Home Premium (システムドライブ:C) XAMPP : ver1.8.3(インストールせず、C:\xamppフォルダへコピペで配置)。 CakePHP: ver2.3.10 ★フォルダ構造 ・XAMPPのインストールフォルダ: C:\xampp ・アプリケーションルート: C:\xampp\htdocs\firstcake(CakePHPを配置) ・schema.phpのデフォルトの配置場所: C:\xampp\htdocs\firstcake\app\Config\Schema\schema.php ・schema.phpを別途配置した場所: C:\xampp\htdocs\firstcake\app\Console\Config\Schema\schema.php ・環境変数 PATH = C:\xampp\htdocs\firstcake\app\、C:\xampp\php

    • ベストアンサー
    • PHP
  • メール受信で空メール送信のプログラムを作成中です

    メール受信で空メール送信のプログラムを作成中です 開発環境は以下の通りです。 CentOS5.4 CakePHP1.1 PHP5.1 Postfix2.3 参考サイト ; http://d.hatena.ne.jp/ngtn/20080208/1202400164 流れとしては メール受信 ↓ aliasesでシェルスクリプトに ↓ シェルスクリプトでreceiver.phpに ↓ PHPでメール解析し、空メール送信や添付ファイルを保存。 上記のようにしたいです。 やったこと /etc/aliases メール受信用ユーザー名: "|sh /***/***/app/vendors/receiver.sh" /***/***/app/vendors/receiver.sh #!/bin/sh cd /***/***/app ../cake/console/cake receiver receiveMail =>ここの意味がよくわからないのですが、サーバーにはconsoleフォルダが存在しませんがこのままでいいんでしょうか? /***/***/app/vendors/shells/receiver.php $fromに対してメールを送る処理を追加しました。 以上のことをして、メールを送信したら以下のようなエラーが返ってきました。 Command died with status 127: "sh /***/***/app/vendors/receiver.sh". Command output: /***/***/app/vendors/receiver.sh: line 2: cd: /***/***/app_: No such file or directory /***/***/app/vendors/receiver.sh: line 3: ../cake/console/cake: No such file or directory 以上、1週間以上悩んでおります。どうかご教授お願いいたします。

    • 締切済み
    • PHP
  • CakePHPのコントローラの作成

    PHP初心者です。 CakePHPをインストールし試しにTestControlerを作成したのですが、ページが開きません。 PageNotFoundになります。 考えられる原因が分かれば教えて下さい。 【やったこと】 ・ [CakePHP root]\app\Controller に TestController.php を作成。 <?php App::uses('AppController', 'Controller'); class TestController extends AppController { } ・ URLにアクセス http://[CakePHP root]/Test ⇒ Not Found http://[CakePHP root]/test ⇒ Not Found http://[CakePHP root]/app/webroot/index.php?url=test ⇒ CakePHPのindex.phpが表示される。 http://[CakePHP root]/app/webroot/index.php?url=Test ⇒CakePHPのindex.phpが表示される。 以下のサイトを参考にしました。mod_rewriteが動いていない可能性がある ということなので、URL直接指定もしてみましたがダメでした。 http://codezine.jp/article/detail/768?p=2 よろしくお願いします。

    • ベストアンサー
    • PHP
  • Cakephp2.0で、PhantomJs

    Cakephp 2.0のConsole/Commandで、スクレイピングを行う処理を実装しようとしています。 PhantomJsを使おうとしていますがどうもうまくいきません。 composerを利用してPhantomJsを、 /XAMPP/xamppfiles/htdocs/cakephp/app/Vendor にインストールしました。 ”/XAMPP/xamppfiles/htdocs/cakephp/app/” に test.phpとして、 <?PHP require_once('vendor/autoload.php' ); use JonnyW\PhantomJs\Client; $client = Client::getInstance(); $client->getEngine()->setPath('vendor/bin/phantomjs'); $request = $client->getMessageFactory()->createRequest(); $response = $client->getMessageFactory()->createResponse(); $request->setMethod('GET'); $request->setUrl('https://pg.kdtk.net/sample/phamtomjs_test.html'); $client->send($request, $response); echo "request url: " . $request->getUrl() . "\n"; echo "response: " . $response->getStatus() . "\n"; if($response->getStatus() === 200) { echo "content: \n"; echo $response->getContent(); } ?> というサンプルプログラムを実行するとうまくいきました。 これを、Console/Commandで実装したいのですが、どのように実装したら良いかわかりません。 例えば /XAMPP/xamppfiles/htdocs/cakephp/app/Console/Command に、 SampleShell.php として保存し、 <?php class SampleShell extends AppShell { public function startup() { parent::startup(); App::import('Vendor', 'Client', array('file' => 'JonnyW/PhantomJs/Client.php')); } // メイン実行関数 public function main() { $client = Client::getInstance(); } } ?> php cake.php Sample を実装すると、 PHP Fatal error: Class 'Client' not found ・・・ とエラーとなります。 インスタンスを生成できるようにするにはどのようにすれば良いのでしょうか? ご教示いただきますよう、何卒宜しくお願い申し上げます。

    • 締切済み
    • PHP
  • CakePHP のディレクトリの構成について

    現在 CakePHP を勉強しています。 最初から壁にぶち当たってしまいました。 参考にしているサイトの内容は以下のようになっているのですが apps/app1 と www/app1 の関係がよくわかりません。 シロート的なイメージとして、CakePHP では apps/app1 で色々と作成したものが(自動的に)www/app1 に複写される。 そしてブラウザからのアクセスは www/app1 になる???? そんなイメージなのですが、その辺を含めて勘違いしていると思います。 この2つのディレクトリの意味と用途?を教えてもらえないでしょうか? +/home/example ・・・ ホームディレクトリ   |   +cake ・・・ cake ディレクトリ   |   +apps ・・・ CakePHPで作成するアプリケーション用ディレクトリ   | |   | +app1 ・・・ CakePHPで作成するアプリ1のappディレクトリ   | | |   | | +config, docs, libs, scriptsディレクトリとファイル   | |   | +app2 ・・・ CakePHPで作成するアプリ2のappディレクトリ   |   |   |   +config, docs, libs, scriptsディレクトリとファイル   |   +www ・・・ ウェブで公開されるディレクトリ(DocumentRoot)     |     +app1 ・・・ CakePHPで作成するアプリ1 の webroot     |     +app2 ・・・ CakePHPで作成するアプリ2 の webroot     |     +other ・・・ CakePHP以外のアプリを使う場合のディレクトリ

    • ベストアンサー
    • PHP
  • CakePHPでNotFound

    お世話になります。 Windowsのxampp環境でCakePHPを使ったアプリケーションを開発しました。 これをLinuxのMySQL+Apache環境下へ移行しようとしたところNotFound表示が連発して困っています。 Linux側ではApacheのDocumentRootを/var/www/html/cakeとしています。 どうやってもNotFoundになってしまうのでこのようにしました。 それでもhttp://localhostにアクセスすると正常にRelease Notes for CakePHP 1.2.4.8284.の画面が表示されるのですが、http://localhost/コントローラー名とするとNotFoundになってしまいます。 もちろん、Windowsのxampp環境では正常に表示されます。 検索エンジンで調べたんですが、該当するものがでてきませんでしたので、単純なことのような気がするんですが、ご教授頂けたらと思います。 宜しくお願いします。

    • 締切済み
    • PHP
  • cakePHP導入 XREA+について

    同じタイトルの質問から、検索して辿り着いたURL http://massat.jp/2007/01/08/110 を参考にXrea+ (有料版)の設定をしています。 しかし、動いてなさげです。 ディレクトリツリー: root / この直下に、cakephpをインストールしました。 次に、 mv -r root/cakephp/app/webroot/* root/public_html/dev.hoge.com/. でファイルを移動。 移動先のdev.hoge.com/index.phpを、 if (!defined('ROOT')) { define('ROOT', DS.'cakephp'); } /** * The actual directory name for the "app". * */ if (!defined('APP_DIR')) { define('APP_DIR', 'app'); } /** * The absolute path to the "cake" directory, WITHOUT a trailing DS. * */ if (!defined('CAKE_CORE_INCLUDE_PATH')) { define('CAKE_CORE_INCLUDE_PATH', ROOT); } と、編集しました。 これでいい筈なので、一緒にパッケージれていたtest.phpも、同じ内容で編集しました。 test.phpを実行させると、次のエラーが出ます。 Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit in safe mode in /virtual/taokato/public_html/dev.bit-station.com/test.php on line 27 Warning: include(cake/bootstrap.php) [function.include]: failed to open stream: No such file or directory in /virtual/taokato/public_html/dev.bit-station.com/test.php on line 84 Warning: include() [function.include]: Failed opening 'cake/bootstrap.php' for inclusion (include_path='/cakephp:/cakephp/app/:.:/usr/local/lib/php') in /virtual/taokato/public_html/dev.bit-station.com/test.php on line 84 Fatal error: CakePHP core could not be found. Check the value of CAKE_CORE_INCLUDE_PATH in APP/webroot/index.php. It should point to the directory containing your /cake core directory and your /vendors root directory. in /virtual/taokato/public_html/dev.bit-station.com/test.php on line 85 これは、設定ミスをしているのでしょうか? 解説通りにしたはずなんですけど・・・。 参考にしたURL http://oshiete1.goo.ne.jp/qa5421358.html http://www.wakatta-blog.com/cakephpxrea.html http://www.cakephp.jp/doc/ch03s04.html#id4797748 http://massat.jp/2007/01/08/110 ご教示のほど、よろしくお願いします。

    • 締切済み
    • PHP
  • CakePHPでbakeを利用したい

    CakePHPでbakeを利用したいと考えています。 OSはcentOS5.6です。 cakePHPをディレクトリに放り込み、データベース設定までは手動で設定しました。 (mySQLの設定だけでなく、cakePHPの設定も済み) ここから、viewなどをbakeをしていきたいと考えたわけですが、ここで問題が生じました。 /cake/consolephp まで行き、「cake.php bake」 と入力すると ****************************************************** Welcome to CakePHP v1.3.12 Console --------------------------------------------------------------- App : app Path: /home/worldstoughestblog.com/public_html/app --------------------------------------------------------------- Interactive Bake Shell --------------------------------------------------------------- [D]atabase Configuration [M]odel [V]iew [C]ontroller [P]roject [F]ixture [T]est case [Q]uit What would you like to Bake? (D/M/V/C/P/F/T/Q) ******************************************************** までは出てきます。 しかしながら、MやVと入力すると > M bash: M: command not found > V bash: V: command not found となってしまいます。 「CAKEPHP1.3によるWebアプリケーション開発」という本を読むと、「PHPのある場所とbakeがある場所を環境変数に組み込む必要がある」と書かれていました。これを設定していないのが原因かもしれません。(本の環境はwindows+XAMPP環境だったのでCentOSで環境変数に組み込む方法が分からず無視していました)。 ただ、webで調べる限り、「Welcome to CakePHP v1.3.12 Console」さえ出れば、後は皆問題なく進んでいるようなので、事前設定は必要ないのではないかとも思っています。 どなたか解決策をご教授頂けませんでしょうか?

    • ベストアンサー
    • PHP
  • CakePHPの表示エラーについて

    --------------------------- CakePHPバージョン:1.3.14. PHPバージョン:5.3.3 Apacheバージョン:2.2.3 --------------------------- CakePHPを始めたばかりです。 インストールを完了し、トップページでのhello world!の表示は出来ました。 (トップページだけは特例のようですね) http://www.example.com/test/hello という形でhello world!を表示させたいと思い下記のようにファイルを作りUPしましたが、エラーが表示されてしまいました。 何を変更すればうまくファイルが表示されるのかを教えていただければと思います。 test_controller.php ---------------------------------------------------------- class TestController extends AppController { public $name = "Test"; public $uses = null; public $autoRender = true; function index(){ } function hello(){ $this->set("content", "Hello World!"); } } ---------------------------------------------------------- http://www.example.com/test/hello (エラーメッセージ) ------------------------------------------------------------------------------- Warning: include(cake/bootstrap.php): failed to open stream: No such file or directory in /var/www/html/example.com/test.php on line 76 Warning: include(): Failed opening 'cake/bootstrap.php' for inclusion (include_path='/var/www:/var/www/html/:.:/php/includes:/usr/share/pear') in /var/www/html/example.com/test.php on line 76 Fatal error: CakePHP core could not be found. Check the value of CAKE_CORE_INCLUDE_PATH in APP/webroot/index.php. It should point to the directory containing your /cake core directory and your /vendors root directory. in /var/www/html/example.com/test.php on line 77 ------------------------------------------------------------------------------- bootstrap.phpというファイル名が出てきているので、bootstrap.phpを見てみましたが何が間違っているのかはわかりません。 include_pathも出てきているので、cakephpのパスを通しておく必要があるのでしょうか? bootstrap.php ------------------------------------------------------------- if (!defined('PHP5')) { define('PHP5', (PHP_VERSION >= 5)); } if (!defined('E_DEPRECATED')) { define('E_DEPRECATED', 8192); } error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT); require CORE_PATH . 'cake' . DS . 'basics.php'; $TIME_START = getMicrotime(); require CORE_PATH . 'cake' . DS . 'config' . DS . 'paths.php'; require LIBS . 'object.php'; require LIBS . 'inflector.php'; require LIBS . 'configure.php'; require LIBS . 'set.php'; require LIBS . 'cache.php'; Configure::getInstance(); require CAKE . 'dispatcher.php'; ------------------------------------------------------------- (全体の設定状況など) .htaccess httpd.conf あたりの設定が間違っているのかと思い、ネットで情報を調べていろいろ変更したりしてみましたがダメでした。 あと一つ気になる点としては、公開ディレクトリ以外をUPしているディレクトリ名をcakeにしてしまっているところです。(cakeというディレクトリ名はダメとかあるのでしょうか?) ディレクトリの構成と設定の内容を下記に記載します。 [/var/cake]プログラムファイル /var/cake/app /var/cake/plugins /var/cake/vendors /var/cake/.htaccess /var/cake/index.php 公開ディレクトリ(ルート) css files img js .htaccess css.php index.php ############################################################## .htaccessの設定 ############################################################## 3か所ほど設定すべきところがあるようなので下記のように設定しました。 /var/cake/.htaccess ------------------------------------------------- <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /cake RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule> ------------------------------------------------- /var/cake/app ------------------------------------------------- <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /cake/app  RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule> ------------------------------------------------- 公開ディレクトリの.htaccessの設定 ------------------------------------------------- <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /  RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\.(cgi|css|gif|jp?g|png)$ RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule> -------------------------------------------------

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • MG6330インクジェットプリンターのヘッド位置調整を自動および手動で行っても、ドットずれの問題が改善されません。
  • 定期的な幅でドットがずれる様子が添付画像から確認できます。
  • 縦線を見ると、ドットずれが明確にわかります。
回答を見る