建议采用进化版Docker环境,deviny/phpenv。
https://www.ccc.tc/article/deviny-phpenv-summary
分隔线下是旧数据罗。
前言:
对我来说,Laravel是一个进化极快速的PHP框架,也是一个全方位解决方案的框架。
例如,本站使用的是Facebook登录的功能,即是透过Laravel的官方包socialite实做的,
很多东西框架可以帮我们搞定了,像是queues、file storage,验证机制等,框架通通提供给我们,干麻自己做呢?
透过Laravel的框架提供的多种的功能,可替我们搞定很多的事情。
以下列出Laravel历代版本的PHP最低环境需求: (注: 最新版MacOS默认已不安装php了)
Laravel版本 | PHP要求 |
---|---|
Laravel 4.2 | PHP>=5.4 |
Laravel 5.0 | PHP>=5.4, PHP<7 |
Laravel 5.1 | PHP>=5.5.9 |
Laravel 5.2 | PHP>=5.5.9 |
Laravel 5.3 | PHP>=5.6.4 |
Laravel 5.4 | PHP>=5.6.4 |
Laravel 5.5 | PHP>=7.0 |
由於Laravel的进化速度真的很快,系统需求也是一代比一代高,所以当然官方也提供诸如Homestead及Valte等开发运行环境给我们使用。
先说好,我不是黑特(hater),即然本文提到了要用Docker创建Laravel开发环境,
我当然对Homestead及Valte有点小小的个人意见罗:
就我个人而言,Homestead采用的Vagrant真的是有点过时的东西了,其实Vagrant的概念非常好,
至少我也曾经使用他在自己项目上,但是用了Docker后,
可以用一种辞来形容我对这个情境的看法,就是「即生瑜何生亮」,虽然Vagrant跟Docker当然还是有其区别,
本文就不进行探讨了,但就开发环境上的使用,
Docker光是秒级启动速度及他的微服务架构就赢了呀。
再来谈谈Valte好了,Valate需要运作在Mac上,并且使用homebrew进行安装一些Mac OS没有提供的东西,像是新版PHP等。
运行速度当然也是超快,但是灵活度不足。
安装完后,就吃了我的port 80,我要跑的东西又不是只有Laravel,而我可能需要换较低版本的PHP运作,典解,
用Valte还是要用brew安装一些东西,数据库调整或php版本变更或是自行扩允PHP的外挂呢?对我来说似乎没有那的么灵活。
相对来说,Docker我们可以选择别人帮我们建好的image,必要时,我们也可以自己进行扩展创建自己需要的image环境,仅需自己去调整Dockerfile的设置档即可,非常自由呀:p。
所以使用Docker来进行Laravel的开发环境创建及运行,似乎就解决了,我的启动速度及灵活度的问题了。
关於D-Laravel
目前其实已有相当多的 docker + laravel 开发环境存在了,为什么我还是要搞一个,是吃饱太闲吗?
如果您是对Docker略为熟悉的使用者,都应该知道,Dockerhub上需标示为official才是官方的版本,
相对的代表了他是较安全的,我不用去检视里面是否埋了什么不该有的东西。
而D-Larave,就是完全采用了官方的image official为基础创建的,
PHP image也是以Docker的php官方image进行重建(因为需符合Laravel环境),
所以使用上可以较放心。
如果您对於如何重Build D-Laravel的PHP有兴趣,可以参考下方影片。
当然D-Laravel不只是提供了docker-compose的设置档,更提供了简化版的bash命令,
对於Laravel或是Docker的初学者,都可以非常快速的创建Laravel的开发环境,
而且不止於Laravel开环境,不论您是否懂docker,都可以立即使用,平时的使用上也相当的方便。
如何下载及使用D-Laravel呢?
但是D-Laravel主要运作及测试的环境是以Mac OS为主。
Linux上运行应该是没有问题的,如果您使用Linux运行有问题,可以开PR给我,谢谢。
如果您是Windows 10需确认您在gitbash下的环境,已安装了可正常运作的laravel installer。
在这里的可运作指的是D-Laravel提供的简易bash命令(./console跟./create),
如果您知道如何使用docker-compose,在Windows 10运行是没有问题,是可跨平台运行的。
一、首先,当然是我们的电脑要先安装Docker罗 ,希望您装了。
https://docs.docker.com/docker-for-mac/
二、直接下载D-Laravel的Repo
https://github.com/DevinY/dlaravel
三、启动,就这么简单了,进入下载后解开的dlaravel数据夹,然后输入命令:
./create test1
以下是完成的画面:
以上,就搞定罗,够简单了吧!!
您打开浏览器,输入网址
http://test1.dev:32770
即可看到Laravel项目的画面,同时已经自动帮建好test1的数据库及.env的设置了。
在启动过程,bash进程需要去调整 /etc/hosts,添加test1.dev的域名,所以会询问系统密码,因此这是正常现象不用担心。
D-Laravel完全Open Source,如果您还是有点害怕,可以自已去检视看create的bash上的host做了什么。
在不进行任何设置档的调整下,D-Laravel的启动会是随机埠,如上图显示的32770
Laravel的Project会创建在sites/test1的数据夹内。
如果我们要停止,可以使用./console down即可。
create命令,并不单单只是帮我们创建了一个Laravel的Project,同时,也帮我创建了test1的数据库。
我完全不想使用D-Laravel提供的bash是否有辨法用D-Laravel上的docker-compose创建Laravel的开发环境呢。
这当然是可以的,create跟console的bash只是提供了一个简化自己手动设置Laravel的步骤
及Docker的docker-compose官方命令。
关於手动创建Laravel Project及启动docker-compose
以下就来直接说明怎么手动创建,当然,希望你需知道,
什么是laravel installer及docker-compose的基本命令。
其实手动创建的步骤也并不难。
一、我们在dlaravel的数据夹下,直接透过laravel installer创建一个laravel的Project到sites的数据夹。
下图中,我新建了一个test2的project到sites的数据夹内
二、手动修改/etc/hosts档,请使用您自己习惯的编辑器,需有Root权限。
如果您不懂vi的编辑,请勿运行下方命令哦,我怕你无法退出Vim编辑器,或破坏到hosts档。
sudo vi /etc/hosts
进入后,在hosts档的最下方添加, 127.0.0.1 test2.dev
请注意,一定要是要*.dev这个名称,这是D-Laravel的nginx设置档默认的名称。*代表是您的项目数据夹名称。
127.0.0.1 test2.dev
替代方式,当然是用D-Laravel的bash帮您修改。
./create --host test2
三、启动D-Laravel的docker containers.
-d的意思是要在背景运行containers。
docker-compose up -d
四、至於数据库的创建及.env的设置,就自己进入sites/test2中进行罗。
我不是很会写文章,如果您对於文章内容有什么疑问,欢迎评论给我哦。
关於D-Laravel的详细说明及使用,请至官方的Repo:
https://github.com/DevinY/dlaravel
No Comment
Post your comment