2020年4月30日 星期四

vagrant 還有homestead創造laravel app的基礎指令

Vagrant 指令

  • vagrant up >開機
  • vagrant up --provision >homestead.yaml有更改時,就要用這個指令重讀。
  • vagrant provision && vagrant reload
  • vagrant provision >重新啟動
  • vagrant halt >關機
  • vagrant suspend >暫停
  • vagrant box list >看本機有多少個image
  • vagrant ssh >用ssh到主機
  • vagrant box remove laravel/homestead  >移除homestead
  • vagrant box add laravel/homestead >加入homestead

https://vagrantpi.github.io/2018/02/11/vagrant/

下載Homestead設定檔案

  • git clone https://github.com/laravel/homestead.git ~/Homestead
  • sh init.sh >會看到Homestead.yaml新增了
  • mkdir ~/code >因應folder的map: 要創造code 的資料夾。

Homestead.yaml設定laravel開發環境

前面都很簡單,但是光這邊我搞了大概三個小時。這裡是巨坑,會有很多的錯誤。一條一條講解。

重點
 11 folders:
 12     - map: ~/Code
 13       to: /home/vagrant/Code/
 14 
 15 
 16 sites:
 17     - map: homestead.test  >>這邊要去vim /etc/hosts設定 127.0.0.1 
 18       to: /home/vagrant/Code/Hello/public  >>後面一定要有public。

Homestead.yaml解釋

這邊有兩個重點folders跟sites。
folders負責同步資料夾,讓主機可以看到虛擬機內的資料,一邊也像是docker的volume負責資料持久化的功能。
sites負責開放資料夾可供外部取用。
folder跟sites也會被myphpadmin參考使用到。要特別小心。myphpadmin用下載的就可以了,不要想說自己多厲害都要用cmd來做...很痛苦的。
11 folders:
11-13是要設定同步的folder。
  • map是指定在本機同步的資料夾。要用本機的角度來看
  • to 是要在vagrant的虛擬機上的同步資料夾。要用虛擬機的角度來看,
16sites:
16-18是要設定虛擬機app內public的folder要對應到的url。
我們的laravel app最後會有一個public網址,提供給外部的人取用,只有這邊設定了,外面的人才可以取用。跟dns設定有點象。只不過這邊設定的是public folder。
  • map: 這邊是要設定url>後續要去本機的vim /etc/hosts設定
  • to: 後面要有/home/vagrant/[同步資料夾名]/[app_name]/public

提示重點,名字很重要。
18行若是沒有加[appname]/public 的public就會出現403 Forbidden的問題。因為沒有指定目錄給nginx讀取。

我們的Hello是
我們要新創laravel app的時候,要選擇在Code資料夾下面,輸入創建app指令laravel new [appname]

然後
  • cd ~/Code/[app_name]
  • php artisan serve > 就可以看到laravel的歡迎畫面了
  • localhost:8000

設定Homestead.yaml觀念思路流程

  • 設定要同步的folder
錯誤
A VirtualBox machine with the name 'homestead' already exists.
Please use another name or delete the machine with the existing
name, and try again.

  • 設定要開放的site 的public folder

設定~/etc/hosts的dns檔案

$ vim ~/etc/hosts
192.168.10.10 blog.test
或是
127.0.0.1 localhost


沒有留言:

張貼留言

cloud9上面開發rails

 使用IAM身分登入,以免有資安問題。(用admin帳號登入,創建iam使用者,然後在上面的連結登入) 選擇 ubuntu18.04 減少查詢成本。 已經是超級使用者了,sudo 什麼都不需要輸入密碼了。 $ ruby -v  檢查 ruby使用的版本>>2.6.3,...