关于swoolefy运行环境
写这篇文章的原因
看了挺多关于swoole的文章和例子,包括看了官方文档n次,却还是有些搞不懂;在网上找到了swoolefy(https://github.com/bingcool/swoolefy),毕竟这是博主实战后的总结,所以觉得用它来结合官方文档学习swoole应该会是比较不错的选择吧,反正实践运用也还是有点迷茫;
由于我用的mac笔记本,所以在按照swoolefy文档安装它的轻量级框架时遇到了一些mac相关的一些问题,所以写下了这篇文章,这也是我在这个平台的第一篇文章,所以写的简单点吧。
mac安装swoolefy学习swoole遇到的问题
mac中不能重命名进程名字,所以关于进程命名的函数在安装过程中会报错,mac的/dev/目录不能创建文件夹,sudo mkdir dir这样也不能创建,因此在执行:
php swoolefy start App -dev
时,也是会报错的;
我的解决方式
因为这是原作者的实战框架,所以改源码的方式是下下策,而且花时不讨好,改了这里说不定哪里就又出问题了,所以不考虑这种;
因为只是用它来学习swoole,所以也就没啥要求,刚好我对docker又懂了点皮毛,于是就根据它(swoolefy)里面环境要求,写了个基于php7.2的镜像(image)-------- mecyu/swoolefy
基于它就可以简单的创建容器来实现一个简单环境了:
docker run --name docker-swoolefy -p 9000:9000 -p 9502:9502 -v /private/var/www/docker/dockerfiles/app:/app:rw -d mecyu/swoolefy:latest php /app/swoolefy/swoolefy start App -dev
执行以上命令需要安装docker客户端:
brew install docker
以上命令创建一个名为docker-swoolefy的容器;
监听php的9000端口和swoole服务的9502端口;
将swoolefy的项目目录/private/var/www/docker/dockerfiles/app
挂载到容器的/app目录
-d,后台执行
mecyu/swoolefy:latest
是我写好上传的简单镜像,在以上命令中也可以直接写成mecyu/swoolefy
最后面部分php /app/swoolefy/swoolefy start App -dev
即为swoolefy的启动命令
后面可通过docker命令关闭、重启、启动容器的方式来启动swoolefy:
docker start docker-swoolefy
docker stop docker-swoolefy
docker restart docker-swoolefy
这样我在Mac安装swoolefy用来学习swoole的出现的环境问题就已经解决了,后续,假如开发项目,就可以通过管理这个镜像来统一环境,代码还是使用原来的管理,只是在本地使用环境的时候需要将项目目录挂载到容器中就可以了
总结
就是觉得吧,很多时候,还是要善于使用辅助工具的;自从学习了docker之后,关于环境的问题就再也不是问题了;大到高可用分布式部署,小到搭建统一开发环境,docker都可以完成;个人觉得,它也算是是一个类似git的版本管理工具,只是它管理的是镜像(image)