本書が提供してくれている環境に、CakePHP開発環境を割り込ませようという、ミッションインポッシブルばりのスパイ活動を遂行します。なお、失敗した場合は当局は一切関知しません。

まず、何故CakePHPなのか、なんですけどね、まぁ、あっしんとこに出来の少々良くない子分がいると思ってくだせぇ、いや、今そいつをね、ちょいと他家へ助っ人に行かしてるんで、へい。

ところがその家の親分から、こいつが使い物にならねぇと。親分何とかしてくんねぇと面倒見きれやせんぜと。で、その一家が使ってるのがCakePHPなんでごぜぇやすよ、しかも2なんで、ここはその環境を作って若い衆をも一回しばきなおさにゃなるめぇと。

で、ちょいとググってみたらcomposer使ってインストールしろと。えー、めんどくさーい。

で、ここにアクセスしてみました。

https://github.com/cakephp/cakephp/tags

なんだ、ちゃんとzipもダウンロードできるじゃん。てなわけで、2.8.5のzipをダウンロード、解凍して、

c:\donichi\cakephpに展開しました。

とりあえず、cakePHPの用意は出来たので、これはひとまず置いておきます。

さて、作戦は一つずつ確実に進めていきましょう。まずは、portを80にしちゃおうかな。

あ、その前に先ほど、httpdのテストで使ったVM環境を捨てました。

c:\cakephpに移動して

vagrant destroy

を実行します。これでVirtualBoxからも消えます。

ではゲストportを80にして実行してみます。

8000のport指定が要らなくなりました。

次のミッションは、ドキュメントルートをデフォルトにすることです。

ドキュメントルートを変更していると思われるfuelphp.confをリネームしてしまいます。

しかし、今まで何度も実行しているわけで、bootstrap.shの中に気になる一行があるのです。

cp /mnt/fuelphp/vagrant/*.conf /etc/httpd/conf.d

この一行はコメントアウトはしません。というのは、confファイルはもう一つあるんです。

phpmyadmin.confです。これはphpmyadmin用の設定だと思われるので、そのまま生かしておきたいのです。

このとおり、phpmyadminの環境まで整えてくれているわけです。至れり尽くせりなんですね。これじゃxampp要らないわけです。

なので、すでにコピーされているかも知れない、fuelphp.confを探してみます。

いますわなー当然。消します。パーミッションみるとsudo付けないと消せなそうな。

一応/mntの下も見ておきましょう。

おー、さすがマウント。もう書き換わってます。

では再起動して。

あれ、こっちはデフォルトでindex.htmlがありますね。あ、いや、違うな。これ自分で作ったんだな。

では/var/www/htmlの直下に/mnt/fuelphp/publicのシンボリックリンクを、donichiという名前で作ります。名前はなんでもいいんですけどね。

こっちもsudoが必要でした。

この作業によって、

http://localhost/donichi

でfuelphpのスタートページが出るはずで、

http://localhost/donichi/calendar

でカレンダーが出るはずです。

これは出たのですが、カレンダーは失敗しました。

welcomページが出るのでリンクが効いていないことはないはず。pubic下のindex.phpには届いていると思えます。

これですね。index.phpを書いてやらないといけない。ということは。

この辺りはFuelPHPやCodeIgniterなんかで必ずぶつかる問題です。これらのフレームワークって絶対にindex.phpを通過する仕様なんです。なので、

http://localhost/donichi/index.php/calendar

みたいなリクエストで動くのですが、全部にindex.php付けるのかっこ悪いよねー、ということで、設定で消せるのですが。。。。

あー、fuelphp.confなくしたからかなー。すると/etc/httpd/conf/httpd.confの設定が生きてるわけで。調べます。PuTTY再度登場。

これが臭い。今まではfuelphp.confが、

AllowOverride All

にしてたんですね。

直して再起動。

当たりです。ミッションは順調に進んでいます。トムクルーズのように死にかけたりしてません。

ここまで来たんでぃ、CakePHP乗っけちまえ!

てんで、vagrantfileに一行加えます。

config.vm.synced_folder '../../cakephp','/mnt/cakephp',mount_options: ['dmode=777', 'fmode=666']

これでいいはずなんだが。再起動してみます。

vagrant up の出力ログにはちゃんとマウントされた表示が出ています。

PuTTYで確かめます。

いいですね。では。ドキュメントルートにシンボリックリンクを作りましょう。

sudo ln -s /mnt/cakephp/app/webroot cake

こんな感じですかね。ドキュメントルートに移動してから実行します。

http://localhost/cake

で何か出てほしいです。

いやぁ、私も初めて見ました。CakePHPのトップ画面です。

ミッション完了です。これから美女とバカンスです(笑)