さくら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
-------------
お礼
honoka-cha様 その後、DBの値を表示する例が掲載されているサイトの情報を参考にしてみたところ、うまく表示することができました。 環境設定は上記の補足の状態でOKだということがわかりました。 有意義な回答ありがとうございました。 環境設定が終わりCakePHPを学んでいく体制ができたのでとても嬉しいです。
補足
ご回答ありがとうございます。 教えていただいた情報を参考にファイルを変更してみました。 ページが全く表示されなかった状態から、エラーメッセージが表示されるようになったので少し前に進むことができました。 CakePHPの下記のページに沿って設定しました。 http://cakephp.jp/old_doc/ch03s04.html 今まで.htaccessのRewriteBaseを使ったことが無く、そのあたりが怪しい気がします。 ---ディレクトリ構成-------------------------- [アプリケーションディレクトリ] /var/me/mysite [公開ディレクトリ] (ドメイン名が公開ディレクトリになっています) /var/www/html/ドメイン名/mysite [コアファイルディレクトリ] /usr/lib/cake --------------------------------------------- ---公開ディレクトリのindex.phpの設定------------------------- if (!defined('ROOT')) { define('ROOT', DS.'var'.DS.'me'); } if (!defined('APP_DIR')) { define('APP_DIR', 'mysite'); } if (!defined('CAKE_CORE_INCLUDE_PATH')) { define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake'); } ------------------------------------------------------------- ---.htaccessの設定]------------------------------------------------------ (1) アプリケーションディレクトリ /var/me/mysite/.htaccess に以下を追加 RewriteBase /var/me/mysite (2) 公開ディレクトリ /var/www/html/ドメイン名/mysite/.htaccess に以下を追加 RewriteBase /mysite (3) コアファイルディレクトリ /usr/lib/cake/.htaccess に以下を追加 RewriteBase /cake ------------------------------------------------------------------------- テストのコントローラーファイルをアップ <?php class SampleController extends AppController { public $name = "Sample"; public $uses = null; public $autoRender = true; function index(){ } function hello(){ $this->set("content", "Hello World!"); } } ?> ■http://www.example.com/mysite/sample/helloを表示 (結果) Missing View [Error: The view for SampleController::hello() was not found.] [Error: Confirm you have created the file: /var/me/mysite/views/sample/hello.ctp] [Notice: If you want to customize this error message, create mysite/views/errors/missing_view.ctp] この状態から抜け出すにはどのようにしたらよいか教えていただければと思います。 よろしくお願いします。