Vagrant上にLaravelの開発環境を作る
2年以上前にフレームワークを使わずにPHPで書いたサイトがあるのですが、久しぶりにAnalyticsを見たらまだ日に30PVくらいのアクセスがありました。
今ならもっと良いサイトにできそうな気がしたので大規模改修をしようと思い立ち、Laravelベースで再実装することにしました。
というわけで早速Laravelの開発環境を作ったので、経過をまとめておきます。
最初にやっておくこと
- VirtualBoxのインストール
- Vagrantのインストール
Homesteadのvagrant boxを追加
そもそもHomesteadとは
ざっくり言えば、Laravelの開発環境をまとめたBoxです。 Homesteadの公式サイトによれば、
Homesteadは、Windows、Mac、Linuxシステムで実行でき、Nginx Webサーバー、PHP7.0、MySQL、Postgres、Redis、Memcached、Nodeやその他、素晴らしいLaravelアプリケーションを開発するために必要な、クールなツールを全部含んでいます。
だそうです。
これさえ入れておけば大体は事足りそうです。
VagrantにHomesteadを入れる
vagrant box add laravel/homestead
途中でどの環境に入れるのか聞かれるので、virtualboxを選択します。そこそこ時間がかかります。
Homesteadのダウンロード&初期化
任意のフォルダに移動し、git cloneします。
git clone https://github.com/laravel/homestead.git Homestead
git cloneしたら新しくできたディレクトリ(Homestead)に入って、以下のコマンドをたたきます。
bash init.sh
これでHomestead内にHomestead.yamlという設定ファイルができるはずです。
設定ファイルの書き換え
Homestead.yamlの書き換え
先ほどできたHomestead.yamlを書き換えます。最初は以下のような状態のはずです(バージョン次第で違うかも)
--- ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: ~/code to: /home/vagrant/code sites: - map: homestead.app to: /home/vagrant/code/public databases: - homestead # blackfire: # - id: foo # token: bar # client-id: foo # client-token: bar # ports: # - send: 50000 # to: 5000 # - send: 7777 # to: 777 # protocol: udp
このうち、書き換えるべきはfoldersとsitesの2項目です。SSHキーを作る場合も変更が必要ですがこの記事では割愛します。
foldersはvagrant上のディレクトリにローカルディレクトリをマウントする設定です。書き換え方は以下のような感じ。
folders: - map: ~/[ローカルでプロジェクトを作る場所]/[これから作るプロジェクト名] to: /home/vagrant/code
次にsitesです。こちらはサイトとして公開するディレクトリの設定です。
sites: - map: homestead.app to: /home/vagrant/code/[これから作るプロジェクト名]/public
mapのところは任意のものに変えても大丈夫みたいです。
hostsの書き換え
macの場合、/etc/hostsを書き換えます。windowsでは場所が違うみたいです。
自分の場合、ルート権限が必要だったのでsudo vi hosts
で書き換えました。
192.168.10.10 homestead.app
先ほどHomestead.yamlに設定したmapと連動するので、IPと名前は合わせておきます。
vagrantの起動とプロジェクト作成
vagrantの起動
先ほどHomesteadをgit cloneしたディレクトリに移動してvagrant up
します。
ちゃんと起動すればvagrant ssh
でvagrant環境に入れます。
プロジェクト作成
vagrant環境に入ったらcodeディレクトリに移動し、以下のコマンドでLaravelのプロジェクトを作成します。
Composerを使うんですね。
composer create-project laravel/laravel --prefer-dist [任意のプロジェクト名]
--prefer-dist
は安定版を入れるというオプションだとか。(Composerの使い方よく知らない…)
Laravelが導入できたか確認する
方法は簡単です。vagrantを起動した状態でHomestead.appにアクセスして、こんな画面が表示されれば成功です。
なお、うまくいっていない時は「no input file specified」と表示されます。
おそらくHomestead.yamlかhostsの設定の問題なので、このあたりをよく確認しましょう。
おつかれさまでした。
さてさて、Laravelは素人ですが、これからいい感じのサイトを作れたらいいなあ。