Laravel

mac+VirtualBox+Vagrant with HomesteadでLaravel

この記事の概要

使用するツール、ソフトウェア

VirtualBox

PC内に仮想PCを設置できるツール

Vagrant

仮想PCを構築・管理するソフトウェア

Vagrant Box

仮想環境構築用のファイル群
これをAというPCからエクスポートし、BというPCにインポートすることで、
Aの仮想環境=Bの仮想環境 という状態を簡単に実現できる。
例)vagrant box add laravel/homestead
⇒HomesteadというVagrant Boxをインポートするコマンド

Homestead

vagrantのBOXのひとつ。Laravelの環境構築と管理を行うためのツール集
PHPやMySQL,PostgresSQLなど一通りのものが入っているらしい。

Sequel Pro

VagrantのMySQLのDBやテーブルをGUIで閲覧・編集できるソフトウェア。
XAMPPでいうところの、PHPMyAdminに相当する。

実行したこと(ツール・ソフトウェアインストール編)

VirtualBoxのインストール

https://www.virtualbox.org/wiki/Downloads

Vagrantのインストール

https://www.vagrantup.com/downloads.html

VirtualBoxでLaravel環境構築に必要なものを取得

vagrant box add laravel/homestead
※このコマンド、どのディレクトリにいる状態で実行したか失念しました

Homestead関連のものをGitから取得

cd ~ //ホームディレクトリに移動
mkdir app //任意のディレクトリ作成(後々、ここにLaravelのファイル群を入れる)
cd app
git clone https://github.com/laravel/homestead.git Homestead //実行後、Homesteadというフォルダが作成される
cd Homestead
git checkout v8.6 //時期により、最新かつ安定したバージョンでcheck out推奨。バージョン情報はcloneしたGitHubにブラウザでアクセス
bash init.sh

Vagrant起動

cd ~/app/Homestead
vagrant up

Homestead.yml(設定ファイル)の修正

cd ~/app/Homestead
vim Homestead.yml

--//Homestead.ymlの記載内容
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/app //修正対象。ホスト(自分のPC)上のフォルダ。VirtualBoxとの共有フォルダとなる。先ほどmkdirしたフォルダ名に書き換え
      to: /home/vagrant/code //ゲスト(VirtualBox)上のフォルダ。自分のPCとの共有フォルダとなる

sites:
    - map: homestead.test
      to: /home/vagrant/Code/Laravel/public

databases:
    - homestead

SSH鍵作成

cd ~/
ls -la I grep .ssh //既存のSSH鍵がないか確認
ssh-keygen -t rsa //(既存のSSH鍵が無かった場合)SSH鍵作成
ls -la I grep .ssh //SSH鍵の作成に成功して、存在しているかの確認

VagrantにSSHログイン

vagrant ssh

composerで、Laravel開発に必要なものをインストール

composer create-project laravel/laravel --prefer-dist ディレクトリ名

※成功すると、ゲスト(Vagrant)のhome/vagrant/code直下に、指定したディレクトリ名でフォルダーが作成されている&中にappフォルダ、publicフォルダといった、Laravel開発に必要なものが入っている状態になります。
※かつ、ホスト(自分のPC)の共有フォルダ(この記事でいうとUsers/[ユーザー名]/app)にも、全く同じものが入っている状態になります。
※ホスト側でフォルダの中のファイルの中身を編集すると、自動的にゲスト側のフォルダの中のファイルの中身も編集されます(共有フォルダなので)

ブラウザでLaravelのトップページ表示

ブラウザで、http://192.168.10.10 (Homestead.ymlに記載のIPアドレス)にアクセス
⇒Laravelのメインページが表示されれば、Laravel開発の準備完了

※IPアドレスでなく、ホスト名をブラウザのURL欄に入力して表示させることも可能です。
その場合、macの設定ファイル「hosts」を弄ることになります。

sudo vim /etc/hosts //管理者権限でhostsの編集を実行

----
192.168.10.10 homestead.test //Homestead.ymlに記載のIPアドレスと、sites:- map: に記載のホスト名

実行したこと(DB準備編)

Vagrantには予めMySQLとPostgreSQLが用意されています。
ここでは、MySQLを使用する前提で、実行したことを記述します。

編集中・・・

VagrantのMySQLにログインして、create database hoge: