TANSAN

取り留めないメモ

Laravel Homesteadのセットアップ

概略

基本は公式の手順。Homesteadによるローカル開発環境の構築を行う。ハマりポイントはthinkpadBIOS設定くらい(virtualization……)。 qiitaの以下の記事を参考に、試しながら色々学ぶ用途です。

Vue + Vue Router + Vuex + Laravel チュートリアル(全16回)を書きました。

環境

項目 バージョン
OS elementary OS 5.0 Juno (Ubuntu 18.04 LTSベース)
vagrant 2.2.3
VirtualBox 6.0.4
Laravel Homestead 5.7

vagrantのインストール

公式からダウンロードしてインストール実行。

sudo apt install ./vagrant_2.2.3_x86_64.deb 

virtualboxのインストール

公式からダウンロードしてインストール実行。

sudo apt install ./virtualbox-6.0_6.0.4-128413_Ubuntu_bionic_amd64.deb

Homestead Vagrant Boxのインストール

virtualboxを選ぶ

vagrant box add laravel/homestead                                     
==> box: Loading metadata for box 'laravel/homestead'
    box: URL: https://vagrantcloud.com/laravel/homestead
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) hyperv
2) parallels
3) virtualbox
4) vmware_desktop

Enter your choice: (今回は3)

長いのでお茶して待つ。

Homesteadのインストール

特に問題がなければhome直下にcloneする。

自分のLaravel(とPHP)の全プロジェクトをホストしておくHomestead Boxを用意するのだと考えてください。

git clone https://github.com/laravel/homestead.git ~/Homestead

安定版のcheckout

使いたいバージョンに合わせてcheckout実施。

cd ~/Homestead 
git checkout v7.18.0

Homesteadの初期化

Homesteadのディレクトリ配下でinit.shを実行する。

bash init.sh
Homestead initialized!

Homestead.yamlの修正

foldersのmapに指定したディレクトリ(ホストOS)とtoのディレクトリ(ゲストOS)が同期される。 vagrant upする前にローカル側のディレクトリを作っておかないと同期されないかも?

folders:
    - map: ~/code
      to: /home/vagrant/code

sites:
#    - map: homestead.test
#      to: /home/vagrant/code/public
    - map: vuesplash.test
      to: /home/vagrant/code/vuesplash/public

databases:
    # databasesに今回使用するDBを追加する
    - vuesplash

hostsを変更

/etc/hosts

192.168.10.10  vuesplash.test

鍵作成

Homesteadを立ち上げる際にprivate keyが無いと怒られるので作成する。 デフォルトで作成される場所を指してるのでそのままで良い

Homestead.yml

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa
ssh-keygen

vagrant立ち上げ

vagrant up

※鍵を作成していない場合は以下のエラー

Check your Homestead.yaml file, the path to your private key does not exist.

thinkpadの場合であればvirtualizationが無効になっている場合、タイムアウトエラー

npmインストール

後々使うのでインストールする。

Ubuntuに最新のNode.jsを難なくインストールする

↑が簡潔で分かりやすいです。

# ↑のまま実施
sudo apt install -y nodejs npm
sudo npm install n -g
sudo n stable
sudo apt purge -y nodejs npm
exec $SHELL -l
node -v

ssh接続してlaravel用ディレクトリ作成

vagrant ssh

mkdir code
cd ~/code
composer create-project laravel/laravel vuesplash

とりあえずここまでで初期セットアップ

他資料メモ

laravel

Laravel Mix

Browsersync便利。

Laravel ルーティング

//名前付きルート
Route::get('user/profile', function () {
    //
})->name('profile');

Laravel テスト

// Featureディレクトリにテストを生成する
php artisan make:test UserTest

// Unitディレクトリにテストを生成する
php artisan make:test UserTest --unit

Laravel マイグレーション