Laravel 開發環境搭建-筆記
學習筆記,質量不高,純屬加深個人理解,請勿浪費時間閱讀。
原文連線
開發環境搭建 - Windows
https://laravel-china.org/docs/laravel-development-environment/5.5/development-environment-windows/938
前言
- 以下大部分是原文連線內容,怕自己理解不到位,純手動打字加深理解。上方有原文連線
- .不實戰一次,你永遠不知道會犯下多少愚蠢的錯誤。記錄了WINDOWS環境下安裝時犯下的各種低階錯誤
總結
- .跟著教程手打一次,越發理解配置命令背後的含義。有些事情當你沒到達某種境界時,你以為你知道,其實你根本不知道。多敲多思考,不懂就找好朋友百度解決問題。
- 碰到問題耐心解決,時間允許情況下,儘量總結並做到知其然,知其所以然。這些錯誤會成為寶貴的經驗沉澱。
- 深刻理解並同意課程理念,逐漸發現入門教程也有最好教程一說,很多原理都描述得很細緻。需要多練習才能get。
- .東西學得多,自然忘記得快,筆記是個好的解決方案。
- 第一次用md,沒想到寫筆記這麼舒服,確實好用。
homestead.yaml配置總結:
1.ip: "192.168.10.10"
IP對映,需要在終端配置hosts IP才能訪問虛擬域名。
2authorize: ~/.ssh/id_rsa.pub
指派登入虛擬機器授權連線的公鑰檔案,填寫的是主機的公鑰檔案地址,虛擬機器初始化此檔案裡的內容會被預設複製儲存到虛擬機器的/home/vagrant/.ssh/authorized_keys中,從而實現ssh免密碼登入
3.KEYS
是陣列選項,填寫的是本機SSH私鑰檔案地址。虛擬機器初始化時,會將此處填寫的的【所有】SSH私鑰檔案賦值到虛擬機器的/home/vagrant/.ssh資料夾中,從而使虛擬機器能共享主機上的ssh私鑰檔案,使虛擬機器具備等同於主機的身份認證。PS:這裡解析了為什麼GitHub配置一個SSH公鑰即可實現GITHUB對虛擬機器和主機共同認證!即主機對GITHUB認證 私鑰通過,虛擬機器初始化時複製私鑰到KEYS到虛擬機器中,預設虛擬機器也同理通過。
4.folders
關鍵字 | 說明 | 記錄 |
---|---|---|
map | 本機資料夾,即需要建立對映關係的資料夾 | no inpuct file specifield 注意對映關係的檔名的大小寫 |
to | 虛擬機器資料夾,即虛擬機器中建立與本機對映關係的資料夾 |
5.databases
配置連線的資料庫名稱
6.用文字編輯時,記得ctrl+s
相關連線
(轉)為什麼我的專案頁面開啟這門慢(重點推薦)
(轉)後面還有一個NPM RUN CPU佔用率過高的問題
正文:步驟簡略
- 安裝VirtualBox
- 安裝Vagrant
- 匯入Homestead Box虛擬機器盒子
- 安裝Git
- 安裝Homestead管理指令碼
- 配置Homestead.yaml檔案
- 啟動Homestead
安裝VirtualBox
VirtualBox百科詞條
https://baike.baidu.com/item/VirtualBox/5842786?fromtitle=virtual%20box&fromid=3961028&fr=aladdin
簡單理解:模擬出你想要的系統
安裝:點選下一步即可
安裝Vagrant
百度詞條
https://baike.baidu.com/item/Vagrant/1321946?fr=aladdin
簡單理解:建立和部署虛擬化開發環境。
安裝:next
剛開始使用vagrant命令時,總是把 vagrant up 輸入成 vargant 。習慣性認為是var賦值之意 。後來從mysql grant許可權以及查詢其英文詞意得出靈感,才理解 grant是 承認;同意;授予之意。此處轉化為程式語境,有點類似“賦予許可權” 。使用外國人開發的東西,還是得抓一下英文基本功才能更好理解……
Homestead介紹
原文連線提供的homestead,實際是打包好N種開發所需的軟體和vagrant盒子。主要是提供一個優秀的開發環境,在盒子中已經移植好PHP、Composer、Nginx、Mysql、git…等其他工具軟體。
目的是為團隊開發的成員搭建一致開發環境,確保成員環境一致,避免因環境配置出現不可預估的錯誤。這也是為什麼Laravel學院要求初學者下載匯入定製好的盒子~
1.Homestead 管理指令碼
Homestead指令碼使用Ruby和Shell指令碼編寫而成。原理是對vagrantfile檔案做定製。將從
~/Homestead/Homestead.yaml
讀取配置資訊。在provision時,解析為vagrant命令並進行對虛擬機器的配置
同時提供了極其簡單易用的介面,傻瓜化配置即可完成複雜任務
- IP配置,埠對映
- Nginx Site建立
- 資料庫建立
- 主機資料夾掛在到虛擬機器等任務
安裝和使用Homestead
- 下載和匯入Homestead虛擬機器盒子
- 安裝Git,為下載Homestead管理指令碼做準備
- 使用Git下載Homestead管理指令碼
1.下載匯入Homestead Box
Windows下需要使用匯入命令,找到盒子所在的路徑,cmd輸入以下命令
> vagrant box add metadata.json
2.安裝GIT
關鍵字:next
很多安裝模式選項,得找時間研究一下
3.下載homestead管理指令碼
克隆 summer主頁的git專案 WINDOWS下,預設在 C盤 使用者名稱/homstead。能找到該檔案
> cd ~
> git clone https://git.coding.net/summerblue/homestead.git Homestead
完成後,為GIT建立分支 checkout v7.8.0(注意區分檔名大小寫)
> cd ~/Homestead
> git checkout v7.8.0 #剛開始不知道checkout是什麼,還以為是檢查版本,後來發現這是git版本管理一個強大的功能
接下來初始化Homestead
> bash init.sh
執行成功後會在~/Homestead
目錄生成三個檔案
- Homestead.yaml主要配置資訊檔案,從中可以讀到戰點和資料庫等資訊
- after.sh-每一次homestead盒子重置後(provision)會呼叫shell指令碼檔案
- alsaes-每一次homestead盒子重置後,會被替換到虛擬機器的
~/.bash_alisases
檔案中,aliases
放一些檔案的各項配置資訊進行詳細
此處vagrant provision與vagrant reload搭配使用,可載入修改後的yaml檔案配置,類似修改完apache後重啟
Homestead.yaml配置檔案
接下來再對 Homestead.yaml
進行詳細配置
> cd ~/Homestead/ #進入到Homestead/資料夾下
> explorer . #開啟該資料夾檢視,然後開啟homestead.yaml配置進行修改
另外一種使用命令快速開啟Homestead.yaml檔案
> subl ~/Homestead/Homestead.yaml #subl是sublime開啟檔案的命令,需要單獨配置,詳見下方
轉:終端用sublime開啟檔案的方法 作者:**QUETAL**
https://blog.csdn.net/u011240016/article/details/54434923
Homestead.yaml配置大致分為以下幾種
- 虛擬機器配置
- SSH祕鑰登入設定
- 共享資料夾配置
- 站點配置
- 資料庫配置
- 自定義變數
1.虛擬機器配置
Homestead支援我們對虛擬機器的IP,記憶體,CPU,虛擬機器的預設提供者進行配置。這裡我們基本不需要做任何配置。
ip: "192.168.10.10" #ip對映,配置虛擬域名,需要在終端hosts新增該ip.後續有
memory: 2048
cpus: 1
provider: virtualbox
2.SSH祕鑰登入配置
authorize
選項是指派登入虛擬機器授權連線的公鑰檔案,此檔案填寫的是主機上的公鑰檔案地址,虛擬機器初始化時,此檔案裡的內容會被預設複製儲存到虛擬機器/home/vagrant/.ssh/authorized_keys
檔案中,從而實現ssh免密碼登入。在這裡我們預設填寫
authorize ~/.ssh/id.rsa.pub #這就是為什麼輸入vagrant up && vagrant ssh即可免密碼登入
keys
是陣列選項,填寫的是本機SSH私鑰檔案地址。虛擬機器初始化時,會將此處填寫的所有SSH私鑰檔案賦值到虛擬機器的/home/vagrant/.ssh/
資料夾中,從而使虛擬機器能共享主機上的SSH私鑰檔案,使虛擬機器具備等同於主機的身份認證。此功能為SSH授權提供了便利。例如在後面章節中,我們只需要在Github配置一個SSH公鑰即可實現GITHUB對虛擬機器和主機共同認證(GitHub是程式碼託管,終端程式碼提交需要配置公鑰連線)
keys:
- ~/.ssh/id_ras
- ~/.ssh/id_rsa.pub #變化在這裡,此處我們將公鑰和私鑰一起同步到虛擬機器中
接下來生成ssh key,請先檢查主機是否已生成過SSH key C:/……./使用者/使用者名稱/.ssh 可檢視是否已配置
> ls -al ~/.ssh #輸入這個即可查詢是否配置
>
> #ls (選項)(引數)
> #ls命令用來顯示目標列表,在Linux中是使用率較高的命令
> # -a 顯示所有檔案及目錄(ls內定將檔案名或目錄名稱為“.”的視為影藏,不會列出);
> # -l與“-C”選項功能相反,所有輸出資訊用單列格式輸出,不輸出為多列;
> # cannot access '/c/Users/使用者名稱/.ssh': No such file or directory 即沒有配置過
生成 SSH key
ssh-keygen -t rsa -C "your_email@example.com"
#上面的郵箱替換成自己的
接下來命令列會提示讓你指定祕鑰的名稱,按Enter鍵將 SSH KEY儲存到預設檔名即可
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
設定密碼,Enter鍵預設為空密碼
再次檢視是否配置成功
ls -al ~/.ssh
如下圖
SSH祕鑰的連個檔案
id_rsa
——–SSH祕鑰 的 私鑰 (Private Key)id_ras.pub
———SSH祕鑰的公鑰 (Public Key)
3.共享資料夾配置
可以通過folders
來致命本機要對映到Homestead虛擬機器上的資料夾
map
對應的是我們本機的資料夾,例如 C:/Code 。to
對應的是Homestead上的資料夾,即虛擬機器中的資料夾。- 一定一定要注意對映資料夾的大小寫名字,否則會出現 no input file specified
- 一定一定要儲存修改完後的配置檔案,如果沒有儲存直接配置載入也沒關係,你會學習到一系列有趣的問題(手動微笑)
folders:
- map :~/Code
- to:/home/vagrant/Code
聯想:
- 相當於在本機修改程式檔案,最終是會對映到虛擬機器的資料夾上。
- PS:使用IDE最好是輕量級的,例如editplus、sublime等。如果ide有git相關外掛。以後每次修改檔案,會遍歷整個目錄樹,機器不好的容易卡。例如laravel預設是9000個檔案,對映到虛擬機器的檔案同樣是9000個,那麼修改程式碼時,相當於遍歷18000個檔案。這也間接體現了laravel為什麼是重量級框架,整合了現代商業化專案大部分需要的功能。由於是深度配置,所以定製功能時的修改也相對麻煩。
- 關於laravel框架 和 ide 的選擇上,適合自己的才是最好的,未必整合的功能越多就越好。具體看專案開發/開發者自身需求
預設Homestead
會將我們本地的~/Code
檔案對映到/home/vagrant/Code
資料夾上。目前還沒有~/Code,需建立
> cd ~
> mkdir Code #在預設路徑下建立Code資料夾
>
> #可使用 explorer .開啟該資料夾的檢視
4.站點配置(網站根目錄對映)
站點配置允許你在唉主機裡,通過域名來訪問虛擬機器的Laravel應用。如下面sites
配置所示,將homestead.test對映到一個Laravel專案的public
目錄上。這一行配置,會命令homestead為我們新建一個Nginx站點,並且把Web Root配置到指定目錄下。Laravel應用的Nginx站點 Web Root 配置,預設就是根目錄的public
目錄下
sites:
- map: homestead.test
to: /home/vagrant/Code/Laravel/public #此處的Laravel還沒建立,待會會用COMPOSER下載
另外,主機裡直接訪問虛擬機器站點,必須通過繫結hosts
來實現。終端需要修改hosts檔案繫結到homestead.test
到虛擬機器IP192.168.10.10
上,hosts
完整路徑為 C:\Windows\System32\Drivers\ect\hosts
> subl C:\Windows\System32\Drivers\ect\hosts
在hosts檔案中新增
192.168.10.10 homestead.test
注意:WINDOWS 10因為許可權設定相關問題,即使開啟了該檔案可能也無法修改成功,此處有兩種方式替代
- 開啟該路徑,複製hosts到任意目錄並修改配置,最後覆蓋
使用powershell開啟並修改
2.1windows 開始選單圖示【即最左下角的選單】—> 點選右鍵2.2 單擊Windows PowerShell(管理員)
2.3 cd drivers/etc
2.4 notepad hosts
5.資料庫配置
可以為homestead指定資料庫名稱,這裡使用預設設定即可
databases:
- homestead
執行Vagrant
完成相關配置後,開啟虛擬機器
以下為相關命令
命令列 | 說明 | 相關例子 |
---|---|---|
vagrant init | 初始化vagrant | |
vagrant up | 啟動vagrant | |
vagrant halt | 關閉虛擬機器 | 如果直接在cmd中exit 不halt,下次啟動會出現仍在執行 |
vagrant ssh | 通過SSH登入vagrant (需要先啟動vagrant) | 需要在homestead配置公鑰而免密碼登入 |
vagrant provision | 重新應用更改vagrant配置 | 類似apache修改配置項後需要重啟,此處同理 |
vagrant reload | 過載虛擬機器 | 搭配 vagrant provision && vagrant reload |
vagrant destroy | 刪除vagrant |
接下來開啟Homestead
> cd ~/Homestead && vagrant up
第一次啟動時,vagrant會做以下幾件事
- 以匯入的Homestead虛擬機器盒子為模版,新建一臺虛擬機器(之前匯入的homestead)
- 並按照
homestead.yaml
裡的配置資訊,對這臺新建的虛擬機器進行配置 - 配置完成後啟動虛擬機器
成功啟動後還是在~/Homestead
目錄中,通過以下命名來來SSH登入Homestead虛擬機器中
> vagrant ssh
> exit #退出當前虛擬機器
> vagrant halt #關閉整個虛擬機器
相關文章
- laravel學習筆記之開發環境搭建Laravel筆記開發環境
- Python筆記 開發環境搭建Python筆記開發環境
- 搭建 Laravel + vuetify 開發環境LaravelVue開發環境
- 筆記-Flutter開發環境搭建Mac版筆記Flutter開發環境Mac
- docker搭建laravel開發環境lnmpDockerLaravel開發環境LNMP
- 用 Docker 搭建 Laravel 開發環境DockerLaravel開發環境
- <Laravel 開發環境部署>讀書筆記----常用指令Laravel開發環境筆記
- gd32筆記[1]-搭建PlatformIO開發環境筆記Platform開發環境
- FFmpeg開發筆記(一)搭建Linux系統的開發環境筆記Linux開發環境
- Vagrant homestead (laravel)開發環境搭建(填坑)Laravel開發環境
- 搭建rust開發環境-記錄Rust開發環境
- webpack學習筆記:搭建基本的前端開發環境Web筆記前端開發環境
- php 學習筆記之搭建開發環境(mac版)PHP筆記開發環境Mac
- 如何在 docker for win 上搭建 Laravel 開發環境DockerLaravel開發環境
- Laravel 環境的搭建Laravel
- Docker 搭建laravel環境DockerLaravel
- 筆記一:前期 docker 環境搭建筆記Docker
- 學習筆記:MQTT環境搭建筆記MQQT
- Android環境搭建學習筆記Android筆記
- Java開發環境安裝筆記Java開發環境筆記
- 【記錄】WSL 下搭建前端開發環境前端開發環境
- Flutter開發入門之開發環境搭建(VSCode搭建Flutter開發環境)Flutter開發環境VSCode
- 搭建一個快速、優雅的 Laravel 的開發環境Laravel開發環境
- M1晶片搭建sail環境進行laravel開發晶片AILaravel
- Windows 10 搭建 Laravel Sail 開發環境 (超詳細操作)WindowsLaravelAI開發環境
- 1 – 搭建開發環境開發環境
- Androdi開發環境搭建開發環境
- Cordova 開發環境搭建開發環境
- GeoServer開發環境搭建Server開發環境
- Qt開發環境搭建QT開發環境
- 前端開發環境搭建前端開發環境
- QEMU 開發環境搭建開發環境
- 搭建go開發環境Go開發環境
- JAVA開發環境搭建Java開發環境
- 搭建VUE開發環境Vue開發環境
- lua 開發環境搭建開發環境
- Theia 開發環境搭建開發環境
- rollup 開發環境搭建開發環境