のえら

技術備忘とかメモとか.間違いはつっこんでいただきたい所存.

CakePHP学習記録 そのいち 環境構築編

#20140502:副題つけた

前置き

  • CoC なフレームワークは2年くらい Ruby On Rails と Play!framework で開発してた程度の知識しかない
  • 環境の勉強もついでにと Windows + Cygwin で頑張ろうかと思ったけど、 apt-cyg とか XAMPP とか環境周りが途中から面倒になってきたので、 VMware Player に Ubuntu 入れてやることにした
  • セキュリティの部分は放置ぎみ
  • CakePHP 公式のコンテンツに沿ってる、つもり
  • ディレクトリのパーミッションはよしなに

仮想環境周り

VMware Player のインストール
●Ubuntu12.04.1 のインストール

こっちにまとめた。

開発環境周り

いろいろインストールしていく。細かな設定はブログチュートリアル中に触れるので省略。カッコ内はバージョン。

vim の設定

エディタは vim を選択した。

sudo apt-get install vim

.vimrc を作成して適宜設定。
あんまりスクリプト書くと環境が変わったときに慣れていなくて戸惑う気がするので最低限の設定だけしておく。

"--------------------
" 表示
"--------------------
set number
set autoindent
set ts=4
set showmatch matchtime=1
syntax on

"--------------------
" 検索
"--------------------
set wrapscan
set hlsearch
screen

追記:20140502
screen 使うとタブ切り替えで作業できるので便利。
設定はよしなに。

sudo apt-get install screen
MySQL(14.14)

データベースは MySQL を選択した。

sudo apt-get install mysql-server

root ユーザのパスワード設定を任意で行う。任意と言いつつ設定しておくのが無難。

TIPS:
MySQL 操作コマンド

# 起動
sudo /etc/init.d/mysql start
Apache(2.2.22)
sudo apt-get install apache2

とりあえずポート設定を変えておく
/etc/apache2/ports.conf
listen 80 → listen 127.0.0.1:80

ブラウザから localhost に接続して、「It works!」が表示されていればおk

TIPS:
Apache 操作コマンド

# 起動
sudo service apache2 start
# 停止
sudo service apache2 stop
# 再起動
sudo service apache2 restart
PHP(5.3.10-1ubuntu3.11)
sudo apt-get install php5
●git(1.7.9.5)

必須じゃないけど、ダウンロードしてほげほげするより楽なのと、今後プラグインを導入することを踏まえて git を使っていく
#業務も git 導入してくれたらいいのにと思いつつ

sudo apt-get install git
PHPMyAdmin

これも任意で。今回は未使用。

sudo apt-get install phpmyadmin

mysql をインストール済みなので、dbconfig-common ほにゃほにゃでは「いいえ」を選択する
PHPMyAdminApache 連携のため、シンボリックリンク作成

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin

CakePHPのセットアップ

ダウンロード

クローンして CakePHP の最新版を取得する。

git clone git://github.com/cakephp/cakephp.git

このエラーがでたら、実行権限が足りていないので sudo で再度実行。

fatal: could not create work tree dir 'cakephp'.: ????????
インストール

3種類の主なインストール方法のうちの、「開発(Development)」に沿ってインストールする。

  1. /etc/apache2/sites-available/default のドキュメントルートを /var/www/html に変更
  2. /var/www/ にhtmlディレクトリを作成
  3. /var/www/html 配下に、cakephp フォルダを移動、cakephp2_4_7 にリネーム
動作確認(パーミッション

ブラウザを開いて localhost/cakephp2_4_7 にアクセスしてみる。

Warning: _cake_core_ cache was unable to write 'cake_dev_ja' to File cache in /var/www/html/cakephp2_4_7/lib/Cake/Cache/Cache.php on line 323 Warning: /var/www/html/cakephp2_4_7/app/tmp/cache/persistent/ is not writable in /var/www/html/cakephp2_4_7/lib/Cake/Cache/Engine/FileEngine.php on line 384 Fatal error: Uncaught exception 'CacheException' with message 'Cache engine _cake_core_ is not properly configured.' in /var/www/html/cakephp2_4_7/lib/Cake/Cache/Cache.php:181 Stack trace: #0 /var/www/html/cakephp2_4_7/lib/Cake/Cache/Cache.php(151): Cache::_buildEngine('_cake_core_') #1 /var/www/html/cakephp2_4_7/app/Config/core.php(373): Cache::config('_cake_core_', Array) #2 /var/www/html/cakephp2_4_7/lib/Cake/Core/Configure.php(72): include('/var/www/html/c...') #3 /var/www/html/cakephp2_4_7/lib/Cake/bootstrap.php(175): Configure::bootstrap(true) #4 /var/www/html/cakephp2_4_7/app/webroot/index.php(94): include('/var/www/html/c...') #5 /var/www/html/cakephp2_4_7/index.php(41): require('/var/www/html/c...') #6 {main} thrown in /var/www/html/cakephp2_4_7/lib/Cake/Cache/Cache.php on line 181 

この警告がでたら、ここを参考に var/www/html/app/tmp 以下のディレクトリの Apache 実行ユーザに書き込み権限があるか確認する。
実行ユーザが www-data なので、 tmp ディレクトリ以下に書き込み権限を付与する。

sudo chown -R www-data app/tmp/
動作確認(URLリライティング)

パーミッションの変更後、ページを再読み込みすると CakePHP のホーム画面が表示されるものの、スタイルが適用されておらず、以下の内容のエラーが表示されている。

URL rewriting is not properly configured on your server. 1) Help me configure it 2) I don't / can't use URL rewriting

httpd.conf の修正?いないぞ?、と Ubuntu 関連で調べて何とか修正。

このサイトを参考に、以下のコマンドを実行。

sudo a2enmod rewrite

/etc/apache2/sites-available/default の ドキュメントルート /var/www/html の AllowOverride を ALL に変更する
※AllowOverride ディレクティブの説明はここ

Apacheを再起動して 再度 localhost/cakephp2_4_7 にアクセス、スタイルが適用されて上記のエラーが出ていないことを確認する。


チュートリアルに続く⇒