手牵手一起使用 docker 搭建 PHP 环境,并使用 supervisor 管理你的 swoole 进程
随着公司项目的茁壮成长,所需要的功能越来越多。swoole的使用也就呼之欲出了!laravel框架目前比较好使用swoole的方案应该非laravels莫属了。自热而然的鄙人想到使用laravel+laravels+nginx+supervisor,打造一个简洁、易用、可扩展的docker-compose文件,供各位客官使用。
使用方法
基础配置(以安装好docker-compose的同学们,可以跳过此步骤)
- 安装Docker(官方默认会自带docker-compose 工具), 已经安装过的可以跳过此步
- 对Docker Machine 设置里,配置
Setting->Daemon->Registry mirrors
,增加加速器URL,比如http://xxxx.m.daocloud.io - 对Docker Machine 设置里,配置
Setting->Shared Drives(Windows)/File Sharing(Mac)
,
Docker-php的使用
- 复制example.env到同级目录下,并重命名.env,命令操作
cp ./example.env ./.env
- 修改.env文件的配置。
LOCAL_STOARGE_PATH
=设置为此github clone的根目录。 比如/var/www/html/docker-php - 修改.env文件的配置。
LOCAL_WEB_PATH
=设置为你开发项目的基础根目录, 比如/var/www/html/docker-php/www - 把要启动的进程,比如laravels 或者php 的supervisor配置文件加入到 /var/www/html/docker-php/supervisor/conf
- 启动docker-composer
docker-compose up -d
nginx的使用
- 多个虚拟站点的配置,直接参考nginx/conf.d/demo.cfg, 复制粘贴demo.cfg在同目录下并重名为site1.conf, 并根据注释修改目录路径(以容器目录为准),重命名文件必须以
conf
扩展名结尾, 举例命令行 - nginx 的错误日志目录在 /var/www/html/docker-php/log/nginx
php的使用
- 【Seaslog】的配置范本文件在宿主机php/ext/ini/seaslog.ini里,根据注释复制一下,然后进入PHP容器修改容器内的文件
/usr/local/etc/php/conf.d/docker-php-ext-seaslog.ini
即可, 命令如下 - php 中使用composer
docker-compose exec php bash composer install
supervisor 的使用
- supervisor 启动日志目录 /var/www/html/docker-php/log/supervisor
- supervisor 进程启动目录 /var/www/html/docker-php/supervisor/conf
- supervisor 的基本使用命令介绍
//进入php容器内 docker-compose exec php bash //启动某个进程(program_name=你配置中写的程序名称) supervisorctl start program_name //查看正在守候的进程 supervisorctl //停止某一进程 (program_name=你配置中写的程序名称) supervisorctl stop program_name //重启某一进程 (program_name=你配置中写的程序名称) supervisorctl restart program_name //停止全部进程 supervisorctl stop all
在这里特别鸣谢php界的暖男(laravels的作者),并附上项目地址:https://github.com/hhxsv5/laravel-s
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: