1. TOP
  2. web
  3. php
  4. laravel
  5. Laravelプロジェクトごとに環境構築

Laravelプロジェクトごとに環境構築

|

フレームワーク無しのPHP開発環境を、vagrantを使って共有したり他マシーンに移植する方法はわかった。次は、Laravelプロジェクトの環境を、Homestead(Laravel公式のvagrant box)を使って構築する。

Homestead環境の構築方法には、グローバルで構築する方法とプロジェクト毎に構築する方法がある。
グローバルにインストールすると、プロジェクト間で予期せぬ汚染を招きそうなので、ここではプロジェクト毎に構築する方法を説明する。

HomesteadによるLaravel環境構築

以下のサイトからも手順を参考にした。

HomeSteadはプロジェクト毎にインストールするようにする

Laravel5.5の開発準備(Homestead)

実は、グローバル構築しようとして半日以上、エラーと向き合ってヘトヘトになっていた。その後に読むと、普段はいまひとつ頭に入ってこないLaravel公式サイトの説明も、すんなり理解できた。

Homesteadをグローバルにインストールし、全プロジェクトで同じHomestead Boxを共有する代わりに、Homesteadインスタンスを管理下のプロジェクトごとに設定することもできます。

プロジェクトごとにHomesteadをインストールする利点は、Vagrantfileをプロジェクトに用意すれば、プロジェクトに参加している他の人達も、vagrant upで仕事にとりかかれることです。

Laravel 5.8 Laravel Homestead

グローバルで構築した場合、Homestead.yaml に各プロジェクト(アプリ、あるいはサイト)の設定情報をまとめねばならず、見通しが悪くなりそうなのと、各プロジェクトごとに独立させた方が、どこかで失敗した時のダメージが小さくて済む。

なので、プロジェクトごとに環境構築する。

しかし、プロジェクトごとにHomesteadをインストールする方法では、プロジェクトが増えるに従ってディスク容量を食うので、やはり、全プロジェクトで同じHomestead Boxを共有する方法がベターと思われる。そちらの方法は、こちらに別記事で書きました。

グローバルなHomesteadでLaravel環境構築

ディレクトリー構成

Vagrant と VirtualBox はもちろんインストール済み。2020年3月2日現在、VirtualBoxはバージョン 6.1.4 r136177 (Qt5.6.3)、Vagrant は version 2.2.7。

vagrant up の起点となるディレクトリを、ホームディレクトリ直下の ~/Homestead_Site 以下に作成。

グローバルでhomestead環境を構築するのに ~/Homestead ディレクトリを作成済みなので、それと区別して、~/Homestead_Site ディレクトリを作成。この配下に、各プロジェクトを配置していく。

$ mkdir ~/Homestead_Site

そしてHomeSteadはプロジェクトごとにインストールする。

$ cd Homestead_Site
$ mkdir project01

仮想環境との共有フォルダも先に作っておく。

グローバルで構築したHomestead環境の共有フォルダとして、~/code/ を作成済みなので、それと区別して ~/code_proj/ 以下に各プロジェクトが配置されるようにする。

$ mkdir ~/code_proj
$ cd ~/code_proj
$ mkdir project01

ホストマシン側と仮想環境(ゲストマシン側)で、このような構成でフォルダが共有されるはず。

* Host
~/code_proj
├ project01
└ project02

* Guest
/home/vagrant/code
├ project01
└ project02

Homesteadのインストール

一つ目のプロジェクトを管理するディレクトリに移動。

$ cd ~/Homestead_Site/project01

まずは、composerのダウンロード

$ php -r "copy('https://getcomposer.org/composer.phar', 'composer.phar');"