歷時三天,成功搭建Laravel Sail環境

Alcohol發表於2021-04-02

2021-04-02

什麼是美?

在搭建的環境成功啟動的那一刻,如果你問我什麼是美?

我會毫不猶豫甩出以下這張圖:

閒話少說,本文主要分為一下三部分內容,

第一部分,搭建過程,分享自己成功搭建Laravel Sail環境的方法和步驟(與站內的文件有細微對的差別);

第二部分,心路歷程,分享自己搭建過程中的心態變化,人不是機器,所以在做事的時候許多想法,一些想法會幫助我們做事,一些則會讓我們停滯不前;

第三部分,談談以後的事情,也說說為什麼會有這篇文章。

讓我們開始。

我的電腦

首先明確一下自己電腦的情況,如下圖:

那麼,如何檢視自己電腦的情況呢?

兩步。

1.win+R鍵開啟“執行”對話方塊,輸入cmd,回車。

2.在cmd命令列中輸入winver,回車,你將會看到以上這張圖出現在你的桌面。

如果你的Windows系統跟我的在細節上存在差別,也是可以的,具體可以參照站內教程關於系統的部分。

我這部分,只是為了明確一下自己的系統細節,不是說你的系統必須和我一樣。

我的步驟

對於想要搭建環境的朋友來說,這是全文最重要的部分。

我的步驟,和站內給出的教程有著細微的不同,也是在這部分,讓我體會到了細節決定成敗。

首先,站內Laravel 8 中文文件是這麼說的:

在新建 Laravel 應用前,請確保你的 Windows 電腦已經安裝了 Docker Desktop。
之後,請確保已經安裝並啟用了適用於 Linux 的 Windows 子系統 2 (WSL2)。
WSL 允許你在 Windows 10 上執行 Linux 二進位制檔案。
關於如何安裝並啟用 WSL2,請參閱微軟 開發者環境文件。

一開始,我的安裝順序是:Docker Desktop –>Windows 子系統 2 (WSL2)。

所以,一開始我沒有成功。

但是,我仔細閱讀留兩個補充文件之後,發現,安裝順序應該反過來:Windows 子系統 2 (WSL2)–>Docker Desktop。

具體的步驟可能會經歷幾次重啟,看我們來看:

第1步:

以管理員身份執行cmd;

輸入:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

回車,執行完成,重啟電腦。

第2步:

以管理員身份執行cmd;

輸入:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

回車,執行完成,重啟電腦。

第3步:下載 Linux 核心更新包

更新包下載地址

下載完成後,執行,安裝,這個更新包安裝很快的。

第4步:將 WSL 2 設定為預設版本

以管理員身份執行cmd;

輸入:

wsl --set-default-version 2

回車。

第5步:安裝Ubuntu和Windows Terminal

開啟電腦的微軟商店,分別搜尋Ubuntu和Windows Terminal,按順序安裝。

順便提一句,Ubuntu第一次執行的時候,需要你設定賬號和密碼,但是,輸入密碼的時候,命令列裡面是沒有任何提示的,我一開始不知道這一點,有點懵。

第6步:檢查成果

執行cmd;

輸入:

wsl --list --verbose

回車,我的結果如下圖:

重點是我標註的那一行,最後的數字是 2 就可以了。

到這裡,你已經非常接近成功了,朋友。

第7步:安裝Docker Desktop。

Docker Desktop下載地址

下載完成後,安裝,什麼都不用管,一直點next,直到完成。

第8步:跟著站內的教程走。

完成了以上步驟,讓我們回到站內的環境部署教程,下圖中標記的內容開始,提示:點選目錄可以一鍵直達相關內容。

但是我的情況,與教程有一處細微的不同,那就是Docker Desktop開啟 WSL2 模式的設定中,我的設定裡顯示如下圖,是預設開啟的。

如果你也遇到這種情況,只能說,有緣啊~

第9步:禮物

這一步,請在成功建立測試專案之後,在執行。

建立測試專案之後,需要進行編譯,會下載大量的東西,為了加快這一過程,需要把一部分內容修改成國內的映象源。

站內教程的操作有兩個關鍵:

  1. 新建 sources.list 檔案。

  2. 修改 Dockerfile 檔案。

在這裡,我已經把需要新增的 sources.list 和修改後的Dockerfile 準備好,朋友們可以直接下載,然後替換對應檔案即可。

下載地址
提取碼:

i3kn 

替換目錄:

你的專案位置 \ example-app \ vendor \ laravel \ sail \ runtimes \ 8.0

第10步:等待和耐心

替換完成之後,你需要根原教程一樣,在專案根目錄,也就是example-app內執行:

./vendor/bin/sail up

到了這一步,請給一點耐心,你會看到電腦一直在編譯和執行,也許你還會聽到電腦風扇的聲音變大了,更有可能的情況是,你會經歷幾次失敗。

但是沒關係,只要你已經耐心的根據教程操作,並且關鍵畫面都與教程對的上,那你就是對的。

失敗的原因,也許是網路,或者其他你無法控制的東西,我在這一步,也失敗了好幾次,但是,我依然輸入 ./vendor/bin/sail up,然後按下回車。

編譯成功之後,你就可以用瀏覽器開啟localhost/

如果你看到如下畫面,恭喜你,你成功了(是的,沒錯)。

如果你成功安裝了 Laravel Sail 環境,那就來聽我聊聊天吧。

其實一開始選擇 Laravel 環境的時候,也是選的Laravel Sail,但是因為步驟的關係,下載回來的 Ubuntu 子系統不是wsl2模式,於是毫無意外地失敗了。

這次嘗試失敗之後,我開始嘗試搭建 Homestead 環境。

於是,真正的折磨開始了,可惜當時的我並不知道這回事,我清晰地記得,第一次按照教程往下搭建的時候,我甚至都不能執行 vagrant up 命令,無法進入虛擬機器。

那是大前天的下午,我按照教程走了兩遍,無果。

於是我開始翻看教程下的討論,發現有人留言自己安裝環境花了半個月時間。

看到這句話的時候,我驚訝又有一點莫名的安心——我才哪裡到哪裡啊?對吧。

於是我放下事情,去追番去了。

過後的第二天,也就是前天,我再次嘗試安裝Homestead環境,這次與前一天的不同是,我參考了b站的視訊教程,並且在每一次,安裝之後,都重灌電腦的系統。

因為不知道誰說的,重灌系統可以解決90%的問題(剩下10%是需要重灌電腦的人,無法解決的)。

靠著百度搜尋、B站視訊、以及站內安裝Homestead環境的教程,這一天,我成功執行 vagrant upvagrant ssh 進入了虛擬機器。

不停地嘗試,卻沒有成功在虛擬機器中啟動Laravel,說實話我是失落的,但也有一股 我根本沒在怕 的想法支援著我一直往下走。

時間來到昨天,經歷前一天的失敗,我最主要的問題是,Laravel為什麼會安裝失敗?

順著這個思路,根據系統給出的錯誤提示去百度(知乎,微信),去嘗試,去思考。

最後,可是說是誤打誤撞地把 Laravel 安裝成功了,然而開啟測試網址,卻發現是No input file specified提示。

根據討論和百度得出的結果,是虛擬機器檔案對映的問題。

那就調整 Homestead.yaml 中的配置咯。經過幾番嘗試,我終於如願開啟了Laravel預設頁面。

可是,問題來了:

我無法修改這個頁面,檔案在我的本機裡面找不到!

安裝教程原原本本的設定檔案對映路徑,結果是Laravel安裝失敗,顯示提示是無法刪除Laravel目錄。

略微調整設定檔案對映路徑之後,Laravel安裝成功,但是開啟測試網址,顯示No input file specified

最終,再次調整,Laravel安裝成功並且可以開啟預設頁面了,但是,在本機卻無法修改。

也就是說,我昨天大半天的時間,都與 Homestead.yaml 檔案鬥智鬥勇,期間,每次失敗之後,我沒有重灌系統。

因為我想,我連重灌系統都敢做,為什麼我不敢執行 vagrant destory命令和刪除相關資料夾呢?

其實,也是因為在多次的嘗試和幾個教程的比對中,我已經的大概瞭解每個命令的作用是什麼,能達到什麼效果。

最終,在昨天傍晚,我再次用瀏覽器開啟了 Laravel 歡迎頁面,但是我依然無法修改,這個頁面的任何內容,原因和之前一樣。

那一刻,我累了。

於是我決定把時間交給Laravel Sail,把Homestead先推到一邊。

這兩天的嘗試,讓我的有態度習慣變得更細緻,我同時開啟了Laravel Sail部署教程,Laravel 8中文文件、文件和幾個相關資料,把相關內容看了一遍,總結步驟。

一路下來,居然很順利,就開始用Docker編譯Laravel示例專案了。

我看編譯需要一段時間,我趁這段時間,吃了晚飯。

晚飯回來開啟電腦,發現編譯失敗,我內心毫無波動,輸入命令再次編譯。

然而,異變陡然出現:successful這個單詞我還是認識的,我忍住欣喜,開啟localhost/

那一刻,我知道Laravel Sail安裝成功了。

開啟專案資料夾,修改 index.php 的內容,終於,出現瞭如本文第一張圖所示的內容。

真的成功了。

我超棒的。

我想。

我在的學校的專業屬於設計專業,但是網頁設計課讓我接觸到前端(HTML + CSS + JavaScript),還有遊戲設計讓我接觸到了程式設計(Unity3d + C#)。

僅僅只是接觸了皮毛,當初並沒有在意,我的程式設計嘗試也很簡單,想通過Python考取計算機二級證照。

結果當然是失敗了,因為當時,我還沒認識到“重複”這個行為對程式設計的重要性。

畢業之後從事設計工作,發現自己對設計工作興致缺缺,今年開始嘗試轉行,360行,行行轉程式設計。

我也是這麼幹的。並且我選擇世界上最好的語言作為我的入行語言,希望能夠成功轉行。

感謝這個時代和社群的朋友,提供了大量的學習資料,非常感謝。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章