見出し画像

Homestedの環境構築の前知識



0 環境構築の全体図


実装 laravel vue-46


1 VirtualBoxとは?


既存のOS上で別のOSを実行できる仮想化ソフトウェア。
VirtualBox は、Mac や Windows などの環境で利用できる。
VirtualBox を使うと、私たちが使っている Mac または Windows 上で別の OS を実行できるようになる。
実際に Mac 上で VirtualBox を使い Windows を起動している画面。

スクリーンショット 2020-01-21 13.16.31

一つのアプリケーションのように Windows を実行して、操作できる。
この場合、Mac 側をホストOSと呼び、Windows 側をゲストOSと呼ぶ。

自分のMac や Windows に Web サーバーや PHP、データベースをインストールして、開発環境を構築することも可能だが、本番環境では別の OS が使われていたり、PHP やデータベースなどのバージョンが違うなど環境が異なるため、本番環境では動作しないということがある。
VirtualBox の仮想化ソフトウェアを使えば、本番環境と同じまたは近い環境を構築し、その環境で開発できるという利点がある。

VirtualBox には共有フォルダという機能がある。
先ほど、VirtualBox を使って Mac 上で Windows を起動した。
Mac 側にあるフォルダと Windows 側にあるフォルダを共有することができる。
この機能を利用することで、Mac 側で変更した内容は、リアルタイムで Windows 側の共有しているフォルダにも反映される。
逆も同じく、Windows側で変更した内容は、リアルタイムでMac側の共有フォルダにも反映される。

この機能を利用し、最終的には下記のような環境を構築する。

スクリーンショット 2020-01-21 13.14.56

上図に記載した Laravel-A と Laravel-B というフォルダ名は任意で決めらるが、ここではこのようなフォルダ名にしたと仮定して考える。

Mac のローカル上にある Laravel-A というフォルダと、ゲストOS にある Laravel-B というフォルダを共有するように設定する。

共有設定することで、コードの変更などの作業は Mac 側で行える。
そのため、普段利用しているテキストエディタや IDE を使うことが可能。

Mac 側には Laravel を動かすのに必要な Web サーバーや PHP、データベースなどが入っていないが、ゲストOS側には入っているため、実行できる。

ホストOS 側のブラウザから 192.168.○○.○ または homestead.test と入力すると、ゲストOS側にある Laravel のフォルダを参照します。そのため、ホストOS 側のブラウザで簡単に(本番環境に即した)実行結果を確認することができる。


便利な仮想環境だが、環境を構築するのに手間がかる。

Laravel を利用するには、Web サーバーや PHP、データベースなどが必要。
VirtualBox の仮想環境に Ubuntu(ウブントゥ) という OS をインストールし、Nginx(エンジンエックス) というWebサーバーを入れて、 PHP と MySQL をインストールし、Laravel が動作する環境を構築する必要があります。
他にも先ほど説明した共有フォルダの設定などもする必要がある。

OS や Web サーバーのインストールの仕方も設定方法もよくわからないし、ハードルが高そうだから諦めよう(´;ω;`)
ってなる。
でも大丈夫!Vagrant(ベイグラント)を使うと、これらのインストールや設定作業を自動でやってくれる!


Virtual Boxのメリット

1 既存のOS上で別のOSを実行できる

2 共有フォルダ機能がある

Virtual Boxのデメリット

1 実行はできるが、実行させるまでサーバーやデータベース、PHP、OSなどたくさんのものをインストールして準備しなければならない。


2 Vagrantとは?


開発環境を簡単に構築できるオープンソースのソフトウェア。
Vagrant を利用すると、ターミナルから vagrant up とコマンドを打つだけで、開発環境を構築することが可能。

スクリーンショット 2020-01-21 13.25.36

実際にはもう少し手順が必要だが、このような感じで簡単に開発環境を構築できる。

Vagrant は、VirtualBox に対して、仮想マシンの起動や操作、停止や破棄などの指示をしてくれる。
仮想マシンに対して、 Vagrant 経由で指示をするため、VirtualBox を操作することは基本的にない。


3 VagrantBoxとは?


 VirtualBox には仮想マシンをエクスポートする機能がある。
エクスポートしたファイルを利用することで、他のパソコンでも同じ仮想マシンをインポートすることができる。

インポート・・他のファイル形式のファイルを取り込む、バックアップを戻す
エクスポート・・他のファイル形式として保存、バックアップ

説明1

Vagrant box には、このようにエクスポートしたファイルなどが含まれている。
この Vagrant box を利用することで、vagrant up とコマンドを打つだけで、簡単に仮想環境を構築できる。

説明2

Vagrant Box は仮想マシンのベースとなるもの。 Box を元にして仮想マシンが作成される。

Vagrant の利用の手順として、まずは利用したいOSの仮想マシーンファイル(Boxファイル)を入手することから始まる。 OS をイチからインストールするのは手間がかかるので、作業のベースとなる仮想マシーン(Box)をクローンして新しい仮想マシーンを構築する。


3−1 vagrantboxのダウンロード


Vagrant box は HashiCrop が運営している Discover Vagrant Boxes から探すことができる。
ターミナルから Vagrant boxを追加するときは下記のように記述する。

vagrant box add centos/7

Vagrant box は Users/ユーザー名/.vagrant.d/boxes/ のディレクトリにダウンロードされる。

パソコンの設定によっては、隠しファイルやフォルダは表示されないようになっているため、設定を変更しないと実際にこのフォルダを見ることはできない。

コマンド入力でファイルやフォルダの操作を行うため、隠しフォルダ・隠しファイルなどは表示されてなくても問題ないが、マウスクリックで実際のフォルダ・ファイルを確認したい方は、ソフトを利用したり、設定を行ったりすると Mac や Windows で閲覧することもできます。

Mac の方なら Funter というソフトを使うと隠しファイルが表示できる。


3−2 vagrantboxの使用の流れ


vagrant box をダウンロードした後に、任意のディレクトリを作成し、ターミナル上でそのディレクトリに移動する。今回は、centos/7 の Vagrant box を利用するので、下記のように記述します。

vagrant init centos/7

init は イニシャライズという英語で、初期化という意味。
vagrant init とコマンドを打ち、初期化したということ。

初期化すると、Vagrantfile という Vagrant の設定が記述されたファイルが作成される。
その後に、vagrant up とコマンドを打つと、仮想マシンが構築され、起動する。

実装 laravel vue-48

スクリーンショット 2020-01-21 13.25.36

Laravel 公式で Homestead という簡単に開発環境を構築できるツールを提供している。
この Homestead を利用して開発環境の構築を行う場合、先ほどの CentOS の手順とは多少異なる。
次は、この Homestead について見ていく。


Homestedとは?


Laravel 公式が提供している Homestead(ホームステード)は、Laravel が動作する開発環境を簡単に構築できるツール。(あくまでツールであるということが重要。Homestead自体が仮想環境ではない)

先ほどの Vagrant を利用して CentOS の環境を構築する例では、Vagrant box をダウンロードして、vagrant init centos/7 とコマンドを打つと、Vagrantfile という Vagrant の設定が記述されたファイルが作成されますと説明した。

Homestead を利用して開発環境の構築を行う場合は、Laravel 公式から配布されている、設定済みの Vagrantfile を利用する。

また、VirtualBox について説明したときに、ホストOSとゲストOSで共有フォルダの設定ができると説明した。
Homestead の場合は、このような設定も Homestead.yaml というファイルに記述するだけで簡単に設定できるようになっている。

これらの Vagrantfile や Homestead.yaml などのファイルは、Laravel Homestead という名称で、一式ダウンロードできるようになっている。
Vagrantfile や Homestead.yaml 以外の必要なファイルも含まれている。

正確には、Homestead.yaml というファイルは自分でコマンドを打って作成する。
Homestead.yaml を作成するのに必要なファイルが含まれているということ。

開発環境を構築するにあたり、先ほど説明した Vagrant を利用して開発環境の構築を行う。
Laravel 公式から Homestead Vagrant box という名称の Vagrant box がダウンロードできるようになっている。

Homestead で開発環境を構築するには、

1 Homestead Vagrant box 

2  Laravel Homestead 

の2つをダウンロードして用意する必要がある。


Conposerとは


Composer(コンポーザー)は、ライブラリの依存管理ツール。
そう言われてもよくわからないと思うので、Laravel を例に Composer の解説。

Laravel を使うには、Taylor さん以外の方が作ったライブラリがたくさん必要。
どのようなライブラリが必要かは、Packagist の Laravel に記載されている。
laravel/framework v5.4.13 の場合は、ざっと下記が使われている。

スクリーンショット 2020-01-21 14.10.05

リンクをクリックして必要なライブラリを確認し、一つ一つダウンロードしてください。
えーっ!!! Laravel 使うのやめようかな... となる。

Composer を使うと、ターミナルから下記のようにコマンドを入力するだけで、依存しているライブラリを vendor フォルダ内に全てダウンロードしてくれる。

composer create-project laravel/laravel --prefer-dist











この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

感謝しまスロベキア
1
ただひたすら最善手。塞翁が馬。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。