DTIのVPS(PHP5系環境)にCakePHPを導入する方法
2024/02/25
他社さんと連携して仕事をする際に「フレームワーク何か使いますか?」と聞かれて「使ったことないんです……」と答えていてけっこう恥ずかしかったので、フレームワークを勉強しようと思った。
聞いたことのあるCakePHPと、聞いたことはないけど軽量で学習コストが低いらしいCodeIgniterが候補。まずはCakePHPをVPSにインストールしてみたのでその際のメモ。
目次
公式サイト
必要ファイル
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も導入して触ってみて、いけそうな方で色々作ってみようと思う。
参考サイト
関連記事
-
CodeIgniter4でのメール送信方法(テキスト・HTMLメール)
CodeIgniter4.4.4でテキストメール及びHTMLメールを送信したい。 ...
-
PHP8系の環境でdBug.phpライブラリが使用できない場合の対応方法
先日メモしたdBug.phpをPHP8系の環境で試すと動作しなかった。ただエラー ...
-
PHPのsetcookieで「Cannot modify」エラーの対応方法
PHPでsetcookieを使うと「Warning: Cannot modify ...
-
PHPでデータをファイルキャッシュさせる(Cache_Lite)
最近携わった案件でPHPでファイルキャッシュをしているシステムがあった。今までフ ...
-
時間と数字のフォーマット
教わったのでメモ。 ・時間の整形 strtotime() 例) $ymd = ' ...