程式狂想筆記

一個攻城師奮鬥史

0%

Homestead 架設 Laravel 環境小記

小記 Homestead 使用方法

前言

使用 Homestead 簡單來說就是不用再本機安裝 laravel, composer 等指令
也能建立 project
所以把要建立新的專案,先做 homestead.yaml 設定
進去 vagrant ssh
可以在該資料夾下,下 laravel , composer 等等指令

安裝 vagrant 和 Virtualbox

參考:第 15 天:以 Vagrant 建置 PHP/Laravel 開發環境 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

VirtualBox

安裝可以直接apt install virtualbox
但這邊網路上是直接抓 deb

1
sudo apt install ./virtualbox-5.2_5.2.4-119785~Ubuntu~xenial_amd64.deb

vagrant

去官網抓 deb

1
sudo apt install ./vagrant_2.0.1_x86_64.deb

我有用 rubygem 安裝
但就是不能用,用 deb 安裝會比較順利

安裝 Homestead

1
vagrant box add laravel/homestead

Homestead 設定工具

1
2
3
git clone https://github.com/laravel/homestead.git Homestead
// 可以用 git tag 和有哪些版本
git checkout v8.5.1

首先說一下,沒設定 ssh 金鑰要先執行
ssh-keygen -t rsa -b 4096 -C "{您的 Email}" 指令產生金鑰。
是為了vagrant ssh用的

更詳細設定
第 15 天:以 Vagrant 建置 PHP/Laravel 開發環境 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

修改 Homestead.yaml

首先,在 homestead 目錄執行bash init.sh
設定 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
---
ip: "192.168.10.10"
memory: 2048
cpus: 2
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
- ~/.ssh/id_rsa

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

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

databases:
- homestead
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp

主要設定有 folders
要把 map 設定自己程式路徑
to 不需要調整

有更多安裝可以看官網文件
Laravel Homestead - Laravel - The PHP Framework For Web Artisans

執行 Homestead
vagrant ssh

再做

1
2
composer install
php artisan migrate

這時候自己的http://localhost:8000
可以看到東西

一些 homestead.yml 設定

1
2
3
databases:
- homestead
- test1

vagrant 執行的時候會建立 databases
算是滿方便的功能

帳號/密碼
user: homestead
pass: secret

Laravel5.1/Homestead (0.2.7) 开发环境的部署和设置 | Laravel China 社区
Laravel Homestead:所有配置详解 | Laravel China 社区
Laravel Homestead:设置 Cron 计划任务 | Laravel China 社区

簡單完成 Laravel Task 架設
laravel/quickstart-basic at 0f8346968b2121edf4ac70bf0183821a87929b19
中级任务清单 |《Laravel 5.1 中文文档》| Laravel China 社区

Laravel Cron 定时任务 “跳坑” 点 | Laravel China 社区

2019-10-29

Homestead 設定多個 Project 方法

其實這篇沒有做 host 動作
直接 127.0.0.1 就可以連到 Laravel Project
但一個 VM 跑一個 Project 感覺不是很夠用

但這個只能手動加入/etc/hosts

1
2
3
4
5
6
7
8
9
10
11
12
folders:
- map: ~/laravel-webpaste
to: /home/vagrant/code
- map: ~/quickstart2
to: /home/vagrant/code2


sites:
- map: homestead.test
to: /home/vagrant/code/public
- map: homestead.test2
to: /home/vagrant/code2/public

folders 設定程式掛載路徑

sites 設定 hosts 網域路徑

vagrant reload --provision 會重啟 VM 跑設定

這時候再設定本機(非VM)/etc/host

1
2
192.168.10.10 homestead.test
192.168.10.10 homestead.test2

開瀏覽器輸入兩個網址就能打開
http://homestead.test
http://homestead.test2

有沒有自動設定 host 方法呢?

Vagrant 設定 hosts 自動化方法

解放雙手 hosts 自動化 (Vagrant-hostsupdater) | Laravel China 社區
【Homestead Master 08】还在手动修改hosts文件?-pilishen.com,做全球最好的实战教程

非常簡單,兩個步驟

  1. vagrant plugin install vagrant-hostsupdater

  2. vagrant reload –provision

可以查看 /etc/hosts 會自動添加 hosts 資料

題外話
目前好奇 vagrant reload --provision 一般 user 下執行
竟然可以改變 root 644 /etc/hosts 檔案
有空再研究分析
原來之前下過 sudo
所以剛剛執行沒有跳出來
vagrant reload –provision
會跳出打 root 密碼