LoginSignup
7

More than 5 years have passed since last update.

CakeboxでCakePHPのローカル開発環境を構築する

Posted at

CakePHP3.2が出ましたね。
3.2はPHP5.5.9以上がrequiredになっています。が!私のローカル環境(Mac)のPHPは5.4! :scream:
というわけで、どうにかすることにしました。。。

phpenvというので複数バージョンのPHPを入れてみようと思ったけどうまくいかず挫折し、前に使ってみたのが残ってたVagrantのVirtualBoxのCentOSなやつに入れようと思ったらintlが入ってなくてpecl installしようと思ったけどうまくいかず挫折し、Cakeboxというのを見つけたので、これを使うことにしました。
https://github.com/alt3/cakebox

Cakeboxのインストール

書いてある通りにやればいいのですが、VagrantとVirtualBoxはすでに入れてあったので割愛。

git clone https://github.com/alt3/cakebox.git
cd cakebox
cp -pi Cakebox.yaml{.default,}

ローカルにあるworkspaceディレクトリを共有させたいので、Cakebox.yamlファイルを編集して追加します。

Cakebox.yaml
synced_folders:
  - local:  Apps
    remote: /home/vagrant/Apps
  - local:  /Users/ran/workspace
    remote: /home/vagrant/workspace

仮想マシンを起動します。

vagrant up

初回は時間がかかります。
完了したら仮想マシンにsshします。

vagrant ssh

設定

仮想マシンでcakebox application add アプリケーション名とするとアプリケーションを作って諸々設定してくれますが、ソースはすでにあるので、バーチャルホストとDBの設定だけをします。

バーチャルホストの設定

cakebox vhost add cakebox-myproject /home/vagrant/workspace/myproject/app/webroot

サーバー名(cakebox-myproject)とドキュメントルートを指定します。
cakebox-myprojectの部分は何でもいいのですが、プロジェクト名の頭にcakebox-を付けることにしました。
これで /etc/nginx/sites-available/以下にNginxの設定ファイルが作成され、/etc/nginx/sites-enabled/以下からシンボリックリンクが張られている状態になります。

ローカルマシンの/etc/hostsに以下を追加します。

/etc/hosts
10.33.10.10 cakebox-myproject

ローカルのブラウザからhttp://cakebox-myproject/でアクセスできるようになりました。

データベースの設定

cakebox database add -u dbusername -p dbpassword mydbname

CakePHPがアクセスするユーザー名(dbusername)とパスワード(dbpassword)を指定してmydbnameというデータベースを作成します。

必要なテーブルをCakePHPのmigrationsで作成します。

cd workspace/myproject/app
bin/cake migrations migrate

おまけ

私は環境変数CAKE_ENVを設定して、各種設定値を開発と本番で読み分けたりしているので、バーチャルホストでも同様の設定をしました。
/etc/php5/fpm/pool.d/www.confに以下を追加します。

/etc/php5/fpm/pool.d/www.conf
env[CAKE_ENV] = local

sudo /etc/init.d/php5-fpm restartとか(stopとかstartとか)やってみたんですが、どうも再起動されないようなので、vagrant halt して vagrant up しなおしました。
なんでrestartできないのか…。

まとめ

というわけで、割とスムーズに環境構築できました。:smile:
cakeboxコマンドでnginxの設定ファイルができたり、DBが作れたりするのは便利ですね。

ちなみに http://10.33.10.10/ を開くと、設定されているものの一覧が見れます。betaなので見るだけっぽいですが…。
でもそれぞれのアプリケーションのCakePHPのバージョンが一覧できるのはちょっと嬉しいかも。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7