記事INDEX
Laravel始めたい
PHPのフレームワークの「Laravel」について勉強したいと思い『Laravelエキスパート養成読本』を購入しました。
保守中システムのために。。
現在、携わらせて頂いているシステムは開発元会社の独自フレームワークで構築されており、開発元会社とは連絡が付かない状況で機能追加などの開発効率が悪く頭を悩ませています。(独自フレームワークが悪い、というわけではないです。)
早速読んでいく
Laravelについての紹介に続き、サンプルアプリケーションのソースコードに沿ってLaravelでの開発について学ぶ章があったので、早速手環境を準備します。
環境構築
ローカル(Mac Book Air)にLaravel環境を構築するにあたり、書籍ではいろいろな環境が紹介されていたのですが、特に指定の環境がなかったのでVirtualBox + Vagrantで構築することにしました。
サンプルアプリケーションは、Laravel4で実装されているとのことなのでその環境に適したものはないかと探していたらドンピシャでLaravel4-Vagrantを見つけました。
ありがたいことに日本語化して下さっているリポジトリも見つけました。
さっそく作業していきます。
Laravel4-Vagrantをクローン
$ git clone git://github.com/HiroKws/Laravel4-Vagrant.git
クローンしたディレクトリに移動
$ cd Laravel4-Vagrant/
仮想マシン起動
$ vagrant up
立ち上がらない
Bringing machine 'laravel4' up with 'virtualbox' provider... ==> laravel4: Box 'precise32' could not be found. Attempting to find and install... laravel4: Box Provider: virtualbox laravel4: Box Version: >= 0 ==> laravel4: Adding box 'precise32' (v0) for provider: virtualbox laravel4: Downloading: http://files.vagrantup.com/precise32.box ==> laravel4: Successfully added box 'precise32' (v0) for 'virtualbox'! There are errors in the configuration of this machine. Please fix the following errors and try again: vm: * The 'extra' flag on synced folders is now 'mount_options'
Vagrantのバージョン1.3.5からは同期フォルダのオプションはextraじゃなくてmount_optionにするみたい。
参考:Vagrant1.3.5ではconfig.vm.synced_folderのパーミッションをmount_optionsで設定する
ということで、ForkしてきてVagrantfileを書き換えました。
- lv4_config.vm.share_folder("www", "/var/www", "./www", :extra => 'dmode=777,fmode=777') + lv4_config.vm.share_folder("www", "/var/www", "./www", mount_options: ["dmode=777", "fmode=777"])
もう一度!仮想マシン起動
$ vagrant up
仮想マシン無事起動した。
サンプルアプリケーションをダウンロード
https://github.com/jumilla/l4-sample-todo/archive/master.zip
解凍して、中身を仮想マシンのWebルートにコピー
/var/www
仮想マシンにログイン
$ vagrant ssh
Webルートに移動
$ cd /var/www/
コンポーザーから依存パッケージを取得
$ sudo composer update
DBの接続情報を変更する
/var/www/app/config/database.php
'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost:55556', 'database' => 'database', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ),
※Laravel4-VagrantのDB接続情報と初期データベース「database」を記述しておいた。
サンプルアプリケーションが使うテーブルがないのでアルチザンでマイグレート
$ php artisan migrate
http://localhost:55555にアクセス
ちゃんと表示されました!
さー続き読んでいきます。