历时三天,成功搭建Laravel Sail环境

2021-04-02

前言

什么是美?

在搭建的环境成功启动的那一刻,如果你问我什么是美?

我会毫不犹豫甩出以下这张图:
Image
闲话少说,本文主要分为一下三部分内容,

第一部分,搭建过程,分享自己成功搭建Laravel Sail环境的方法和步骤(与站内的文档有细微对的差别);

第二部分,心路历程,分享自己搭建过程中的心态变化,人不是机器,所以在做事的时候许多想法,一些想法会帮助我们做事,一些则会让我们停滞不前;

第三部分,谈谈以后的事情,也说说为什么会有这篇文章。

让我们开始。

搭建过程

我的电脑

首先明确一下自己电脑的情况,如下图:
Image
那么,如何查看自己电脑的情况呢?

两步。

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

回车,我的结果如下图:
Image
重点是我标注的那一行,最后的数字是 2 就可以了。

到这里,你已经非常接近成功了,朋友。

第7步:安装Docker Desktop。

Docker Desktop下载地址

下载完成后,安装,什么都不用管,一直点next,直到完成。

第8步:跟着站内的教程走。

完成了以上步骤,让我们回到站内的环境部署教程,下图中标记的内容开始,提示:点击目录可以一键直达相关内容。
Image
但是我的情况,与教程有一处细微的不同,那就是Docker Desktop开启 WSL2 模式的设置中,我的设置里显示如下图,是默认开启的。
Image
如果你也遇到这种情况,只能说,有缘啊~

第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/

如果你看到如下画面,恭喜你,你成功了(是的,没错)。
Image

心路历程

如果你成功安装了 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 协议》,转载必须注明作者和本文链接
本帖由系统于 4年前 自动加精
Image
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 56

心疼楼主,我 MacOS 上安装一路绿灯。

4年前 评论
Image Alcohol (楼主) 4年前

非常好,值得学习

4年前 评论

心疼楼主,我 MacOS 上安装一路绿灯。

4年前 评论
Image Alcohol (楼主) 4年前

mac 上面 homestead 确实问题不大。win10问题就多啦。最后我选择laradock。mac上面也是。之后就没有折腾过环境啦。楼主可以试一试。

4年前 评论

换arch吧 phper用linux开发才是正统 其他都是异端邪教 :joy:

4年前 评论
Image Alcohol (楼主) 4年前

不错,之前我也弄了好久,不过最后还是打不开网站没有深入下去了

4年前 评论
Jennie

一直用的 laradock

4年前 评论

楼主毅力可嘉

4年前 评论

绝大部分Windows 用户其实都应该学习下 Linux 基础以及 VM 虚拟机的搭建知识。 毕竟在 Windows 下面学开发,这两样都是必备,也是常用的。 在 VM 下面安装CentOS 或者 Ubuntu虚拟机,然后安装宝塔面板,5 分钟就搭建好服务器了。 现在Windows 下面不是有 WSL2 了吗?那就可以不用 VM 虚拟机了,直接 WSL2 安装宝塔或者 LNMP 环境。 新手最多最多也就半小时就搞定所有了。那效率比homestead不知道高多少。

PS: 在 Windows 下面开发,建议都安装 “专业版 X64”(也就是以前的那种旗舰版),搞开发或者设计用家庭版感觉Windows 被阉割了一样。 :joy:

4年前 评论
Image Alcohol (楼主) 4年前
Image cbasil 4年前

那段文档我翻的 :joy:。实际上安装先后顺序无所谓,不过先装好了 WSL2 的话,Docker 在安装的时候会自动配置好

4年前 评论
Image Alcohol (楼主) 4年前
Jourdon

homestead用了很久了,隔三岔五的就卡在homestead: SSH auth method: private key

波澜不惊的删除再重装,删除再重装,删除再重装,诶,就好了。

用过 laradock,但是端口映射搞得我头大,局域网访问一直没搞定。

Laravel Sail?我这 5.7 的laravel 你又不支持。。

4年前 评论
Image 小李世界 4年前
Image Jourdon (作者) 4年前
Image Alcohol (楼主) 4年前
Image MArtian 4年前

软工专业 5年开发初装homestead时没遇到啥大问题哈哈哈 一下午解决

4年前 评论

:joy: 用这个请求会变慢, 毫秒变秒, WSL2

4年前 评论
Image panqihuan 4年前
Image ajiader 4年前
Image laravelphp_game 4年前

我win还是直接 phpstudy吧

4年前 评论

之前开发环境是wsl,后来看了教程搭建了homestead,没什么问题,现在我又倒回去使用wsl,搭建laravel sail :joy:

4年前 评论
Image Alcohol (楼主) 4年前
Image liaohongze 3年前

从来不用homestead,docker随便找个php镜像就跑

4年前 评论

这玩意儿简直就是天坑,更新系统不行,报出来的错误代码网上没有,重装系统之后一路绿灯 :joy: :joy: :joy: :joy:

4年前 评论

homestead不要照着文档里装,按summer那个开发环境搭建要简单很多

4年前 评论

file 装到第二步 重启直接蓝屏,

无奈关闭了 ,适用于linux的windows子系统 跟 虚拟机平台才解决蓝屏的问题

file

4年前 评论
Image pkink886 4年前

:sob:我第一次搭建成功了,但是ctrl+c 重新启动就各种报错了 你遇到这种情况嘛? [7731] Failed to execute script docker-compose

4年前 评论
zhaocrazy

@peryiqiao 买苹果 我的天

4年前 评论

用过一次WSL 还不如在VM里来的爽快.

4年前 评论

其实学习搭sail没什么用,在工作中用不到,只会乱费自己宝贵的时间,如果真的想学习php环境搭建,建议还是搭建一个linux虚拟机,然后一步一步安装lnmp,还有redis,防火墙,samba文件共享等,一套下来基本上就了解了如何在linux上安装php环境和linux的常用命令。

4年前 评论
WenKaiYang

请求速度很慢,有谁知道是什么原因吗?

4年前 评论
WenKaiYang

搭建 Laravel sail 环境 推荐看《将 Laravel 开发环境由 Homestead 迁移到 Laravel Sail ( Docker ) 完整详细教程》博客:将 Laravel 开发环境由 Homestead 迁移到 Laravel Sail ( Docker )...

4年前 评论
Image Alcohol (楼主) 4年前

pan.baidu.com/s/1Rl2Owu2h-M_6AU0dE... (sources.list 和修改后的 Dockerfile )这个链接不存在了。。。请问下可以更新下吗?

4年前 评论
Image Alcohol (楼主) 4年前
Image Katrigeng (作者) 4年前

最近几天也在搞这个环境安装,碰到了一些问题。个人觉得无经验时比较难解决的问题是版本切换吧。

当把php版本切换到 php7.4时,使用如下文档会出错,如果需要切换版本的干脆不要用这个 sources.list 文件了~

file

报错信息:

file

另外,php版本切换后,需要执行 composer update 更新composer版本。

因为此时你的项目是无法启动的,所以也无法使用 sail composer。

需要自己引入 php74版本的composer镜像,根据 sail 文档中的步骤执行 composer update

将composer install 修改成 composer update

将 php80-composer 修改成 php74-composer

file

附成功截图

Laravel

4年前 评论

台湾人才会说:我根本没在怕。 哈哈,干的漂亮,我看了倒是觉的装的框架如此费劲,不如我装个ubuntu系统?

4年前 评论
Image Alcohol (楼主) 4年前

问下楼主,怎么创建测试项目?

4年前 评论
Image Alcohol (楼主) 4年前

计算机专业 没有必要去考计算机二级证书 ,因为自身的专业,毕业证书 就超过 计算机二级证书啦

4年前 评论

毕业生,二级加分项估计比较弱,二级很简单,可能四级和软考会好一点,算是及格。考点红帽认证等其他的还可以。

4年前 评论
zhanghaidi

我也是折腾很久装好了,启动了,却是因为不会用docker,不会配置mysql等,然后放弃了,用回了phpstudy :joy:

3年前 评论
Image Alcohol (楼主) 3年前

启动成功之后,我用services的域名访问,访问不到项目是怎么回事?

3年前 评论

这个学会了, 你可以出一个 如何把 laravel sail 部署到服务器上吗? nginx配置如何写 :neutral_face:

2年前 评论

sail内部更新软件贼慢,哪怕我翻了也是很慢,经常挂掉,10次有两次成功,都不想用了,还不如自己写compose构建

10个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!