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の場合
関連記事
-
hasOne アソシエーション
hasOneアソシエーションはテーブル間で1つのレコードに対して他のテーブルに紐付くレコードが1つの場合にjoinする場合に使用します。 CakePHPのドキュメントにならってUserモデルとP
-
CakePHP 2.x インストール
現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。 まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーショ
-
selectボックスを実装
今まで、selectボックスのgroupを作成するのにSet::Combineを使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った
-
アップロードファイルのバリデーションルール
CakePHP 2.2や2.3になってファイルアップロードに対するルールがコアバリデーションに追加されているようで、まとめてみました。 コアバリデーション 関連しそうなルールは以下の4つの
-
FullCalendarを使用してカレンダーアプリケーション
カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード
-
ハッシュ関数の選択とハッシュ化処理
CakePHPでは、ログイン時にはpasswordを自動的にハッシュ化して認証を行ってくれますが、そのパスワードを登録する際は、明示的にハッシュ化する必要があります。 ハッシュ関数の選択 ハッ
-
入力文字列の長さ(文字数)をバリデーション
CakePHP 2には、コアバリデーションに文字列の長さを検証する関数が用意されています。 文字列長(コア)バリデーション minLength - 最小文字数以上であること maxLengt
-
RSSフィードの取得
コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://
-
テーブルからランダムにデータを取り出す(find)
CakePHPでテーブルから特定件数のレコードをランダムに取得するには以下のように指定するとできます。 $this->data = $this->Bulkdata->find( 'all',
-
独自のバリデーションルールを作成
CakePHPで組み込みバリデーションルールをつくる方法は、正規表現を定義する方法と独自メソッドを定義する方法の2つがあるようです。 参考 Custom Validation Rules 正規
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/