CakePHPでスキーマファイルが読み込めない対処法

このQ&Aのポイント
  • CakePHPを使ってアプリケーションの開発を行っていますが、スキーマファイルを読み込む際にエラーが発生しています。
  • スキーマファイルを適切な場所に配置してもエラーが解消されず、調査が必要です。
  • Windows上でのXAMPPとCakePHPの組み合わせに特有の問題かもしれません。
回答を見る
  • ベストアンサー

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
  • 回答数1
  • ありがとう数4

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

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

cakeコマンドに、「-app C:\xampp\htdocs\firstcake\app」というパラメータを追加して下さい。 Cakeコンソールに、自分のアプリケーションがおいてあるフォルダを教えてあげる必要があります。

dog-peach
質問者

お礼

hogehoge78さん、ご回答下さり有難うございます。 教えて頂いたとおりパラメータを追加したところ、cakeが通りました。 助かりました、有難う御座いました。

関連するQ&A

  • 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で作成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をインストールする必要が有るのでしょうか? どなたか助けて下さい。

    • 締切済み
    • PHP
  • 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 のディレクトリの構成について

    現在 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で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のFormHelperについて

    先日から、CakePHPを下記のサイトを利用しながら勉強し始めた。 しかし、Form Helperの所でつまずいてしまい、アドバイスを頂きたく質問させて頂きました。 ディレクトリの構成ですが、 MacでMAMPを使用していて、「htdocs」の中に「cake」というフォルダーを作成し、 その中に「app」、「lib」、「plugins」といったcakephpのファイルやフォルダをおいています。 まず、http://libro.tuyano.com/index3?id=743002のレッスンで <form method="post" action="./form" name="form1"> の箇所でエラーが出て <form method="post" action="./sample/form" name="form1"> と修正しエラーを解決しました。 次にhttp://libro.tuyano.com/index3?id=743002&page=3のレッスンで 「samples」というテーブルがないとエラーが出たので「samples」というテーブルを作成しエラーを解決しました。 (レッスンにはテーブル作成に関しては何も書かれていなかったのですが…) つまずいてしまっているレッスンは、http://libro.tuyano.com/index3?id=743002&page=4です。 レッスン通り、作成すると Error: SamplesController could not be found. Error: Create the class SamplesController below in file: app/Controller/SamplesController.php の2つのエラーがでます。 index.ctpの$this->Form->create(null,array('type'=>'post','action'=>'.'));で 自分自身に飛ばすようになっていると思うのですがデバックしたページのソースをみると <form action="/cake/samples/." id="SampleForm" method="post" accept-charset="utf-8"> と「samples」と見覚えないフォルダーに飛んでいます。この箇所が問題ではと考えています。 色々と試してみたのですが、分からず困っています。 アドバイスよろしくお願いします。

    • 締切済み
    • PHP
  • XREA : CakePHP(1.2.6)の設置作業で困っています。

    XREA で、 CakePHP(1.2.6)の設置作業をしています。 ディレクトリ: /cakephp/app/config ファイル名: database.php database.phpを修正した所、次のメッセージが表示されました。 ここから、---------- Release Notes for CakePHP 1.2.6. Read the changelog Your tmp directory is writable. The FileEngine is being used for caching. To change the config edit APP/config/core.php Your database configuration file is present. Parse error: syntax error, unexpected T_STRING, expecting ')' in /virtual/アカウント名/cakephp/app/config/database.php on line 88 ----- ココまで。 最後の「Parse error」は、どの様に対処したら良いですか。 database.phpの編集内容は、次の通り。 var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', 'password' => 'pass', 'database' => 'user', ''encoding' => 'utf8' 'prefix' => '', 以上、よろしくお願いします。

    • 締切済み
    • PHP
  • cakePHPでSQLが実行できない。

    cakePHP2.2でSQLが実行できません。 実行のやり方が悪いのでしょうが ネットで探してもイマイチ理解できません・・ やりたいのは画面から入力された値を使い SQLを実行することです。 何が駄目なのか教えてください。 controllerのソース <?php class BuhinController extends AppController { public $layout = 'user_default'; //## ログイン処理 public function login(){ $bool = false; $rslt = null; Configure::write('debug', 1); $sql = "select id from table_user where add = '". $_POST["add"] . "' "; $sql = $sql. " and pass = '". $_POST["pass"] . "'"; $this->query($sql); } public function index(){ } public function logout(){ $this->Auth->logout(); } } ?> エラーメッセージ Fatal Error Error: Call to undefined method BuhinController::query() File: C:\xampp\htdocs\cake\app\Controller\BuhinController.php よろしくお願いします。

    • ベストアンサー
    • PHP
  • IISでcakePHP

    現在IIS上でcakePHPを利用してPHPのwebアプリを作成しています。 事情によりrewriteは行わずに作成しているのですが、 URLを指定すると404エラーが返ってきます。 URLは以下です。 http://localhost/test/index.php/posts/index cakePHPはinetpub/wwwroot/test/直下に配置しています。 http://localhost/test/index.php の画面は見れています。 IISでrewriteをせずcakePHPの画面が見れる方法をご存知の方がいましたらご教授願います。 ●環境 windows XP Professional sp3 IIS 5.1 PHP 5.3.5 CakePHP 2.2.2

    • ベストアンサー
    • 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

専門家に質問してみよう