by Devin Yang

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

如果您还没听过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

需要登入才可留言!

类似文章


dlaravel

如何设置外网IP给D-Laravel上的Project?

这个影片介绍了在D-Laravel环境上,我们如何指定Public Ip(公有IP)给特定的Project的使用。 不论是外部Production环境的设置或是内网自己项目Demo时,都可参考此影片的设置方式哦 。 在影片中虽然我采用了PPPoE拨接的外网IP进行说明,但是我们改变一下也可以用自己电脑上的区网IP。 这样就可以让同事连到我们的D-Laravel的Project了。

docker laravel

闲聊D-Laravel的console命令

D-Laravel的console命令让我们快速的了解他运行了什么。如果使用docker-compose是怎么运行的呢? 我们来看看吧。

laravel-storage,sftp

用Laravel的Storage SFTP Drvier进行远程文件上传

为何我把网站的搞前后台分离,我的想法很简单,就是靠一套后台管控所有前台的网站数据。假设前台的网站为单纯的行销网站,那不外乎主题内容,就是上上文章那种,没有什么特别复杂的逻辑。所以后台的数据库设记好连不同的前台就好了,那还剩最后一个问题,我的后台HTML编辑器如何贴图直接贴文到前台呢?Laravel的Storage SFT Driver就是很好的解药。