【Windows10版】Virtualbox × Vagrant LaravelとHomesteadで仮想環境を作ってみた。


【開発環境】

Windows 10 HOME
VirtualBox 6.0
Vagrant 2.2.9

【仮想環境側】
laravel (v6.0.2)
homestead version ^11.0
ubuntu-20.04-amd64-disk001

【目次】

  項目     
- はじめに
- やってみた

はじめに

ローカルで仮想環境を作ってみようと調べていたら
HomesteadとLaravelを簡単にインストールできる
PHPファイルで作成した人がいたのでそれを使ってみた。

【Laravel】ワンアクションでプロジェクト毎にLaravelとHomesteadをインストールしてくれる「Larastar」

やってみた

Larastar-masterをDLして解凍後、
Laravelのプロジェクトを作るフォルダに設置。

Larastar-master/larastar.php
<?php
//----------- config -------------

const VERSION = "6.0.*";
const DIRECTORY_NAME = "";

インストールしたいLaravelのバージョンを記載。

powershell
PS C:\Larastar-master> php larastar.php

powershellにて
larastar.php があるフォルダに移動してphpを実行します。

powershell
NoticeConfirm 'to' of 'folders' in 'Homestead.yaml'. And 'vagrant reload' please.

--------- Laravel & laravel homestead installed! -------------

--------- Laravel & laravel homestead セットアップバッチ「ララスター☆彡」 終了 -------------

暫くするとインストールが完了します。
下記のURLにアクセスすると

No input file specified

No input file specified.

訳すと
「指定されたファイルがありません。」

nginxのエラーログを見てみると、

/var/log/nginx/homestead.test-error.log
Unable to open primary script: /home/vagrant/code/public/index.php

ここにファイルが無いよ と出ています。

じゃあここにファイルを作ればエラーは解消できるのか検証してみます。

powershell
vagrant@larastar-master:~$ cd /home/vagrant/code/
vagrant@larastar-master:~/code$
vagrant@larastar-master:~/code$ mkdir public
vagrant@larastar-master:~/code$ cd public
vagrant@larastar-master:~/code/public$ vi index.php

code/public/ にindex.phpファイルを作成します。

powershell
<?php
echo "hello world";

hello world と記載。
ブラウザを再度見ると、

hello world

表示されました。
これでディレクトリのズレを解消できれば
Laravelのプロジェクトを表示出来そうです。

index.php
<?php
var_export($_SERVER);

先ほど作成した「index.php」に
$_SERVERというグローバル変数を記載すればサーバー側の情報を
どこからでも呼ぶことが出来ます。

'DOCUMENT_ROOT' => '/home/vagrant/code/public'

その中のドキュメントルートは上記になっています。

Larastar-master/Homestead.yaml

sites:
    (×)    to: /home/vagrant/code/public 
     ↓
    ()   to: /home/vagrant/code/laravel/public

Homestead.yamlファイルの「sites to」の部分を
$_SERVERで見たディレクトリでは無く、
laravelの表示したいプロジェクトのディレクトリに修正します。

powershell
vagrant provision

ファイル修正後に上記のコマンド実行。
詳しくはこちらをどうぞ。 Vagrant Provisionとは

でLaravelの画面が表示出来ました。