• ベストアンサー

CAKEPHPのエラーについて

XAMPPを使い、CAKEPHPの勉強をしております。 画面にアクセスからDBにアクセスすると、以下のエラーが表示されます。 Warning (512): SQL Error: 11: database disk image is malformed [CORE\cake\libs\model\datasources\dbo_source.php, line 666] 解決方法が分からないため、ご相談している次第です。 ご存知の方、いらっしゃいましたら、教えて頂けますでしょうか?

  • PHP
  • 回答数1
  • ありがとう数1

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

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

データベースは何をお使いですか。もし、sqliteであるなら、ひょっとしたらデータベースが破損しているのかも知れません。新たにデータベースファイルを作って作業するか、XAMPPならMySQLがあるはずなのでそちらに切り替えるなどしてみてはいかがでしょうか。 他のデータベースを使っているとしたら原因は別にあるかも知れません。

hogemaro99
質問者

お礼

回答が遅くなりまして、申し訳ございません。 MYSQLに切り替えた所、無事解決しました。

関連するQ&A

  • 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
  • centOSにcakePHPを入れた際のエラー

    現在、amazon web serviceにてec2(centOS)を立ち上げ、 cakePHP(バージョン2.3)を配置しました。 配置した場所は /var/www/html/cakePHP で、ブラウザからcakeの画面が表示されるのは確認しております。 サーバ上に置いた際に発生するいくつかのエラーを直してエラーを消したのですが、 先ほどまた新たにエラーが発生してしまいました。 そのエラーの内容ですが、ページ上部に session_start() [http://php.net/function.session-start]: open(/var/lib/php/session/sess_u0btov6g5v9ob0lc0n9rpuaea6, O_RDWR) failed: Permission denied (13) [CORE/cake/libs/cake_session.php, line 587] というかんじで表示されています。 内容はなんとなく理解できて、 /var/lib/php/session/sess_u0btov6g5v9ob0lc0n9rpuaea6, O_RDWR のパーミッションを変更すれば直るかと思うのですが、 本当にこの直し方で大丈夫でしょうか。 この方法で直しても、いつかまた同じエラーが発生しそうで不安なので ご質問させていただきました。 お分かりになられる方、いらっしゃいましたらご教授のほどお願いいたします。

    • ベストアンサー
    • PHP
  • さくらVPS+CakePHPがうまく動きません

    さくらのVPSにCakePHPを導入して試しています。 VPSの設定が一通り完了し、現行のサイト(さくらのレンタルサーバーに設置)を移行してみたところ、どうしてもうまくいきません。 html+phpのページは何の問題もなく表示されるため、データベース(Mysql)が原因なのは明らかなのですが、スキル不足の問題もあり問題が見つけられず困っています。 具体的には、Mysqlにアクセスするページを表示しようとすると、このようなエラーがCakePHPのログに残ります。 ------ Error: Fatal Error (1): Allowed memory size of 134217728 bytes exhausted (tried to allocate 17218517 bytes) in [/var/cake/lib/Cake/Utility/String.php, line 247] 2013-07-13 09:43:45 Error: [FatalErrorException] Allowed memory size of 134217728 bytes exhausted (tried to allocate 17218517 bytes) #0 /var/cake/lib/Cake/Error/ErrorHandler.php(161): ErrorHandler::handleFatalError(1, 'Allowed memory ...', '/var/cake/lib/C...', 247) #1 [internal function]: ErrorHandler::handleError(1, 'Allowed memory ...', '/var/cake/lib/C...', 247, Array) #2 /var/cake/lib/Cake/Core/App.php(926): call_user_func('ErrorHandler::h...', 1, 'Allowed memory ...', '/var/cake/lib/C...', 247, Array) #3 /var/cake/lib/Cake/Core/App.php(899): App::_checkFatalError() #4 [internal function]: App::shutdown() #5 {main} ------ メモリーサイズを上げると、今度はタイムアウトでエラーになります。 CakePHPの「database.php」には、 public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'hoge', 'password' => 'pass', 'database' => 'hoge', 'prefix' => '', 'encoding' => 'utf8', ); と設定していて、Mysqlにはユーザー「hoge」とテーブル「hoge」を用意しています。 たとえば、上の設定で「database」を存在しないテーブル「aaa」にすると、 Missing Database Connection Error: A Database connection using "Mysql" was missing or unable to connect. The database server returned this error: SQLSTATE[28000] [1045] Access denied for user 'aaa'@'localhost' (using password: YES) このように普通のエラーが表示されます。 また、「login」を存在しないユーザー名「bbb」にすると、 Missing Database Connection Error: A Database connection using "Mysql" was missing or unable to connect. The database server returned this error: SQLSTATE[42000] [1049] Unknown database 'bbb' こちらも普通のエラーが表示されます。 CakePHPのappディレクトリはvar直下に移動していますが、html直下に置いても結果は同じでした。 どういったことが原因なのか、解決方法や手がかりなどご教示いただければと思います。 ------------- さくらのVPS SSD 2G CentOS 6 x86_64 PHPのバージョン PHP 5.3.3 (cli) (built: Feb 22 2013 02:51:11) Mysqlのバージョン Ver 14.14 Distrib 5.1.69, for redhat-linux-gnu (x86_64) using readline 5.1 PDO PDO support => enabled PDO drivers => mysql, sqlite PDO Driver for MySQL, client library version => 5.1.69 PDO Driver for SQLite 3.x => enabled -------------

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

    現在 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
  • 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で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
  • mysql_fetch_array()関数でのエラー

    現在、PHPでMySQLの操作をテストしています。 Vista上にXAMPPをインストールした環境とXP上にApache,PHPとMySQLを個別にインストールした環境とで検証しています。 どちらの環境でも、テーブルにデータをインサートするところまでは出来ました。 mysql_fetch_array()関数を使ってSQLの実行結果を表示させるところで、XAMPPでは結果を表示できるのですが、個別インストール環境では Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\****\incert.php on line 8 が出てしまいます。 mysql_error()でエラーを表示させたところ No database selected と表示されます。 mysql_select_db("db_name"); でDBはせんたくされていると思う(事実、XAMPPでは選択されている)のですが、何が問題なのでしょうか?

  • 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
  • CakePHP2 のsaveができない

    CakePHP2.何かを使っています。 ローカル環境でxampp、windows7で開発しています。 なぜかある特定のコントローラーでsaveができず、 Googleで見つけた様々な解決方法を全て試してもダメでした。 コントローラー:PaypalsController.php モデル:Paypal.php テーブル名:paypals コントローラー内で $this->Paypal->save($data); すると The eventKey variable is required An Internal Error Has Occurred のようなエラーが出ます。 キャッシュの問題であるデバッグモードも2になっています。 また、命名規則に沿っているのですが、 モデル内に、 public $useTable = 'paypals'; を書かないと、 Missing Database Table のエラーも出ます。 この時点で何かおかしい気がします。 どのような原因が考えられるか分かる方いたらアドバイス下さい。

    • ベストアンサー
    • PHP

専門家に質問してみよう