環境
Mac mini OSX 10.8
Apache 2
PHP 5.4
Mysql 5.6
CakePHP 2.3
Homebrewで
前回の投稿でBrewdlerを使ったので引き続きこれを使います。
Brewdlerを使ってgitをインストール
ひとまずBrewfileをこんな感じに。リポジトリのtapも管理出来るみたい。
今回はphp54を使用するので下記のようにtapしておく。
Brewfile
1 2 3 4 5 6 |
tap 'homebrew/dupes' tap 'josegonzalez/homebrew-php' brew 'git' brew 'mysql' brew 'php54' |
1 |
$ brewdle install |
環境変数の/usr/binが優先されているようなので、/etc/pathsを編集して/usr/local/binを優先にする。
編集したら一旦ターミナルを閉じてから開くと適用されます。
/etc/paths
1 2 3 4 5 |
/usr/local/bin /usr/bin /bin /usr/sbin /sbin |
apacheは最初から入ってるやつでも問題なさそうなのでそのまま。
1 2 3 |
$ apachectl -v Server version: Apache/2.2.24 (Unix) Server built: Jul 7 2013 18:05:17 |
apacheの設定ファイルを修正
/etc/apache2/httpd.conf
1 2 3 4 5 6 7 8 |
# php5モジュールのパスを変更 # LoadModule php5_module libexec/apache2/libphp5.so LoadModule php5_module /usr/local/Cellar/php54/5.4.20/libexec/apache2/libphp5.so # ドキュメントルートを任意のディレクトリに DocumentRoot "/var/www/cakephp_sample" <Directory "/var/www/cakephp_sample/"> |
apacheを起動
1 |
$ sudo apachectl start |
phpの動作を確認する。
ドキュメントルートに下記ファイルを配置して http://localhost/info.php にアクセス。
1 |
<?php echo phpinfo(); ?> |
PHP Version 5.4.xxと出ていれば成功。
CakePHPはこちらから落としてくる。今回は2.3.10を。
http://cakephp.org/
展開したファイル群がCakePHPのひな形になっているので、そのままドキュメントルートへ放り込む。
1 2 |
$ rm -rf /var/www/cakephp_sample $ mv cakephp-2.3.10 /var/www/cakephp_sample |
http://localhost/ にアクセス。するとたくさん怒られます。すみませんすみません。
1 |
Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in |
ここでphp.iniの修正を忘れていたことに気付く。
修正後apacheを再起動すれば上記エラーが解消されるはず。
/usr/local/etc/php/5.4/php.ini
1 2 3 4 5 6 |
date.timezone = Asia/Tokyo default_charset = "UTF-8" mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstrinig.http_output = pass |
tmpディレクトリのパーミションは変更。
1 |
$ sudo chmod -R 777 app/tmp |
ブラウザで確認。
あれ?本来ならカラフルなCakePHP初期画面が出るはずが、画像も表示スタイルシートが効いてない様子。
確かmod_rewriteがらみだった気がする。
httpd.confを確認。
/etc/apache2/httpd.conf
1 2 3 4 5 6 7 8 |
# コメントアウト解除 LoadModule rewrite_module libexec/apache2/mod_rewrite.so <Directory "/var/www/cakephp_sample/"> … AllowOverride All … </Directory> |
おっ。今度はスタイルシートがちゃんと適用されているみたい。
まだNoticeが出ているので一つずつやっつけていく。
これはお決まりのやつですね。要はsaltを変えろってことかと。
1 2 |
Notice (1024): Please change the value of 'Security.salt' in app/Config/core.php to a salt value specific to your application [CORE/Cake/Utility/Debugger.php, line 849] Notice (1024): Please change the value of 'Security.cipherSeed' in app/Config/core.php to a numeric (digits only) seed value specific to your application [CORE/Cake/Utility/Debugger.php, line 853] |
下記を変更。
Security.saltは半角英数字のランダム文字列、Security.cipherSeedは半角数字のランダム文字列を設定。特に桁数の指定はないみたいだけど、saltは40桁、cipherSeedは32桁でやってみた。
app/Config/core.php
1 2 |
Configure::write('Security.salt', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); Configure::write('Security.cipherSeed', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); |
まだいくつか怒られているので直していく。ちぎっては投げちぎっては投げと。
次はDBの設定をば。
1 2 |
$ cp app/Config/database.php.default app/Config/database.php $ vim cp app/Config/database.php |
ローカルなのでpasswordなしのrootユーザーでmysqlを使用する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
class DATABASE_CONFIG { public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => 'cakephp_sample', 'prefix' => '', //'encoding' => 'utf8', ); public $test = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => 'cakephp_sample', 'prefix' => '', //'encoding' => 'utf8', ); } |
my.cnfを作成。たしか文字コードの設定名がmysqlのバージョンによって違う場合があるので注意。ハマりポイントです。
参考
http://kennyqi.com/archives/334.html
/usr/local/etc/my.cnf
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[client] default-character-set = utf8 [mysqld] character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] character-set-server = utf8 [mysql] default-character-set = utf8 |
mysqlサーバを手動で起動。
「ERROR! The server quit without updating PID file」とか出たら大概はmy.cnfの設定ミスなので再確認すべし。
1 2 3 |
$ mysql.server start Starting MySQL . SUCCESS! |
DBを作る。
1 2 3 |
$ mysql -u root mysql> create database cakephp_sample; Query OK, 1 row affected (0.00 sec) |
毎回手動で mysql.server start するのはかったるいので、Macのlaunchctlで自動起動されるように設定。/etc/init.d/ でスクリプト起動できないのがなんかめんどくさい。
1 |
$ sudo cp /usr/local//Cellar/mysql/5.6.13/homebrew.mxcl.mysql.plist /Library/LaunchAgents/ |
よしエラーは残り一つ。
DebugKitを入れやがれ!って出ています。無視しても良さそうだけどせっかくだから入れてみる。
1 2 3 |
$ cd app/Plugin/ $ git clone https://github.com/cakephp/debug_kit.git $ mv debug_kit DebugKit |
app/Config/bootstrap.php
1 |
CakePlugin::load('DebugKit'); |
さて http://localhost で確認してみる。
やったぁぁぁぁぁ!オールグリーンになりました!

原田 敦

最新記事 by 原田 敦 (全て見る)
- Rails Engineでブログ機能追加するgemを作る - 2015年3月15日
- WEBエンジニア一人だけでサービスを作りきる方法-夫婦のための自動ごはん予定お知らせサービス「GoHaaan」制作でやったこと - 2015年3月7日
- CentOS6でMariaDBのDynamic Columnsを試してみた - 2015年2月28日