by Devin Yang

建立于: 4年前 ( 更新: 4年前 )

如果您还没听过D-Laravel,容我介绍一下,D-Laravel为采用docker-compose所创建的Laravel与docker运行环境,
透过简单的bash让我们快速生成Laravel的项目。

本文教您如何使用D-Laravel的提供的docker image,来创建swoole的运行开发环境。
看完这篇,您应该能快速的透过D-Laravel创建出swoole的运行环境罗。

环境确认

当容器启动中,我们可以透过./console ext查看已编译的相关php扩展。例如下图,我们能看到 swoole.so

注意事项

一、D-Laravel上的Swoole目前仅可使用default为Project目录,因此,一个D-Laravel只能跑一个swoole项目。

二、请确认您的port 80未被主机占用,否则您需自行先调整好docker-compose-swoole.yml中的主机开启连接埠,
例如变更为8080:80,将host端开启的连接埠改为8080。

三、请确认您使用最新的php image,至少要以下版本或之后的版本,才有内建swoole.so的扩展。
  image: deviny/fpm:7.3.5
  image: deviny/fpm:7.2.18
  image: deviny/fpm:7.1.29
  image: deviny/fpm:5.6.39

进入正题,创建swoole项目步骤如下:

一、为确保没有任何连接埠冲突问题,建议先停止我们运作中其他的d-laravel,如果有的话。
我们可以用docker ps命令查看,是否还有D-Laravel相关的容器还在运行中的。

二、直接clone最新版本的d-laravel,并指定一个新的Project名称。
swoole的项目名称,您可自行命令,例如: project1。
git clone https://github.com/DevinY/dlaravel.git swoole

三、在上例中,我创建了一个名为swoole的Project,clone下来后,进入swoole这个目录中
cd swoole

四、一个d-laravel只能跑一个swoole,请创建一个default的Project。(default名称不可变更)
./create default
五、第四步完成后,需进行laravel的swoole包的安装,d-laravel使用laravel-s的包,
如果您的D-Laravel设置别名(ce 及 a)了,我们可以简单的运行别名,在主机端(host)完成安装步骤,
或是您可以进入容器中运行相关的安装命令。


1.主机端D-Laravel别名安装方式:
#进入default的项目数据夹
cd sites/default

#使用别名 ce 代表容composer命令,进行laravel-s安装
ce require "hhxsv5/laravel-s:~3.5.0" -vvv

#使用别名 a 代表php artisan,进行laravel-s的发布
a laravels publish
再还没创建swoole环境前,我们可以直接输入./console swoole,就可以看到安装相关命令说明罗。


2.容器内的安装方式:
如果,您不懂如何创建D-Laravel的别名,您有另一个选择,进入至容器内来安装,命令如下:
#使用./console进入容器内
./console

#进入项目数据夹
cd default/

#透过composer安装laravel-s
composer require hhxsv5/laravel-s:~3.5.0 -vvv

#publish必要的文件
php artisan laravels publish
如果您是进入到容器安装的,完成后,可压热键Ctrl+D离开容器,回到主机端(host),画面如下:


六、切换成swoole的模式
./console swoole
如果您有按图施工、我相信,保证成功,您应该可以看到与我类似的画面。


以上,您已完成了D-Laravel的swoole开发环境。D-laravel使用自行开发的file watcher进行文件修改检测。
初台化时,您可能需等个几秒才能看到网页,在D-Laravel的swoole模式中,电脑的IP是可以直接被访问的,
我们也可以使用localhost或IP的方式连接到网站。

试者压command+r来重整网页,您会发觉,靠~~Laravel变的超级快。


最后,我要说一下,我并未用swoole开发,如果您想将他用在Production的版本,请自行评估或测试,
swoole有那些坑或那些雷,请自行Google一下。

在这里我只是提供了一种在D-Laravel环境中运行swoole的方式,当然D-Laravel最新版本PHP FPM的image中都内建swoole的扩展了,
也就是说,将swoole.so添加到php.ini后,您的php就能运行swoole的相关命令,创建各式各样的服务,并不止於Laravel的swoole环境哦。

差多少眼见为凭:

实测相同环境,相同的进程码,未使用及使用swoole的页面加载速度差异:


swoole.com官网:
https://www.swoole.com/

laravel-s (Laravel与swoole的集成)
https://github.com/hhxsv5/laravel-s


 

Tags: laravel

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


laravel

Laravel 5.7新功能dump-server。

Laravel 5.7.x,artisan命令开始支持并集成了Symfony的倾印伺服器(dump-server)罗。 透过artisan命令,启动dump-server,我们可以将dump的数据显示在console端。

dlaravel

D-Laravel测试域名*.dev变更为*.test

由於Google Chrome 63会强制转换*.dev的域名为https了,D-Laravel新版的域名变更为*.test。 本文说明更新的方式。

docker,dlaravel

D-Laravel 1.5.5变更说明

D-Laravel的fpm image在php 7.2.1以前是使用docker php官方的dockerfile重build的, 并且所以我可以指定了fpm的默认的owner是dlaravel, --with-fpm-user=USER Set the user for php-fpm to run as. (default: nobody) --with-fpm-group=GRP Set the group for php-fpm to run as.