ゆったりゲーム三昧

趣味についてなんでも書くブログ。ゲーム三昧って書いてるけどゲームだけではなく、趣味のプログラミングについてもツラツラ書いている。

MacでHomesteadとLaravelのローカル開発環境を構築する方法

前置き

Webアプリ制作のためのフレームワークは `CakePHP` を使っていたのだけど、

間違えて rm コマンドでプロジェクトを全て消してしまい...(´・ω・`)

バックアップはとっていたものの結構前のもので、データベース周り全て消えていた..

作り直すくらいなら、前々から興味のあった Laravel というフレームワークで作り直そうということで

触ってみたところ、Homesteadを使う際にハマったので、起動までの流れをメモしておこうと思う。




環境

macOS El capitan 10.11.5 で行いました。




必要なもの

Laravel + Homestead でWebアプリ開発を行うには必要なソフトウェアがある。
VirtualBox
Vagrant
・Composer
・Laravel
・Homestead

最低限これらのものがないと動かない。
`Laravel` と `Homestead`のインストール手順は簡単に記述する。




Laravelのインストール

composerを使って、以下のようにLaravelをインストールする。

$ composer global require "laravel/installer=~1.1"

インストールしただけでは、laravelコマンドが使えません。
以下のようにしてパスを通してあげることでlaravelコマンドが使えるようになります。

$ export PATH="$PATH:~/.composer/vendor/bin "

ただし、これだけではターミナルを再起動すると、また使えなくなるので、
常にコマンドを使いたい場合は~/.bash_profileに書いておくといいと思います。

コマンドが使用できるようになったら、
作業ディレクトリに移動して、以下のコマンドでプロジェクトを作成します。

laravel new <プロジェクト名>

しばらく待機して、Laravelのプロジェクトができれば、ひとまずLaravelについては終了です。




Homesteadのインストール

まず、VirtualBoxにHomesteadのboxを追加します。

$ vagrant box add laravel/homestead

そして、カレントディレクトリをプロジェクトに移します。
移動したら、以下のコマンドでHomesteadをインストールします。

$ cd <プロジェクト名>
$ composer require laravel/homestead --dev

少し待機します...

次にVagrantfileとHomestead.yamlを作成します。

$ php vendor/bin/homestead make

そして、できたHomestead.yamlを編集します。
基本的に変える必要はないと思いますが、
初期設定ではローカルで http://homestead.app とアクセスできるようになるので、
これが嫌な場合は

sites:
    - map: homestead.app   #ここを、好きな名前に変える

たとえば

sites:
    - map: example.app 

とすると、ローカルで http://example.appのURLでアクセスできるようになります。

最後に、/etc/hosts ファイルでIPアドレスと紐付けすれば完了です

sudo vim /etc/hosts

追加するIPアドレスと関連するドメイン
先ほど設定したものにしてください。

192.168.10.10 homestead.app  # 初期設定のままならこちらを書く
192.168.10.10 example.app       # 自分で変えたなら自分で変えたドメインを書く。

.


起動

vagrant up

立ち上がって、http://example.app にアクセスすれば

Laravel5

と、表示されるはずです。




自動化

さて、これらの作業をプロジェクトを作るごとに毎回行なうのは大変です。
だったら、スクリプトチュートリアルを兼ねて自動化しようと思い至り、作ってみました。

GitHub - Kra8/Lame: Laravel + Homestead

Laravel + Homestead なので、Lameです。
f:id:game_kratos:20160629025419j:plain
え、レイム?ラムです。ラムがいいです。

これをインストールして、

$ lame <プロジェクト名>

とすると、さきほど説明した作業を全て自動で行ってくれます。
...はずですw
VirtualBoxやComposerなどもインストールしてなかった場合、全て自動でインストールするようになっています。
ですので、全く何もない環境でこのスクリプトを実行すると全ての処理が終わるのに1時間くらいかかるかもしれませんw

スクリプトはモロ初心者な上に、動作テストを十分に行っていないため、
環境によってはうまく動かないかもしれません...。
ですが、せっかく作ったので貼っておきます。
もし使ってエラーがでたら、教えていただけると助かります。