为什么必须使用 Homestead 来开发 Laravel 应用?
173

file

文章说明

运营社区多年,经常遇到很多新手询问能不能不装 Homestead,有些同学还在朋友的推荐下使用了 WAMP, MAMP, PHPStudy 等集成环境。

个人开发 PHP 也有六七年时间了,各种集成环境、自建的 Windows 环境等都使用过。一路走来,踩坑太多,所以对虚拟机开发环境非常推崇。以至于在 《Laravel 教程 - Web 开发实战入门》 中,Homestead 也是作为唯一的学习开发环境。

新手开发者,如果你身边有优秀的开发者,或者比较靠谱的 Team Leader,他们会毫不犹豫的让你使用 Homestead,不给你更多理由。此篇文章不讲太多技术细节,而是从一些反面例子和经验,来向你阐述为何你需要使用 Homestead。

踩坑不完全统计

先讲五个例子,这五个例子是我在运营 Laravel China 社区时注意到的,在此做下收集和总结。这些前人的经验,希望能为你带来一些启示,同时这里也感谢这些作者的知识分享。

请注意,这是一个不完整列表。事实上,使用 Windows 你可能会踩的坑比这个要多得多,这只是冰山一角。

1. 多个 Laravel 应用数据库连接错乱?

来自文章:大家有没有遇到多个应用中数据库连接错乱问题?

『多个应用中数据库连接错乱。同事无意中发现,在多个基于Laravel 的 Web 应用中,当应用 A进行一个长时间操作时(PHP 会运行超过30s+),在这期间,在应用 B 中进行数据库操作时, B应用会连接到 A 应用中的数据库,而非 B 的数据库。』

在此贴中,作者细致地做了各种分析,估计也是花了不少时间在 Debug 这个问题,最后原因是 Windows 下的 .env 没加载上。

2. Lavarel 应用突然无法登录?

来自文章: Laravel 登录报错 Crypt : The Mac is invalid

用 lavarel 框架写的项目,今天登陆突然提示 “The MAC is invalid.” 有没有人遇到过这种情况?

最后原因是 Windows 下的 .env 没加载上,导致系统底层的加密解密功能出错。

3. Laravel 不支持高并发?

来自文章:Laravel 不支持高并发?

我在用 $.post 刷一个 url 的时候(用鼠标点按钮触发,大概一秒钟3、4次吧),按这个速度,大概每隔个十几二十次,就会报一个500错误:Whoops, looks like something went wrong.没有更具体的错误提示了。

一个神鬼莫测的问题,让一个即使是 十几年开发经验的老鸟,也栽坑里。

4. .env 不支持中文?

来自:关于 Laravel 的.env 配置不显示的问题

在使用 laravel 开发的过程中,我把项目名称放入了 .env 配置文件里面再用 env() 方法调用,发现三个中文的情况下只能返回 default 值。

最后作者的答复是:『在 Mac 上能正常,Windows上三个字不能显示。』

5. Mac 环境也不行?

来自:一个小坑提醒:某个 Class 或某个 Trait 突然找不到

“我 Mac 本地没问题啊!”
“但是为什么 Linux 服务器上报这个错啊???”
“太诡异了,这怎么查?”

上面几个例子讲的都是坑爹的 Windows 开发环境下的 BUG。这个例子中,@lijinma 金马的同事很不幸的踩了 Mac 的坑,金马同学很大方的分享了出来,详细的解说了这个坑出现的原因,并且也提供了解决方案。

但是其实,最好的解决方案应该是:在一开始开发的时候,就是用 Homestead。

非虚拟化环境会有什么问题?

一般来说,一个 Web 商业项目的项目会有以下几个运行环境,也就是你写的代码最终会运行在这些环境上:

  • 我的开发环境
  • 队友的开发环境
  • 线上测试环境
  • 生产环境

以下是一个混乱的例子::

  • 我的开发环境 - 小明使用的是公司电脑,系统是 Win7, WAMP 集成环境;
  • 队友的开发环境
    • 队友 A,使用的是自己使用多年的戴尔笔记本,系统是 Win8,用的是 XAMPP;
    • 队友 B,使用的是公司电脑,但是他自己重装系统到最新版本的 Win10,自己配置的 PHP 环境;
  • 生产环境 - 标配的 LNMP( Linux, Nginx, MySQL, PHP),使用 laravel-ubuntu-init 构建。
  • 线上测试环境 - 一般要求是跟生产环境一模一样。但是在我们这个例子里,为了偷懒省去了这个环境。

同一份代码,不同环境的话,会经常面临这样的问题:

小明兴高采烈的提交了新功能代码,队友 Pull 下代码后,发现代码无法运行,原因会有很多,例如PHP 不同版本不兼容,php.ini 或者 my.ini 配置不一致等。

经过一番仔细排查和搜索,终于解决掉问题并上线。但是,网站当场挂掉,老板在质问,产品经理在大叫这是谁干的,一下子整个团队陷入混乱。最终发现,原来是 大小写敏感 ,Windows 下文件路径不区分大小写,Linux 却对大小写严格,一运行就直接 Fatal Error。

Windows 和 Linux 不兼容的还不止 文件路径大小写敏感 问题。

相对于 Windows 来说,Linux 为多用户操作系统,不同于 Windows 操作系统,在 Linux 上存在许多权限的问题,需要时时刻刻关注文件的权限。

除了代码质量无法保证的问题以外,本机开发还面临系统软件限制的问题。你正在开发的公司的项目,需要使用一些系统软件,如 MongoDB, Elasticsearch, Cron, ImageMagick, 等。如果在 Mac 下要去安装这些软件,你就会发现你的电脑配置会变得越来越凌乱。而 Windows 下,有些软件根本就没法安装,如 Laravel 官方推荐队列使用的 Supervisor 或者 ImageMagick 等。这时候你就会感叹,使用集成环境是多么不成熟的做法。

使用 Homestead 有哪些好处?

Homestead 基于 Vagrant 提供的便利,定制了一整套的可配置、可移植和复用的 Laravel 开发环境。homestead.box 是一台 Ubuntu 16 虚拟机,里面包含了 Nginx Web 服务器、PHP 7、MySQL 5.7、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时需要用到的各种软件。

使用 Homestead 能解决掉上面讲的开发环境不一致的问题,并且你也可以选择使用 laravel-ubuntu-init 布置服务器,来达到开发环境和线上环境的统一。

Homestead 另一个优势在于,提供了极其简单易用的接口,使我们只需要通过傻瓜化配置 Homestead.yaml 文件,即可完成复杂、重复的任务。如 Nginx 站点创建,数据库创建,文件夹挂载等,为日常开发提供了便利。

是否可以使用 Docker ?

可以,如果你是新手的话,不推荐这么做。Homestead 是官方推荐的做法,作为最佳实践,最好按着标准来。

结语

作为 Laravel 新手,如果你立志成为一名优秀的 Laravel 工程师,请从现在开始使用 Homestead。

推荐阅读


Practice makes perfect.

本帖由系统于 1年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 97
overtrue

金马同学很大方的分享了出来

哈哈哈哈

1年前
Destiny

吼吼

1年前
zoroo

:+1:

1年前
anyuzhe

在原来使用Homestead的时候 有个小问题 就是我有的项目是使用tp 有的是laravel。如果更新一下站点配置。就会把tp的urlinfo的nginx重写还原 导致很不方便。
顺便问一下 docker与homestead比Summer大神 更喜欢用哪个呢

1年前

终于来了。我等很久了呢

1年前
medz

docker 是另一种生活方式。既能能保持开发和生产环境的一致性,也能。。。(如意如意,顺我心意。可长可短,可粗可细。)

1年前

其实用了vagrant ,主机共享目录是大小写不区分的话,虚拟机里也是不区分的。直接mac里用brew也是很好的选择。docker又是另一个生活了。

1年前
lijinma

哈哈哈哈哈哈哈

1年前

虚拟机坑多,且慢卡,体积大,你让哪些普通笔记本怎么搞?使用vs code+wamp开发laravel,速度快,vs code多个项目切换方便,开发速度绝对不比虚拟机慢,而且方便很多。如果说要掌握Linux命令啥的,买个腾讯云或者阿里云,真实环境,不是更好?
推荐放弃虚拟机,直接用vs code + wamp + 腾讯云开发测试,抛弃虚拟机vagrant。

1年前
Summer

@andu 嗯,推荐你好好学习,然后去买台好点的电脑吧。不只是为了虚拟机哦。

1年前

:+1:

1年前

@medz 自从用了docker就再也离不开了。

1年前

@anyuzhe 开发涉及到不同的语言环境和数据库,就爱上了docker

1年前

唯一的缺点就是:Homestead 虚拟机体积会越来越大

1年前

不过最近发现一个问题, 没有网络的情况下,比如mac在断开wifi网络后,我以为192.168.10.10可以工作,毕竟是内网嘛 ,但是不知道为什么 ,如mysql 33060映射的端口不能用 :disappointed: 。后面就用vmware 装一个虚拟机 再跑你写的deploy-16.sh 安装环境,最后通过文件系统映射到Code目录。

1年前

@Summer
之前刚开始学就是用虚拟机学起的,每天上班开电脑就是vagrant up,下班就是vagrant halt。我用的电脑都是比较好的,自己买的台式机,宁美国度 6666的,单位配的是联想p710,也用过mackbook 学习开发了laravel一段时间,但我还是觉得使用win10+vs code+wamp+SecureCRT方便(我之前都在学C#做点小网站)。买了腾讯云和阿里云的最低配服务器(680、1040/3year),自己测试够用,这样能看到自己做的站的效果。
坚决抛弃vagrant虚拟机,真的没什么用,能学到什么?Linux命令?使用secureCRT真真切切的去操作腾讯云服务器,那才是真实的生产环境吧。
再一次建议:抛弃vagrant虚拟机,使用win10+vs code+wamp+SecureCRT(腾讯云服务器等)学习开发laravel!!

1年前

目前就碰到第三点,爆出的问题:

ocal.ERROR: RuntimeException: No supported encrypter found. 
The cipher and / or key length are invalid.
 in H:\wamp\www\Protavel\vendor\laravel\framework\src\Illuminate\Encryption\EncryptionServiceProvider.php:29

楼上的在给新出的腾讯云做广告呢?
开发Laravel用VS?开玩笑?

1年前
Summer

@andu 你用着好用就行啦,别再乱建议啦,再建议我都要把你屏蔽了哦 :smile_cat:

1年前

@Summer ok,新手的感受,没有学到更深的内容,过一段时间可能就会改变这样的观点了。阿里云现在做活动,给阿里云打广告(680/3year)。

1年前

对于使用valet有没有什么建议

1年前

@edwin404 docker到底怎么安装维护一直是心头的痛...门都没入了..

1年前

工地电脑带不动是硬伤。。。

1年前

另外出屏蔽功能了吗:smile:

1年前
medz

@storefee 大哥,你开玩笑呢?楼上啥时候说用VS了?人家用的是 VS Code 推荐你先百度。

1年前
medz

@andu 你用win10,我推荐你一个东西,win10自带 linux 子系统,在系统功能里面可以开启。

1年前

@Summer ‘下次有新手问你可不可以不 Homestead 的话’应该是用

1年前

@reatang 官网不是有详细的安装教程,跟着一步步来。

1年前

@medz 不会呢,有时间百度一下看看这个怎么玩。

1年前

人生苦短,我用 docker。

1年前

valet 就已经非常方便了啊!

1年前

用自己习惯的方式吧!过度的纠结一个服务器环境没什么意义。
不过不管哪种服务器环境,还是推荐用mac,windows真的不太适合做开发

1年前

感觉直接使用linux开发也是可以的呀。

1年前

@medz 嗯,搜搜看!谢谢提醒!

1年前

@andu 做出来总是有用的。。。估计大家用的时机或者痛点还没到。。。呵呵

1年前

@edwin404 英...英语有点苦

1年前

@reatang 哈哈,好好学习天天向上

1年前
Insua

@agogos
linux用户表示,我也用homestead,因为不想把自己的系统给搞乱了,用homestead出问题,可以直接销毁镜像

1年前
ahkxhyl

一直在用vagrent 写个批处理加入开机启动就行~~

1年前

唉, vagrant启动一个vbox直接蓝屏...................

1年前

Valet 党表示看不懂你们再说什么 :see_no_evil:

1年前

初学者首先可以独立的配置和调试出这些环境的坑,然后在使用Homestead来快速搭建开发环境。

1年前
Summer

@colyii
@jacobsun
@whossun Valet 的实现原理是利用 DnsMasq 和 Nginx 来做到便捷本地站点部署,系统还是用着 Mac 系统。

Mac 下有文件夹路径问题,第五个问题都讲了这是其一。其二,对于相对复杂的项目,你用到队列,用到 MongoDB 或者 Cron,就会知道自己的开发环境是多么不成熟。

1年前
Summer

@xxlv 为何要去调试这些坑?时间就这么廉价么。

使用 Homestead 的话,不论你是初学者,还是专业的开发者,都适用。初学者的目标是成为专业的开发者,为何不一开始就使用适用性更强的 Homestead 虚拟机环境,用着熟练的话,整个开发者职业生涯都能受益。

1年前

@Summer 因为初学者最迫切需求的最宝贵的是经验而非时间。
两点支持我的观点:

  1. 调试不是在浪费时间(重复错误不算),而是尝试理解系统的运作过程
  2. 出现的错误信息将导致一个他对某一个技术栈区产生兴趣或者走的更深,比如调试https的时候,可能会导致对https产生兴趣。

站在这样一个角度,初学者只有大量时间,而没有足够经验的话,直接在一个可运行的环境中并不能让他产生多少经验。
一旦他经历过这些坑,那么,就不需要从头开始了。

1年前
Summer

@xxlv 调试 PHP 在 Windows 下的 Bug,有助于理解 Windows 下 PHP 的运作过程,这是当然的,但是,我想问的是,你的服务器使用的是 Windows 吗?如果不是的话,积累这些经验有何用?

1年前
沈益飞

@medz 那个是 Ubuntu Linux On Windows 10 目前个人感觉有点坑,后来装了 Ubuntu 系统,用了 Homestead 虚拟环境。

1年前
Summer

积累经验也要分 『有用的经验』和『浪费生命的经验』,在我看来 上面举的五个例子 就是属于在浪费生命。你能从这个经验 Laravel 不支持高并发? 学到什么吗?这就有点像路边下棋的破棋篓子一样,破棋篓子下再多的棋子,积累再多的经验,最终也是一个破棋篓子。

@xxlv 经验积累当然重要,但是要有区分的,这也是我为何费劲写这篇文章的原因。

1年前

有志于成为专业、高级开发者的,请一开始就按照“职业化、专业化”的要求做去,听Summer的没错,会越来越顺。像我这样业余学学捣腾的,遇到问题容易退缩的,不以这个为职业的没什么坚持或追求的,怎么方便怎么来。

1年前
Bin

@andu 好吧 ,你这样说,看来把自己给圆回来了,哈哈哈。

1年前

@Insua 你这么说很有道理。确实可以。

1年前

docker不是更好吗,Mac本地开发我都是直接php -S 命令来跑的

1年前

@Bin 可以这么说呢,也可以说我是对summer的崇拜+尊重。上面列的5点,在win10上好像就刷新出现500的错误存在,但我没同意部署也在windows上,而是开发测试。summer站在他的角度建议,当然是语重心长的很有意义的,所以我也从自身的角度说明情况,这样避免误导了一部分人。
站在我的角度,我还是建议新手和我一样,因为你没有summer他们这些高手快速解决bug问题的能力,初学者就是快速的积累经验,循序渐进,特别是像我这样半路出家,把时间花在掌握laravel上,而不是对部署小网站没啥用的虚拟机上。

1年前
Summer

站在我的角度,我辛辛苦苦写篇文章的目的是为了在我的书里能加个链接:

file

是为了能分享我的经验给初学者。尤其是让 这本书 中的读者,能够从一开始树立起比较正确的认知,并且知道为什么要这样做。

@andu 然而你一直跟我对立着?我觉得你很没有礼貌呢!

把时间花在掌握laravel上,而不是对部署小网站没啥用的虚拟机上。

选择使用虚拟机来开发,是一件很严肃的事情。

短期来看,虚拟机能让产出的代码更加高质量,错误率更低,更加严谨,注意这个非常非常重要,因为作为程序员,我们是靠着编码在吃饭的人。在 Linux
虚拟机中,新手也可以一点点积累起 Linux 的操作经验,这个对初级程序员的成长会有莫大的帮助,很多公司招人时也会有 Linux 经验的要求

长期来看,以后参加工作,加入到团队开发里,保持使用虚拟机的习惯会让你准备充分。对于把编程作为终身职业的同学,即使一开始误入『本机开发』的坑,慢慢的随着经验积累,基本上在编码生涯的一个点上(一年两年三年),你会意识到虚拟机的重要性,而抛弃了本机开发。我个人是很少看到优秀的开发者不使用虚拟机的。说实在,如果一个开发者看不到虚拟机带来的好处,应该也不能算太优秀吧。

1年前
Alex89

@Summer 哥,@andu 在帮你顶贴

1年前

@Alex89 Summer 哥的帖子应该具有 “自顶” 功能吧:stuck_out_tongue_closed_eyes:

1年前

我是初学者,所以很多使用虚拟机的好处我没体会到,summer推荐肯定是有道理的。但如果说因为要熟悉Linux命令,为什么步直接购买个云服务器真实的去操作,比较和虚拟机还是有些差别的吧?把花在更换电脑上的钱去买云服务器,对于初学者,觉得是一举两得的事情。
我目光短浅,见识有限,但列举出来的理由并不高明。

1年前
Summer

@andu

一般 Web 商业项目的项目会有以下几个运行环境:

  1. 我的开发环境 - Development
  2. 队友的开发环境 - Development
  3. 线上测试环境 - Staging
  4. 生产环境 - Production

你的云服务器,算是 线上测试环境,这里我们在讲开发环境,请先弄清楚这个概念。

另外,@andu 讨论归讨论,不用献媚,也不需要贬低自己。

我上面已经跟你讲过了,如果觉得自己太无知,那就别再乱建议啦,沉默即可。

1年前

真理是越辩越明的嘛,我就是不清楚虚拟机能比win10好在什么地方,我看到的都是不好的居多。

1年前

请教一个问题,怎么选择不同php5.6版本的virtualbox.box文件啊?

1年前

@Summer 哥,Laradock 你怎么看,我感觉比 Homestead 轻和简单

1年前

@Summer 厉害了我的哥:thumbsup:

1年前

@andu 两句句话说明白,采用box做开发环境的目的。
1、就是为了消除在windows下出现的一些神鬼莫测的问题的。
2、统一开发环境,减少交流摩擦,比如最经典的一个扯皮:你那里怎么会有问题?是不是你操作方式不催?在我的机器上就没事呀?

1年前

个人感觉好事虚拟机好一些,一是可以保持线上生产环境, 线上测试环境,本机开发环境一致。另外一个就是可以快速将一个已经定制好的虚拟机,分发给新入职的同学,因为有些项目的环境搭建实在是太特么复杂了,需要搞好几天,而且这样也可以使所有成员保持一致的开发环境。

1年前
Summer

@Prefect丶 哥,上面也有很多朋友提到过 docker 环境,我来讲下我个人的选择。

Laradock 出现时体验过一段时间 ,Laradock 的优势是创建虚拟机速度快,运行效率高,没有虚拟机的暖手弊端。创建虚拟机方面,不是经常做的事情,慢个一分钟还是可以忍耐的,暖手的事情,现在很少揣着电脑随地写代码,也不算问题。

除非我的服务器会使用 Laradock 来部署,否则我不会正经的使用 Laradock 做我的开发环境。

我只会选择完整的 虚拟线上环境(Linux,Ubuntu),并且不只是系统,就连 PHP 、Nginx、MySQL 等软件我都希望使用的是用 同一个安装包 。利用 这个脚本 可以使得服务部署地跟 Homestead 虚拟机的环境非常接近,当然,生产环境下系统和软件会做安全方面的微调。

我更愿意将时间花费在创作有价值的产品上。不愿意花费哪怕一丁点时间在处理兼容问题上。因为经验告诉我,那完全就是在浪费生命。

1年前

工欲善其事,必先利其器,

1年前

工欲善其事,必先利其器

1年前

@jobsssss 哈哈,可以这么说。我认为summer最后的回帖更有说服力,可以分发开发环境,统一开发生产环境。

1年前

@andu 不就是我说的第二点么?统一的开发环境可以有效降低沟通成本,这仅仅是好处之一。更大的好处是不必把时间浪费在开发环境的搭建上。打个比方,你要生火烤肉,最重要的是把火点燃,搞到肉来烤熟了吃。而不是纠结非要在那钻木取火,美其名曰:我要搞懂生火的原理,积累摩擦生火的经验,这有助于我更好的烤出香喷喷的肉串来。

1年前

@jobsssss 可能是我是业余学学laravel,工作电脑还要做其他用途,所以使用虚拟机可能会和其他软件冲突,这个是只是一部分原因,另外主要原因是开启虚拟机,每天下午电脑会有点卡。你说的不要把时间浪费在环境的搭建上,Windows10搭建好后的便利你没试过,不要妄下结论。可能是就是用些简单的包或者简单的业务逻辑,更深的技术也不会,我也只是站在新手的角度质疑一下,希望能引出高手为什么用虚拟机的真正原因。

1年前

@andu box就是给专业开发团队用的,你既然是业余做完全自己喜欢怎么样就怎么来。win10坑很多,我不多解释,这个论坛里的有不少人已经提出过win10的坑了。我说一个我自己不爱直接在win10环境下的原因,因为win10下,没有合适的meached客户端可以使用。

1年前

@jobsssss 对,这也是我想知道的,虚拟机里可以玩哪些“高级的”工具,只有在虚拟机里才能更顺畅的玩好。希望高手们都能说说。

1年前

@andu 用box开发的好处我已经讲过了啊?
1、统一团队环境,减少不必要的撕逼。
2、省下搭建环境的时间多写代码。
我再补充两个:
1、开发环境搞乱以后不会殃及本机。
2、对于新手:直接开始积累linux/nginx的经验。而不是去不停的在windows下拷贝各种.dll文件

最后你问有什么高级功能是虚拟机可以玩的。我的回答是:我只知道php很多东西不可以在windows里玩,只能在linux里玩
1、daemon
2、后台服务程序,比如swoole
3、多进程,虽然php很少用多进程,但是不代表就用不到,比如我前端是间做了个爬去程序,开了多个子进程,这个在windows下是无法做到的。

1年前

@jobsssss 谢谢,受教了。

1年前

我现在用vagrant自己配了一个环境,开发用mac,运行是虚拟centos,非常好用。homestead增加了很多学习使用成本,而且我感觉学习homestead的配置使用比学php和laravel还难。。。

1年前
SMVirus

对于像我这样最终需要将服务部署到 docker 容器中的场景,无疑开始便使用 docker 会更加适合。
如果线上环境是固定部署在某台机器上的,那开发环境确实用 Homestead 会好一些。
在我看来这无非是个选择问题,选择最接近测试和生产环境的方式进行开发,在上线环节可以减少很多不必要的麻烦。

file

1年前

见解多数是相同的,生产环境和测试环境的重要性

1年前

homestead 的各种好处文章说的非常好。:+1:

不过也有一些痛点,之前给团队同学一部分同学配置了 homestead (默认配置),但是普遍反映经常虚拟机崩溃、虚拟机死机(PC 都是联系、戴尔正版系统,并且固态硬盘)。关键是运行速度很慢,反正一直用 valet 的我是看不下去的。

1年前

@jobsssss

3、多进程,虽然php很少用多进程,但是不代表就用不到,比如我前端是间做了个爬去程序,开了多个子进程,这个在windows下是无法做到的。

这个其实是可以实现的,比如网吧的计费系统,必须是windows环境,如果这个时候需要用到多进程,就只能解决你说的这个问题,但是具体怎么实现的我已经忘记了,如果有兴趣的话可以翻翻资料找一下:smile:

1年前
沙渺

正确看待artisan serve或自搭集成环境的玩具性质。玩具不能承担项目开发(实际业务、整项目实战学习)的大任,但对不形成项目的小任务(安利他人、原型演示、学习个别知识点、尝试个别新软件包)也很方便。

一旦形成项目,立刻停止偷懒,这是最重要的。

1年前

确实很有必要,像supervisor,crontab也只有在linux下才好测试

1年前
天哥

你们上面说的各种优点我也很认同,@andu 说的不搞同一环境也是有必要的,现在很多的php程序很挑运行环境,兼容性太差。我最喜欢的php程序是高质量的兼容性好的,大部分php环境都可以跑的。

兼容性差的php程序,需要专门的环境,一台主机就得要专门为它配置,如果一台主机上要运行多个php程序,简直是噩梦,不多说了,搞过的人都懂得……

1年前

作为小白,听话照做就对了

10个月前

刷出500错误是laravel防止单个IP访问 频率过快吧

10个月前
郝合心

之前一直用valet,上周把课程全买了,今天跟着第一本书走了一遍,决定以后放弃valet改用homestead,就为了不浪费生命。

10个月前

神仙打架,已买教程,学习中

:laughing::laughing:

10个月前
郝合心

@Jinva 可以啊

8个月前

我是用的VM 安装的Ubuntu16配置的LNMP环境

8个月前

Mac 也遇到了 env 无法读取值

8个月前

没事了,知道原因了,把config给cache了

8个月前

我之前都是在本地开发,后来就直接买了服务器,在linux上面搭建环境直接开发,我想问问在本地使用各种集成环境好还是在服务器开发好@Summer

6个月前

哈哈哈,我也是个新手,所以乖乖照做就对了

6个月前

个人感觉作为一个后台开发人员,只会写代码是不行的,虽说有运维这个岗位(但大多小公司后台开发兼运维),但必要的类线上环境搭建能力是需要有的,如果一味使用homestead,无疑失去了在学习开发过程中顺带学习环境部署能力,最后有可能会成为一个只会写代码的后台开发,在上家公司我就遇到过一个新来的两年开发经验的php开发,就是经典地只会写代码,BOSS让他在公司测试机上搭个虚拟机跑代码,方便跟其他系统集成(公司有一台超级主机,部署了很多虚拟机,用来模拟线上的服务器集群,保证测试环境与正式环境的一致性),他直接懵逼,虚拟机搭得一趟糊涂,还得麻烦别人帮忙解决他环境的坑,不然他自个写的代码都完全跑不动。因此,个人建议开发也用虚拟机,顺带学习如何在linux中部署自己需要的环境,当BOSS需要你去部署线上测试环境甚至是正式环境时,才有能力做到,体现自己的价值不仅仅只是写代码。

5个月前

我们部门现在就是每个人一套环境。。。

3个月前

在经历了 PHP 5.6PHP 7.2 不同环境下来回撸代码,如果没有 Homestead 简洁版本配置,那简直是恶梦 :joy:

3个月前
andrewchoi

辛苦地把 Laravel 和 Composer 安裝在合適的系統中,然後才看到這裡,真的有點想哭 。
第一次就嘗試用Homestead失敗,結果也不理會這東西。
由想用Laravel到今天,足兩個月了,走了太多彎路。我想我會很聽話地跟著這裡走。

1个月前

小编.能不能录制一节这个Homestead的视频呢?谢谢;新人走了很多坑然而还是一直出现问题在这一块

4周前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!