CakePHP インストール時エラーの対処
CakePHPインストール時に出くわすであろうエラーの原因と対処方法についてまとめてみました。前提として、WebサーバはApache、データベースはMySQLとしています。
Timezone未設定によるエラー
タイムゾーン未設定によるエラーです。
app/Config/core.php内の以下のコメントをはずして、UTCをサポートされるタイムゾーンのリストにあるタイムゾーンを設定
//date_default_timezone_set('UTC'); ↓ date_default_timezone_set( 'Asia/Tokyo');
その他、以下のページに記載されている設定で上記エラーを回避することが可能です。
date_default_timezone_get
キャッシュファイル書き込みエラー
Warning: *******/app/tmp/cache/persistent/ is not writable in *******/lib/Cake/Cache/Engine/FileEngine.php on line 385 Fatal error: Uncaught exception 'CacheException' with message 'Cache engine "_cake_core_" is not properly configured. Ensure required extensions are installed, and credentials/permissions are correct' in *******/lib/Cake/Cache/Cache.php:186 Stack trace: #0 *******/lib/Cake/Cache/Cache.php(151): Cache::_buildEngine('_cake_core_') #1 *******/app/Config/core.php(374): Cache::config('_cake_core_', Array) #2 *******/lib/Cake/Core/Configure.php(72): include('/var/www/html/c...') #3 *******/lib/Cake/bootstrap.php(175): Configure::bootstrap(true) #4 *******/app/webroot/index.php(104): include('/var/www/html/c...') #5 *******/index.php(41): require('/var/www/html/c...') #6 {main} thrown in *******/lib/Cake/Cache/Cache.php on line 186
Apache実行ユーザに対して、ログファイルやキャッシュディレクトリに対しての書き込み権限が無い場合に発生します。
Apache実行ユーザの確認方法
ps aux | grep '(apache|httpd)'
httpd.conf内User/Groupで確認することもできます。
User apache Group apache
tmpディレクトリの所有者を再帰的にapacheユーザへ変更し、パーミッション755を付与
# chown -R apache tmp # chmod -R 755 tmp
ログやキャッシュの出力先はこちらを
パス定数と変更方法やURLの取得
mod_rewrite エラー
公開ディレクトリに対して、.htaccessを使用可能になるよう設定します。/var/www/htmlは適宜置き換えて下さい。
/etc/httpd/conf/httpd.conf <Directory "/var/www/html"> # AllowOverride None AllowOverride All </Directory>
'PDO' not found
何かしらの理由でPHPインストール時にphp-pdoがインストールされていない場合に発生するエラーです。
まずは、以下のコマンドで"PDO"がインストールされているか確認して下さい。
> php -m [PHP Modules] PDO <--
インストール
yum install php-pdo
最終的な目標は、以下を .iniファイルに追加することですが、iniファイルはインストール時に自動で追加されます。
extension=pdo.so
確認してみましょう。
# php --ini Configuration File (php.ini) Path: /etc Loaded Configuration File: /etc/php.ini Scan for additional .ini files in: /etc/php.d Additional .ini files parsed: /etc/php.d/pdo.ini,
確認ができたらWebサーバに読み込ませるため再起動を行いましょう。
ついでに使用するDB
# yum install php-mysql # MySQLの場合 # yum install php-pgsql # PostgreSQLの場合
関連記事
-
バリデーション前後に処理を追加できる「beforeValidate」「afterValidate」
CakePHPでは、「beforeValidate」「afterValidate」というバリデーション処理の前後で追加の処理を実装できるコールバック関数が用意されています。 beforeVali
-
ユーザ登録(仮登録・メール・本登録)
以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU
-
数値系バリデーション
CakePHP 2になっていくつか数値用バリデーションルールが追加されています。 数値用 (コア)バリデーション decimal - 十進数であること numeric - 数値であること
-
ログローテーション
CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え
-
recursive設定によるfind()性能改善
CakePHPでは、モデルにアソシエーションを設定している場合、recursive(=>joinする階層)はデフォルトで0に設定されています。「recursiveゼロ」の意味するところとは、「1跨ぎま
-
アップロードファイルのバリデーションルール
CakePHP 2.2や2.3になってファイルアップロードに対するルールがコアバリデーションに追加されているようで、まとめてみました。 コアバリデーション 関連しそうなルールは以下の4つの
-
バリデーションエラーメッセージの取得
CakePHP 2.xになってバリデーションエラー時に返却されるメッセージのデータ形式が変更になったようです。1.3系では、ひとつのフィールドに対して返却されるメッセージは一つのルールのみですが、2.
-
Formヘルパーのinputタグのdiv/labelなどの設定
Formヘルパーのinputではデフォルトでは以下のようにdivで囲われて、labelが付与されて出力されます。 CSSのフレームワークなどであらかじめ決まったスタイルがある場合に便利に作られていま
-
SQLクエリーをログに出力する
SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処
-
radioボタンを実装
Radioボタンの実装は、セレクトボックスとほぼ同じです。 個人的にはラジオボタンをすすんで使用することは少ないのですが、2択くらいの選択肢であれば非常に便利ですよね。 今回は、その実装方法 デモ
Comment
インストール後、初期画面が出ずにエラーが出た時に読む
NowBrowsing: CakePHP 2.x - CakePHP インストール時エラーの対処 - http://t.co/KFOAQklf7l
参考:CakePHP 2.x - CakePHP インストール時エラーの対処
3.インストール時のエラーの対処あれこれ
CakePHP インストール時エラーの対処
タイムゾーンの設定がないよ−って。
こことか、ここ参考。
http://www.iwaking.com/20121210/740/
http://kwski.net/cakephp-2-x/1009/