LaravelのHomeSteadを使ってみたいけれど、仮想空間の構築が初めてで、よく分からない。
そんな人のために、Windows10でHomestead環境を構築するためのステップを分かりやすく解説します。
何回かの記事に分けて解説していきますね。
HomesteadとXamppの違いを知りたい場合は、ひとつ前の記事で解説しています♪
Laravel Homesteadを使ってみたいけどコマンド入力が難しい!という人のために手順を分かりやすく解説
まずは必要なツールをインストールするところからスタートします。
次にHomesteadをvagrantに追加。
その後、プロジェクトをインストールしていきましょう。
① 必要な3つのツールをインストール
最初に、次の3つのツールをいれておきます。
EXEファイルをダウンロードして、「次へ」(Next) で進めて、インストールをします。
特に設定が必要な部分はありません。
それぞれのツールの役割は次のとおりです。
- VirtualBox:仮想環境を作成する。
- Vagrant:VirtualBoxで作った仮想環境を操作する。
- このとき、Git Bashという Git for Windowsインストール時に入るツールを使って、コマンドを入力する。
ここから先は、主にGit Bashを使って、コマンド入力で操作を進めていきます。
ちょっと脱線:コマンド入力が不慣れな方へコマンド入力時のポイント!
コマンド入力って、結構、最初はむずかしく感じますよね。
わたしも、以前は、コマンドを入れるのが苦手でした。関係のないところでコマンドを打って「ああ~、また動かない・・・」と嘆いたりしていました。
そんな経験から思うのは、コマンドを入力するときは、今、自分がどこにいるか意識しておくのが大事、ということです。
そのために役立つコマンドをふたつ、紹介しますね。
pwdコマンド:現在地が分かる
pwd コマンドを入力すると、現在地が表示されます。
1 |
pwd |
入力例)
lsコマンド:今いる場所のファイル・フォルダが表示される
ls コマンドをいれると、今いる場所にあるファイル・フォルダが表示されます。
1 |
ls |
入力例)
コマンド入力に慣れない間は、この2つのコマンドを使って、現在地を確認しつつ進んでいきましょう♪
② Laravel HomesteadをVagrantに追加
次に、Windowsなら、スタートメニュー Git/Git Bashを起動します。
Git Bash上で下記コマンドを実行し、Laravel HomesteadをVagrantに追加します。
1 |
vagrant box add laravel/homestead |
結構時間がかかりましたね。
5分ぐらいはかかったと思います。
インストールの途中、「プロバイダーを選択してね」という英語メッセージが表示されます。
1)parallels または 2) virtualbox のどちらかを選択するように表示されるので、1) virtualbox を選びましょう。
③ Homestead設定ファイルのリポジトリをクローン
【C:\Users\ユーザー名】の場所に、Homesteadフォルダを作成しておきます。
Git Bash上でcdコマンドを使って、【C:\Users\ユーザー名\Homestead】へ移動します。
そこで、下記コマンドを実行して、Homesteadのgitレポジトリを、projectディレクトリの中に作成します。
1 |
git clone https://github.com/laravel/homestead.git project |
【C:\Users\ユーザー名\Hoestead】の中にprojectファイルができ、この中に、Homestead用ファイルが一式ダウンロードされます。
【C:\Users\ユーザー名\Homestead\project】の中に【code】フォルダを新規作成しておきます。
④ 設定ファイルの作成
Git Bash上で、cdコマンドを使って【C:\Users\ユーザー名\Homestead\project】へと移動します。
ちなみに、cd と入力すれば、【C:\Users\ユーザー名】まで移動できます。
そこから cd Homestead/project と入力すれば、目的に移動できます。
そこで、下記を実行して、設定用ファイルを作成します。
1 |
bash init.sh |
【C:\Users\ユーザー名\Homestead\project】を確認してみると、Homestead.yamlファイルが作成されているのがわかります。
Homestead.yamlは、Homesteadの基本情報を入れるための大事なファイルです。
このファイルに入力する前に、SSH鍵をチェックしておきましょう。
⑤SSH鍵の設定
自分のOSとHomestead仮想環境は、同じPCの中にありますが、別々の場所となります。
そのため、仮想環境に入るときには、サーバーに入る時と同様、SSH秘密鍵が必要になります。
はじめて仮想環境を使うときはピンとこないかもですが。
ここ、結構、大事なポイントです!
【C:\Users\ユーザー名\.ssh】に、すでに公開鍵と秘密鍵がある場合には、この鍵を使います。
もしない場合には、作成する必要があります。
すでにある場合には、既存ものを使えば大丈夫です。
作成手順は次のとおりです。
公開鍵と秘密鍵を作る手順
1. Git Bash上で、【C:\Users\ユーザー名】に移動し、下記コマンドを実行します。
1 |
ssh-keygen -t rsa |
2.コマンド実行後、’Enter Passphrase’ と表示されるので、パスフレーズを設定してください。
確認用にもう一度入力する必要があります。
なおPassphrase(パスフレーズ)とは、パスワードのようなものです。
入力時には、セキュリティのため、文字が全く表示されません。
「本当に入力できているのかな?」と不安になりますが、大丈夫です。
⑥Homestead.yamlファイルの編集
鍵を確認、または作成後、④で作成した Homestead.yamlファイルを編集します。
変更ポイントは、次の5か所。
- authorize (⑤で設定したssh公開鍵を入力)
- keys(⑤で設定したssh秘密鍵を入力)
- folders(HomesteadとWindowsの共有フォルダ)
- sites(Homesteadのサーバーアプリで公開するサイト)
- databases(データベース)
記入例は、下記のようになります。
ユーザー名には、ご自身のユーザー名を入れてください。
projectも、プロジェクト名に応じて変えてくださいね。
【Homestead.yaml記入例】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
--- ip: "192.168.10.10" memory: 2048 cpus: 2 provider: virtualbox authorize: C:\Users\ユーザー名\.ssh/id_rsa.pub keys: - C:\Users\ユーザー名\.ssh/id_rsa folders: - map: C:\Users\ユーザー名\Homestead\project\code to: /home/vagrant/code sites: - map: newproject.localhost to: /home/vagrant/code/newproject/public databases: - homestead features: - mysql: false - mariadb: false - postgresql: false - ohmyzsh: false - webdriver: false #services: # - enabled: # - "postgresql@12-main" # - disabled: # - "postgresql@11-main" # ports: # - send: 50000 # to: 5000 # - send: 7777 # to: 777 # protocol: udp |
foldersとsitesに何を入れるべきか、少しわかりにくいので、説明しますね。
Homestead.yamlファイルの内容解説
■folders: map: には、自分のローカル環境上で、プロジェクトが保存される場所を指定します。
■folders:to: には、仮想環境上で、プロジェクトが保存される場所を指定します。
■sites:map:は、プロジェクトを表示するために、ブラウザに入力するURLとなります。
上記では、下記のようにしています。
– map: newproject.localhost
to: /home/vagrant/code/newproject/public
newproject はまだないディレクトリ(フォルダのこと)です。後で laravel の新しいプロジェクトを作成します。
■site:to: は、仮想環境上で、プロジェクトが表示されるためのパスです。
yamlにパスを正しく入力しておかないと、エラーになってしまいます。
エラーになった場合は、パスなど間違えていないか、チェックしてみてくださいね。
⑦ Windowsのhostsファイルを編集
次に、WindowsにHomesteadのIPアドレスを設定しておきます。
【C:\Windows\System32\drivers\etc 】の中のhostsファイルを開き、一番下に、次のようにいれておきます。
1 |
192.168.10.10 newproject.localhost |
なお、hostsは管理者でなければ編集できないファイルです。
もし保存時にエラーが発生した場合は、管理者権限でファイルを開いてください。
管理者として開くには、WindowsスタートアップメニューでWindowsアクセサリ/メモ帳 などを右クリックし、「管理者として実行」を選択します。
この状態で、ファイルメニューからhostsファイルを開くと、管理者として編集・保存ができます。
⑧ vagrantの起動
ここまでで仮想環境を起動する準備ができました。
Git Bashで【C:\Users\ユーザー名\Homestead\project】の場所にうつり、vagrant upを実行します。
1 |
vagrant up |
vagrantが起動します。
起動後、vagrant sshを実行してください。
ssh通信で仮想環境にログインでき、ファイル操作が可能になります。
vagrant ssh後は、こんな、ちょっと楽しげな画面が表示されます。
ここでもしログインできない、という場合には、SSH鍵が正しく設定されていない可能性があります。
手順⑤を参考に、鍵の場所、名前をもう一度確認してみてください。
⑨ 新規Laravelプロジェクトの新規作成
引き続き、Git Bashで cd code と入力し、ディレクトリを移動します。
1 |
cd code |
ここにnewprojectという名前の新規プロジェクトを作成します。
1 |
composer create-project --prefer-dist laravel/laravel newproject |
なお、作成したプロジェクトは、ローカル上では【C:\Users\ユーザー名\Homestead\project\code】の中で確認できます。
codeフォルダは手順③で作成しております。
もし、まだない場合は、先に作成しておいてくださいね。
コマンドを実行すると、Laravelプロジェクトの作成がスタートします。
⑩ .envファイルの設定変更
ローカル上でLaravelのプロジェクトファイルが入った場所を開き、.envファイルを編集します。
10行目あたりのDB_CONNECTION に、下記のように入力します。
1 2 3 4 5 6 |
DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret |
⑪ 仮想環境でmigrateを実行
仮想環境でcodeから、プロジェクトフォルダの中に移動します。
cd newproject とコマンドを入力してください。
1 |
cd newproject |
プロジェクト内で、マイグレートを実行します。
1 |
php artisan migrate |
⑫ ブラウザで表示テスト
ブラウザ上で表示させてみます。
URLに、次のようにアドレスをいれます。
本記事のとおりに設定した場合は、下記のようにいれてください。
Laravelのデフォルト画面が表示されれば、環境構築、成功です。
なお、ポート番号8000は、Homestead環境にデフォルトで設定された値となります。
Laravelのマニュアルに、次のように記載されています。
参考:https://readouble.com/laravel/8.x/ja/homestead.html
no input file specified と表示されてエラーになる場合
ブラウザに no input file specified など表示されたりしてエラーになる場合、Homestead.yamlと同じ情報を入力しているか、確認してみてください。
もしyamlファイルを変更する場合は、ファイル変更後、vagrant reload –provision を実行します。
1 |
vagrant reload --provision |
vagrant provision は設定反映。vagrant reload は再起動の意味です。
次はphpMyAdminを設定しましょう
ここまでで、とりあえずはHomestead環境の構築ができました。
おつかれさまでした!
このあと、Git Bushでプロジェクトに移動し、php artisan migrateを実行すれば、データベースができます。
ただ、やっぱりデータベースをコマンドで操作するって、辛いですよね。
データベースをブラウザで操作するため、次回は phpMyAdminをHomestead環境にインストールする方法を解説します。
これは、ちょっとしたトラップがあります。
トラップを避けてインストールする方法を紹介しますね♪
【Laravel Homesteadを使う! 目次】
- Homestead環境の特徴、Xampp,Mampと比べたメリットや注意点
- Homestead環境の構築方法解説(←今ここ)
- HomesteadにPhpMyAdminをインストールする方法
- 既存プロジェクトをクローンして、Homesteadで開発する手順