cakephpでブックマークアプリを作る (8)-1
間が開いてしまい、すみません。あと、最終回の予定だったんですが、意外と長くなりそうなので、何回かに分けていきます。もうしらばくお付き合い下さい。
ここまで作った内容は
・一般ユーザーが閲覧するCakephp
・マスター管理のプログラム
2つの構成になっています。
では、ここまでの内容をごっそりアップしていきたいと思います。
まずは一般ユーザーが閲覧するcakeをアップ
まず、閲覧用のCakephpをごっそりサーバーの閲覧可能ディレクトリへアップしてあげます。
そして、URLでアクセス。
Cakephpエラーとの格闘
サーバーにCakephpアップロード直後のエラー全文です。
Warning (512): /home/it-wonder.info/public_html/app/tmp/cache/ is not writable [CORE/cake/libs/cache/file.php, line 267] Warning: date() [http://php.net/function.date]: 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 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /home/it-wonder.info/public_html/cake/libs/log/file_log.php on line 71 Warning (2): strtotime() [http://php.net/function.strtotime]: 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 'Asia/Tokyo' for 'JST/9.0/no DST' instead [CORE/cake/libs/cache.php, line 570] Warning: date() [http://php.net/function.date]: 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 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /home/it-wonder.info/public_html/cake/libs/log/file_log.php on line 71 Warning (512): /home/it-wonder.info/public_html/app/tmp/cache/persistent/ is not writable [CORE/cake/libs/cache/file.php, line 267] Warning: date() [http://php.net/function.date]: 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 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /home/it-wonder.info/public_html/cake/libs/log/file_log.php on line 71 Warning (512): /home/it-wonder.info/public_html/app/tmp/cache/models/ is not writable [CORE/cake/libs/cache/file.php, line 267]
大量のエラーにびっくりするかもしれませんが、ローカル環境(Win)でプログラムを作っていたのならよくあること。ほとんどがファイルのパーミッションの問題だったりします。
PHP 5.3ならこんなエラーが出る
私は自分で構築したVPSサーバーがPHP5.3.3使っているんですが
Warning: date() [http://php.net/function.date]: 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 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /home/it-wonder.info/public_html/cake/libs/log/file_log.php on line 71
要約しますと、タイムゾーンをちゃんと設定しやがれってことですね。php.iniに設定してもいいのですが、Cakephpからでもいけます。
app\config\core.phpの変更
core.phpの247行目付近に、
という記述がありますので、コメントアウトを外して、
date_default_timezone_set('Asia/Tokyo');
と、修正して、core.phpをアップしてあげます。
ちなみにこのエラーはPHP5.3以上の環境で、date関数を実行するとこのエラーは見られます。
Cakephpの問題ってよりは、phpの設定の問題ですね。
エラーが激減する
Warning (512): /home/it-wonder.info/public_html/app/tmp/cache/ is not writable [CORE/cake/libs/cache/file.php, line 267] Warning (512): /home/it-wonder.info/public_html/app/tmp/cache/persistent/ is not writable [CORE/cake/libs/cache/file.php, line 267] Warning (512): /home/it-wonder.info/public_html/app/tmp/cache/models/ is not writable [CORE/cake/libs/cache/file.php, line 267]
残りのエラーに関しては、ちょっとPHPをかじった人なら分かりますよね。後怒られているのはパーミッションの部分だけです。
FFFTPなどで、パーミッションをそれぞれ変更する
/app/tmp/cache
/app/tmp/cache/persistent
/app/tmp/cache/models/
この3つのディレクトリをそれぞれパーミッションを777としてください。
/app/tmp/cache/persistent/cake_core_default_ja
こちらのファイルのパーミッションを666としてください
こんな人はいませんか?
エラーは消えたんだけど、CakephpデフォルトのCSSが動いていない
こういう見た目になってしまった人はいませんか??明らかに見た目が悪い・・・というか、Cakephpのデフォルトの黄色と緑のCSSが当たっていない。
/app/webroot/css
に、cake.generic.cssがあるのに、この見た目の人は、/appの直下に
.htaccessがきちんと置かれていないためです。あるいはサーバーに.htaccessの許可がされていないとか。(すんません、私がそうでした)
全てのエラーの対応が終わると、必ずあの緑と黄色のこの見た目になってくれますよ。
この見た目になったら、アップロードは完了です。
データベースをサーバーにもdumpファイル実行して、同じデータベースを容易してあげましょうね。
一通り上がったところで、設定したデータベースのコピー(dump)を実行します。
phpmyadminなどから、ローカル環境のデータベースをエクスポートして、WEBサーバー上にあるphpmyadminにインポートを行います。
きちんとデータベースに接続できると、
ここまで出来れば準備OKですね。