What is Laravel Homestead?
laravel.com より
Laravel Homestead is an official, pre-packaged Vagrant box that provides you a wonderful development environment without requiring you to install PHP, a web server, and any other server software on your local machine.
意訳: Laravel公式のVargrant boxだよ。必要なソフトは最初からインストールされてるよ。
含まれているソフトウエア
- Ubuntu 18.04
- Git
- PHP 7.3
- PHP 7.2
- PHP 7.1
- Nginx
- MySQL
- lmm for MySQL or MariaDB database snapshots
- Sqlite3
- PostgreSQL
- Composer
- Node (With Yarn, Bower, Grunt, and Gulp)
- Redis
- Memcached
- Beanstalkd
- Mailhog
- avahi
- ngrok
- Xdebug
- XHProf / Tideways / XHGui
- wp-cli
- Minio
手順
VirtualBoxをインストール
vagrantをインストール
boxを追加
#仮想マシンのテンプレート
$ vagrant box add laravel/homestead
- githubからlaravel/homesteadをクローン
# 環境設定ファイルが含まれている
$ git clone https://github.com/laravel/homestead.git ~/Homestead
- 環境設定ファイルの作成
$ cd ~/Homestead
$ git checkout release
$ bash init.sh
- Homestead.ymlの編集
#必要に応じて適宜変更
$vim Homestead.yml
#仮想マシンに割り当てるIPアドレス
ip: "192.168.10.10" #ローカルマシンと異なるNWセグメントの値を設定する
memory: 2048 #メモリ
cpus: 2 #CPU
provider: virtualbox #vagrantで操作する仮想化ソフト
authorize: ~/.ssh/id_rsa.pub #vagrant sshで使う公開鍵
keys:
- ~/.ssh/id_rsa #vagrant sshで使う秘密鍵
#ローカルマシンと仮想マシンのファイル共有設定
folders:
- map: ~/code #ローカルのファイルパス
to: /home/vagrant/code #仮想マシンのパス
sites:
- map: homestead.test #ドメイン
to: /home/vagrant/code/public #ドキュメントルート
databases:
- homestead #データベース名
- 仮想マシンの起動
#しばらく時間がかかる
$ vagrant up
- 仮想マシンに接続
$ vagrant ssh
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-47-generic x86_64)
Thanks for using
_ _ _
| | | | | |
| |__ ___ _ __ ___ ___ ___| |_ ___ __ _ __| |
| '_ \ / _ \| '_ ` _ \ / _ \/ __| __/ _ \/ _` |/ _` |
| | | | (_) | | | | | | __/\__ \ || __/ (_| | (_| |
|_| |_|\___/|_| |_| |_|\___||___/\__\___|\__,_|\__,_|
* Homestead 8.4.0 released!
* Settler v7.2.1 released! Make sure you update
0 packages can be updated.
0 updates are security updates.
vagrant@homestead:~$
- Laravelプロジェクトの作成
$ vagrant@homestead:~$ cd ~/code
$ vagrant@homestead:~/code$ laravel new
Homestead.ymlのIPに設定したアドレスにブラウザでアクセスする
Laravelと表示されれば成功
-
ディレクトリ構成見てみる
#Homestead.ymlのfoldersで設定したローカルディレクトリ $ cd ~/code $ ls -la drwxr-xr-x 7 tsubokoh staff 238B 6 9 17:22 app -rw-r--r-- 1 tsubokoh staff 1.6K 6 9 17:22 artisan drwxr-xr-x 4 tsubokoh staff 136B 6 9 17:22 bootstrap -rw-r--r-- 1 tsubokoh staff 1.5K 6 9 17:22 composer.json -rw-r--r-- 1 tsubokoh staff 163K 6 9 17:22 composer.lock drwxr-xr-x 15 tsubokoh staff 510B 6 9 17:22 config drwxr-xr-x 6 tsubokoh staff 204B 6 9 17:22 database -rw-r--r-- 1 tsubokoh staff 1.1K 6 9 17:22 package.json -rw-r--r-- 1 tsubokoh staff 1.1K 6 9 17:22 phpunit.xml drwxr-xr-x 8 tsubokoh staff 272B 6 9 17:22 public drwxr-xr-x 6 tsubokoh staff 204B 6 9 17:22 resources drwxr-xr-x 6 tsubokoh staff 204B 6 9 17:40 routes -rw-r--r-- 1 tsubokoh staff 563B 6 9 17:22 server.php drwxr-xr-x 5 tsubokoh staff 170B 6 9 17:22 storage drwxr-xr-x 6 tsubokoh staff 204B 6 9 17:22 tests drwxr-xr-x 41 tsubokoh staff 1.4K 6 9 17:25 vendor -rw-r--r-- 1 tsubokoh staff 538B 6 9 17:22 webpack.mix.js -rw-r--r-- 1 tsubokoh staff 200K 6 9 17:22 yarn.lock
-
ルーティング見てみる
$ cat routes/web.php
<?php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { #ルートパスにgetリクエストされたとき return view('welcome'); #welcomeテンプレートを返す });
-
テンプレートを編集する
#BladeはLaravelに標準搭載されているテンプレートエンジン #独自の記法がある $vi resources/views/welcome.blade.php
--中略-- <div class="title m-b-md"> {{-- Laravel コメントアウト --}} @php #phpの実行 #viewでロジックを持つことは非推奨 $title = 'Hello world!'; @endphp {{-- echoはいらない --}} {{ $title }} </div> --中略--
Homestead.ymlのIPに設定したアドレスにブラウザでアクセスする
Hello world!と表示されれば成功
以上