Laravel Homesteadのセットアップ
概略
基本は公式の手順。Homesteadによるローカル開発環境の構築を行う。ハマりポイントはthinkpadのBIOS設定くらい(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インストール
後々使うのでインストールする。
↑が簡潔で分かりやすいです。
# ↑のまま実施 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
Browsersync便利。
//名前付きルート
Route::get('user/profile', function () {
//
})->name('profile');
// Featureディレクトリにテストを生成する php artisan make:test UserTest // Unitディレクトリにテストを生成する php artisan make:test UserTest --unit