カテゴリー
コンピューター

CakePHP2!Windows 、Linux で bake した時の文字コード、改行コードは何でしょう?

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;

以上です。

コメントを残す