勉強したことのメモ

webプログラマが勉強したことのメモ。

DTIのVPSにCakePHPを導入する方法

   

他社さんと連携して仕事をする際に「フレームワーク何か使いますか?」と聞かれて「使ったことないんです……」と答えていてけっこう恥ずかしかったので、フレームワークを勉強しようと思った。

聞いたことのあるCakePHPと、聞いたことはないけど軽量で学習コストが低いらしいCodeIgniterが候補。まずはCakePHPをVPSにインストールしてみたのでその際のメモ。

 

■公式サイト

http://cakephp.jp/

 

■必要ファイル

http://github.com/cakephp/cakephp/archive/2.3.10.zip

https://github.com/cakephp/debug_kit/tree/2.2

 

■環境

CentOS6.5

PHP5.3

MySQL5.1

 

■導入方法

CakePHPのzipファイルを任意のディレクトリにアップロードしてコマンドラインでunzipで解凍する。解凍後はzipファイルを削除して良い。また、rootとかで解凍した場合はchownコマンドでユーザーを切り替えておく。尚、ここではディレクトリを「/var/www/html/hoge.com/cake/」と想定する。

また、キャッシュ関連の書き込みでディレクトリのパーミッションを変更する必要がある。「/var/www/html/hoge.com/cake/app/tmp」以下を777に変更しておく。

 

この時点で「http://hoge.com/cake/」を叩くと赤緑黄のエラー表示みたいなのがいくつが表示される。まず「/var/www/html/hoge.com/cake/app/Config/core.php」を開き、以下の部分を書き換える。

Configure::write('Security.salt', '適当な英数字に書き換え');
Configure::write('Security.cipherSeed', '適当な数字に書き換え');

 

次に「/var/www/html/hoge.com/cake/app/Config/database.php.default」をダウンロードし文末あたりにある以下の部分を書き換える。

public $default = array(
	'datasource' => 'Database/Mysql',
	'persistent' => false,
	'host' => 'localhost',
	'login' => 'MySQLのユーザー名',
	'password' => 'MySQLのパスワード',
	'database' => '使用するデータベース名',
	'prefix' => '',
	//'encoding' => 'utf8',
);

書き換えた後はファイル名を「database.php」に変更して同じディレクトリにアップロードする。

 

必要ファイルに書いた後者のDebugKitを「/var/www/html/hoge.com/cake/plugins/」にアップロードしunzipで解凍する。解凍したフォルダ名を「DebugKit」に変更しておく。「/var/www/html/hoge.com/cake/plugins/DebugKit/」直下にVERSION.txtが来るような形になっていればOK。

次に「/var/www/html/hoge.com/cake/app/Config/bootstrap.php」を開き、文末に以下を記述しアップロードする。

CakePlugin::load('DebugKit');

尚、最初DebugKitの最新版をダウンロードして設置したところエラーが発生していた。調べてみると最新のDebugKitはCakePHPの3系に使うみたいで、CakePHP2系を使うのであればDebugKitも2系を使う必要があるとの事。

再度「http://hoge.com/cake/」を開いて赤と黄の表示がなくなっていれば導入完了。

 

■その他

ドットインストールさんのCakePHP入門を参考に使ってみたところ、作業効率が上がるのはよく分かった。記述量がすごい減る。バリデート付きのformとか作る際に今までだとHTMLでform組んでjQueryでチェックする部分書いてと面倒だったのが、かなり短く書けて衝撃を受けた。

ただ覚えることが結構多そうなのと、MVCに慣れるまで時間がかかりそう。CodeIgniterも導入して触ってみて、いけそうな方で色々作ってみようと思う。

 

■参考サイト

http://kwski.net/cakephp-2-x/1009/

http://offsidenow.phpapps.jp/archives/1192

 - PHP

  関連記事

コマンドの実行履歴を確認する

SSH接続した際のコマンド実行履歴を確認したかった。 history で確認でき ...

PHPでURLを解析してクエリを抽出する方法

formからGETでURLの文字列を送信したものを、受信した側でクエリ部分のみ抽 ...

PHPでソーシャル(SNS)ログインする方法

「facebook / twitter / Googleアカウントでログインする ...

PHPでプロキシ経由で他サーバーに接続

PHPでfile_get_contentsやcurlで他サーバに接続する際に自サ ...

PHPで複数の送信先に一括でメールを送る方法

PHPで複数の送信先に一括でメールを送信したかった。配列とかで指定するのかと思っ ...

PHPでファイルを添付してメール送信

PHPでファイルを添付の上、メールを送信したかった。方法を探したところphpma ...

自動的に定義される定数

PHPファイルを解析中__LINE__という記述があり、 定数? とその場は思っ ...

PHPでCSVファイル出力用の関数

ここのところログ系をCSVファイル出力にするケースが多かった為、使いまわせるよう ...

前置インクリメントと後置インクリメント

何かの検索している時に見つけたもの。 前置インクリメントの方が高速とのこと。 ■ ...

MySQLiでFOUND_ROWS(全件数取得)

MySQLiでFOUND_ROWS(全件数取得)。 $sql = ' SELEC ...