今流行りのPHPフレームワーク「Laravel」。
これを扱いたい案件があって、開発環境を準備した時にちょっと迷ったので備忘録がてら手順を解説していきます。
この記事のコンテンツ
仮想マシンを作る
Laravelを動かすための仮想マシンを作成していきます。
使うアプリケーションは以下の通り。
- VirtualBox
- Vagrant
順番に導入していきます。
VirtualBoxのインストール
とりあえず仮想マシンを管理できるVirtualBoxを準備。
公式サイトからパッケージをダウンロード。
ダウンロードできたらdmgを実行してインストールしましょう。
Vagrantのインストール
続いて仮想マシンの操作・開発環境の構築をするVagrantもインストールします。
公式サイトからパッケージをダウンロード。
これもdmgを実行したらインストールするだけ。簡単。
仮想環境の構築
続いてVagrantでHomesteadやらを導入していきます。
Homesteadの導入
ここからはターミナルの操作になります。
とりあえずユーザー直下のディレクトリで作業しましょう。
$ vagrant box add laravel/homestead
こんなコマンドを打ち込むと、次のように訊かれますので、VirtualBoxを指定します。
==> box: Loading metadata for box 'laravel/homestead'
box: URL: https://vagrantcloud.com/laravel/homestead
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.
1) parallels
2) virtualbox
Enter your choice:
ここは多分ご利用の環境によって出てくる選択肢が違うと思いますが、僕の場合だと2番ですね。
しばらく時間がかかるので、コーヒーでも飲んで待ちましょう。
Vagrant boxの導入が完了するとこんなメッセージが表示されます。
==> box: Successfully added box 'laravel/homestead' (v9.3.0) for 'virtualbox'!
問題がなければHomesteadをGitから落としてきましょう。
$ git clone https://github.com/laravel/homestead.git Homestead
cloneが完了したら、Homesteadディレクトリに移動して初期化します。
$ cd ./Homestead
$ bash init.sh
完了メッセージが出たらOKです。
Homestead initialized!
仮想マシンとホストの共有フォルダは、デフォルトではhomestead/codeに設定されています。
しかしcodeフォルダが存在しないので、自分で作ってあげる必要があります。
$ cd ~/
$ mkdir code
ここまでできたら準備完了です。
仮想マシンを起動してみましょう。
仮想マシンを起動する
仮想マシンを起動するのもターミナルからコマンド入力で行います。
$ cd ./Homestead
$ vagrant up
何やらエラーが出てしまいました。
Check your Homestead.yaml (or Homestead.json) file, the path to your private key does not exist.
Homestead.yaml(設定ファイル)の秘密鍵へのパスを確認してくれってことだったので、ファイルの中身をみてみます。
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
パスは記述されているので、秘密鍵自体が存在していないようです。
秘密鍵を作成しましょう。
$ cd ~/
$ ssh-keygen -t rsa
どこにファイルを作成するか訊かれます。
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ユーザー名/.ssh/id_rsa):
特に指定もないのでそのままリターンキーを叩く。
続いてパスフレーズ。
Enter passphrase (empty for no passphrase):
適当に決めてリターン。
再度入力を求められるので、同じものを入力してリターン。
パスフレーズなんていらないぜ!って時は何も入力せずリターン。
SSH秘密鍵が作成されたか確認します。
$ ls -la I grep .ssh
無事に作成されていたら、再び仮想マシンの起動を試してみます。
$ cd ./Homestead
$ vagrant up
しばらくかかるので、カップラーメンでも食べながら待ちましょう。
VirtualBoxを開いて、こんなのがあれば起動完了です。
Laravelプロジェクトの作成
仮想マシンを起動できたら、ターミナルでSSH接続します。
$ vagrant ssh
無事に接続できました。
codeディレクトリに移動して、新規プロジェクトを作成します。
$ cd code
$ larval new test
仮想マシンのcodeディレクトリの下にtestディレクトリと、プロジェクトが作成されました。
これに合わせてホストと仮想マシンの紐付けをしてあげます。
/Users/ユーザー名/Homestead/Homestead.yamlを編集。
sites:
- map: homestead.test
to: /home/vagrant/code/test/public
Homestead.yamlを編集したら、反映させるために次のコマンドを入力します。
$ exit
$ vagrant reload --provision
プロジェクトを追加するなどでHomestead.yamlを修正したら、都度provisionしてあげる必要があります。
$ homestead up --provision
$ vagrant up --provision
mapのアドレスにアクセスすると、toのディレクトリが参照されるようになりました。
hostsファイルの編集
最後に、homestead.testにアクセスした時に、仮想マシンのIPアドレスに割り当てるようにhostsファイルを編集してあげます。
【仮想マシンのIP】 homestead.test
ここまでで一通りの作業は完了です。
あとは実際にhomestead.testにアクセスしてみて、ウェルカムページが表示されているのが確認できたらOKです。
DB接続情報の編集
仕上げにデータベースへの接続情報を編集しておきます。
$ cd test
$ sudo vi .env
上記コマンドで.envファイルの編集に入れます。
該当部分を次のように編集しましょう。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
保存したら、migrationしてあげます。
$ php artisan migrate
さいごに
導入までがだいぶ面倒くさいですけど、あとはHomesteadでプロジェクトをガシガシ作ったり壊したりできるようになりました。
気兼ねなく遊べますね!