CakePHP の開発でも調べものでも楽できるところは楽したい!と思っています。そこで、楽の仕方を考えます。へたをすると、余計な手間やはまりどころにもなりかねませんしね♪
結論
- Windows の XAMPP環境 で bake → 文字コード SJIS 改行コード CR+LF
- CentOS で bake → 文字コード SJIS 改行コード LF
Linux で bake しても、SJIS になるとは、ちょっと意外でした。ちなみに、CentOS の文字コードは UTF-8 に設定されていました。
[root@oki2a24 oki2a24.com]# printenv | grep LANG LANG=ja_JP.UTF-8
CakePHP の bake 方針案
一発で解決!できなかった、面白みのない結論ですけれども、これがよさそうです。
- bake 環境は、Windows、Linux、どちらでもよい。
- bake した生成ファイルは、文字コード、改行コードをまず変更する。
CentOS で bake してみる。
今まで Windows でのみ bake してきたので、CentOS で bake した手順を一応残しておきます。一応というだけあって、大変中途半端です。
ファイルを置く場所は省略です。wget でとってきました。
わたくしが面倒と思っている、データベース周りだけ記しておきます。コマンド、覚えられないのですよ。。。
DB設定
あまり Linux 関係ないですが、一応。。。
# データベース、ユーザ、の作成。パスワードの設定 GRANT ALL PRIVILEGES ON cakedb01.* TO cakeuser01@localhost IDENTIFIED BY 'cakepassword01'; FLUSH PRIVILEGES; CREATE DATABASE cakedb01 CHARACTER SET utf8; # テーブル作成 CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL UNIQUE, password CHAR(40) NOT NULL, created DATETIME, modified DATETIME ); CREATE TABLE ninjas ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, user_id int(11) NOT NULL, jitsu text, tool text, created DATETIME, modified DATETIME ); CREATE TABLE geisyas ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, user_id int(11) NOT NULL, oiroke text, face text, created DATETIME, modified DATETIME );
CentOS での bake 実行方法
CentOS では bake のバッチがある場所まで移動して、php で cake.php を実行する、という手順で OK なのですね。Windows のときは、cake.bat を実行していましたから、ぜんぜん違いますね。
後日気になって、Windows のコマンドプロンプトから cake.php を実行してみたら、動きました。。。もう面倒なので、cake.php に統一しちゃえばいいんじゃないかな!って思いましたよ。軽くしか確認していないので、もうちょっと調べていきたいです。
[root@oki2a24 oki2a24.com]#cd /var/www/html/oki2a24.com/cake01/app/Console/ [root@oki2a24 oki2a24.com]#php cake.php bake all
削除
調べ終わりましたので、元の状態に戻します。これも、特筆するようなことではないのですが、一応。。。
# ファイル削除 rm -rf /var/www/html/oki2a24.com/cake01/
# 権限、ユーザ、データベースの削除 REVOKE ALL PRIVILEGES, GRANT OPTION FROM cakeuser01@localhost; DROP USER cakeuser01@localhost; FLUSH PRIVILEGES; DROP DATABASE cakedb01; # データベース確認 show databases; # ユーザ確認 select User from mysql.user;
以上です。