スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

CakePHP2.6の初期エラーいろいろ解決

LMDEのlocalhostで動かしてた(そして放置していた)CakePHP2.6 をコンソールからあれこれしたりbakeしたりしようとして、新たにnginxのrootディレクトリにcakePHP配置して動かしたらエラーでまくり。

・今までおいてた/usr/share/nginx/html/においてたcakephpはディレクトリごと削除
・新たに/homeに解凍だけしておいてあったcakephpをcp-r
・新たに/usr/share/nginx/html/cakephp を chown -R www-data:www-data
・ついでにいじるとき管理者権限とかめんどいので chmod -R 777
・localhost/cakephpで動くようにしてたのでそのまま動くはず

とか思ってたら動くには動いたけどエラーでまくり。
1.Warning: SplFileInfo

Warning Error: SplFileInfo::openFile(/usr/share/nginx/html/cakephp/app/tmp/cache/persistent/myapp_cake_core_file_map): failed to open stream: Permission denied in [/usr/share/nginx/html/cakephp/lib/Cake/Cache/Engine/FileEngine.php, line 356]

Warning Error: _cake_core_ cache was unable to write 'file_map' to File cache in [/usr/share/nginx/html/cakephp/lib/Cake/Cache/Cache.php, line 328]


ブラウザからアクセスするとこのエラー。
原因はパーミッションとか何とか
CakePHP2.4.0からデバッグモードならファイルキャッシュ用フォルダを作る様になった
CakePHP2にあげてから度々目にするWarning: SplFileInfo::openFileの対処法

生成されたcacheの権限を確認してみると

$ ls -la tmp/cache/persistent/
合計 32
drwxrwxrwx 2 www-data www-data 4096 3月 29 12:30 .
drwxrwxrwx 5 www-data www-data 4096 3月 29 12:21 ..
-rwxrwxrwx 1 www-data www-data 0 3月 29 12:21 empty
-rw-rw-r-- 1 tmin tmin 43 3月 29 12:30 myapp_cake_core_cake_console_eng
-rw-rw-r-- 1 tmin tmin 43 3月 29 12:30 myapp_cake_core_cake_dev_eng
-rw-rw-r-- 1 www-data www-data 43 3月 29 12:37 myapp_cake_core_cake_dev_ja
-rw-rw-r-- 1 www-data www-data 4455 3月 29 12:37 myapp_cake_core_file_map
-rw-rw-r-- 1 tmin tmin 449 3月 29 12:30 myapp_cake_core_object_map


www-dataじゃなくてユーザー所有のファイルがいくつか生成されているようです。これが原因っぽい。
とりあえずの解決策1
cacheが生成されたあとでもっかいwww-data(CentOSならnginx)にしてやる

$ sudo chown -R www-data:www-data /usr/share/nginx/html/cakephp/
$ ls -la tmp/cache/persistent/合計 32
drwxrwxrwx 2 www-data www-data 4096 3月 29 12:30 .
drwxrwxrwx 5 www-data www-data 4096 3月 29 12:21 ..
-rwxrwxrwx 1 www-data www-data 0 3月 29 12:21 empty
-rw-rw-r-- 1 www-data www-data 43 3月 29 12:30 myapp_cake_core_cake_console_eng
-rw-rw-r-- 1 www-data www-data 43 3月 29 12:30 myapp_cake_core_cake_dev_eng
-rw-rw-r-- 1 www-data www-data 43 3月 29 12:37 myapp_cake_core_cake_dev_ja
-rw-rw-r-- 1 www-data www-data 4455 3月 29 12:37 myapp_cake_core_file_map
-rw-rw-r-- 1 www-data www-data 449 3月 29 12:30 myapp_cake_core_object_map


これでブラウザ上ではエラーが消えるけど、ユーザー権限で./Console/cakeとか走らせるとエラーが出ます。

$ sudo chmod -R 777 /usr/share/nginx/html/cakephp/


777多用が正しい対処とは思えないけどとりあえずこれで回避。

ちゃんと回避したいなら、上記リンクのようにキャッシュの設定時にmaskを066に設定とかしたほうがいいと思いますが、ローカルで立ち上げてていじってる分にはこれでも充分かと思います。サーバーに上げてて、ssh接続とブラウザからいじってるならばsu してcakeコンソール使えばいいのか?

2.タイムゾーンでエラー

It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /usr/share/nginx/html/cakephp/lib/Cake/Cache/CacheEngine.php on line 60


おっかしーなー、php.iniは編集してたはずなんだけどなぁ。
/etc/php5/fpm/php.ini

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Tokyo


tyなんと設定されてるけどエラーが出てるので、cakePHPの設定のほうで何とかしてみましょ−。
CakePHPのダウンロードとインストール
上記リンクでは45行目とありますが、うちの環境(cakePHP2.6)では60行目でした。
「(CakePHPをインストールしたディレクトリ)\lib\Cake\Cache\CacheEngine.php」を開き60行目に「date_default_timezone_set('Asia/Tokyo');」を追加

このへんにdate_default_timezone_set('Asia/Tokyo');」を追加します。


3.security.soltどうのこうの

Notice (1024): Please change the value of 'Security.salt' in app/Config/core.php to a salt value specific to your application [CORE\Cake\Utility\Debugger.php, line 807]


これは初回インストールと同じですね。
app/Config/core.php の223行目辺りから。

Security.saltの後の文字列、Security.cipherSeedの後の文字列をそれぞれ適当な文字列、数字列に変更すればおっけー。めんどかったら一文字変えるだけでもいいっぽいです。

4.これでcakeコンソール実行

/usr/share/nginx/html/cakephp/app$ ./Console/cake
Welcome to CakePHP v2.6.1 Console
---------------------------------------------------------------
App : app
Path: /usr/share/nginx/html/cakephp/app/
---------------------------------------------------------------
Current Paths:

-app: app
-working: /usr/share/nginx/html/cakephp/app
-root: /usr/share/nginx/html/cakephp
-core: /usr/share/nginx/html/cakephp/lib

Changing Paths:

Your working path should be the same as your application path. To change your path use the '-app' param.
Example: -app relative/path/to/myapp or -app /absolute/path/to/myapp

Available Shells:

[CORE] acl, api, bake, command_list, completion, console, i18n, schema, server, test, testsuite, upgrade

To run an app or core command, type cake shell_name [args]
To run a plugin command, type cake Plugin.shell_name [args]
To get help on a specific command, type cake shell_name --help


エラー消えてスッキリしました!!

関連記事
LMDE(Linux Mint Debian Edition)でローカルにサクッとLEMP(Nginx+MySQL+PHP)
LMDEにLEMP(Nginx+MySQL+php−fpm)でConcrete5.7β
LMDEのLEMPでCakePHP
Nginx+php-fpmで502とか504とかのエラーをなんとかしよう
関連記事
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

コメントの投稿

管理者にだけ表示を許可する
ブログ内検索

カスタム検索

フリーエリア

クリックで救える命がある。

レンタルサーバー

さくらのマネージドサーバ
さくらインターネットのVPS
ConoHaのVPS
WebARENA VPSクラウド
99円レンタルサーバー
【CloudCore VPS】
GMOクラウドのレンタルサーバー
転送量無制限 ABLENET
@WAPPYレンタルサーバー
SPPDレンタルサーバー

カテゴリー+月別アーカイブ

 

アクセスカウンター

現在の閲覧者数:

プロフィール

Author:tmin
PCヲタ。ライト2ちゃんねら。
スロット好きのギャンブラー。(元
むしろ人生がギャンブルだが目下のところ負けっぱなし。
座右の銘は「結果オーライ」。故に基本適当。
トラブルもまた楽しみのひとつ

コメント、トラバ、相互リンク歓迎。お気軽にどうぞ。
当ブログについて
Twitterでこっちとあっちの更新情報流すことにしてみます。
http://twitter.com/t_min
Project Mikunchu♪Wikiできました。
Mikunchu200x40.png


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。