最近社群有一篇文章 開啟新大門,使用 wsl 代替虛擬機器的可行性方案 ,介紹了怎麼使用 win10 子系統配置 laravel 開發環境。本人瞎搗鼓了一下,發現並不是一帆風順的就安裝好了。
問題一: 當進行到,使用指令碼搭建環境 這一步的時候會出現 一直處於‘初始化軟體源’ 。
我去 github 專案看了一下,發現出現這個問題的同學還真不少。不過裡面也沒有給過明確的解決方案。經過多次嘗試,發現可能 win10 系統的許可權有關,這個問題在很多軟體的安裝過程中多次遇到,我建議在win10上安裝執行軟體最好採用 ‘以管理員身份執行’ 的方式啟動。這樣會避免很多問題。 還有一點,因為我的網路還算比較不錯,所以 更換 Linux 子系統的軟體源並更新 這一步我並沒後替換,還是採用的系統自帶的軟體源。
問題二: 在 建立測試站點 這一步 輸入正確的專案名稱還是提示不合法的輸入。
這一問題讓我很是費解,甚至看過相關指令碼原始碼之後還是一頭霧水。最終解決的方法是,用管理員許可權啟動子系統,然後在 root 使用者下執行命令就沒有提示錯誤了。個人認為其實是許可權問題,只是指令碼沒有通過提示都是 專案名稱包含非法字元 有些誤導。
問題三:所有步驟都做完之後,專案還是無法啟動。
因為我途中關閉過子系統。發現原來重啟後 php ,redis,mysql 等服務都不會開機自動啟動的,需要手動啟動才可以。
問題四:每次開機啟動子系統報錯。
這個問題是因為子系統所需要的服務沒有啟動,開啟工作管理員 重啟 LxssManager 服務就可以了。
設定 host 的時候直接設定 127.0.0.1 就行了,子系統的 ip 就是本機的 ip
最後來正式啟動後,訪問專案的速度還是不錯的!對比 homestead 來說的好處是不用裝虛擬機器和下載box 啟動的速度也比較快!
發現還有很多同學不能正常安裝成功,這裡貼出自己的安裝步驟 ,大概時長10分鐘。沒有像其他同學說的要幾天時間。我沒有完全按照 [@circle](https://learnku.com/users/20822) 的教程 開啟新大門,使用 wsl 代替虛擬機器的可行性方案,減少了一些不太重要的步驟。
-
安裝 wsl 安裝好 以管理員身份執行 啟動 wsl
-
設定 root 密碼
sudo passwd root // 為 root 使用者設定密碼
su root // 切換 root 使用者
-
安裝環境 開發
wget -qO- https://raw.githubusercontent.com/summerblue/laravel-ubuntu-init/master/download.sh - | bash
-
安裝完畢就可以建立專案了,現在專案裡面是沒有東西的,我只是用這裡自動生成的配置檔案(偷個小懶),我直接用的 本地 d 盤下的專案的名字和域名,後面直接建立一個軟連結就行了
./laravel-ubuntu-init/16.04/nginx_add_site.sh
-
建立本地專案到 wsl 的軟連線
cd /var/www //切換到 wsl 專案下
rm -rf your_project_name //刪除前面建立專案生成的空目錄,後面用軟連線會衝突
ln -s /mnt/d/www/your_project_name /var/www/your_project_name
-
啟動 相關服務
service mysql start
service nginx start
service redis-server start
sudo service php7.2-fpm start
-
現在已經可以訪問你的本地專案了,不過會非常慢。修改一下 nginx 的配置 vi /etc/nginx/nginx.conf, 新增一下程式碼
http {
...
fastcgi_buffering off;
...
}
-
重啟 nginx 現在就可以順暢的開發了。
service nginx restart
本作品採用《CC 協議》,轉載必須註明作者和本文連結