安装docker和docker-compose
相关安装步骤在此不再赘述,参考之前的笔记:laradock搭建php环境。
安装配置laravel-s
简介:LaravelS是一个胶水项目,用于快速集成Swoole到Laravel或Lumen,然后赋予它们更好的性能、更多可能性。
项目地址:https://github.com/hhxsv5/laravel-s
相关安装要求请移步项目地址查看。
安装
通过composer安装
1
composer require "hhxsv5/laravel-s:~3.6.0" -vvv
注册ServiceProvider
Laravel: 修改文件config/app.php
,Laravel 5.5+支持包自动发现,你应该跳过这步1
2
3
4'providers' => [
//...
Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class,
],发布配置和二进制文件
每次升级LaravelS后,需重新publish。
1
2
3php artisan laravels publish
# 配置文件:config/laravels.php
# 二进制文件:bin/laravels; bin/fswatch; bin/inotify修改配置
config/laravels.php
:监听的IP、端口等,请参考配置项。
相关运行命令介绍
操作命令:
1 | php bin/laravels {start|stop|restart|reload|info|help} |
命令 | 说明 |
---|---|
start | 启动LaravelS,展示已启动的进程列表 `ps -ef |
stop | 停止LaravelS |
restart | 重启LaravelS,支持选项 `-d |
reload | 平滑重启所有Task/Worker/Timer进程(这些进程内包含了你的业务代码),并触发自定义进程的onReload 方法,不会重启Master/Manger进程;修改config/laravels.php 后,你只能调用restart 来实现重启 |
info | 显示组件的版本信息 |
help | 显示帮助信息 |
安装配置laradock
laradock采用多项目配置,让laradock和项目在同级目录,需要配置hosts。
拉取laradock至代码同级目录
1 | git clone https://github.com/laradock/laradock.git |
like this:
1 | + laradock |
复制env-example 为 .env
1 | cp env-example .env |
配置修改.env
1 | # 修改docker源为aliyun |
配置redis
配置nginx
在/xxx/www/laradock/nginx/sites
中新建xxx.conf
文件:
1 | upstream laravels { |
ps:
php-worker:5200
是因为LaravelS的进程守护是在php-worker中,并监听5200端口。
配置php-worker
在php-worker 中添加supervisor守护进程
路径:/xxxxx/www/laradock/php-worker/supervisord.d/
新建laravel-s.conf,配置启动命令、用户、日志等。
1 | [program:laravel-s] |
ps: 建议通过Supervisord监管主进程,前提是不能加
-d
选项并且设置swoole.daemonize
为false
。
项目.env配置
在.env
中配置
1 | DB_CONNECTION=mysql |
构建并启动 Laradock 相关服务
在laradock目录中
1 | docker-compose up -d nginx mysql redis php-worker |
ps:
php-fpm
是nginx
的 depends_on 依赖项,workspace
是php-fpm
的依赖项,所以这两个容器会自动创建并启动,不需要写出来。
ps:启动后,可以通过ps
查看进程运行情况,通过docker logs
查看相关进程日志。
项目配置
通过docker-compose exec workspace bash
进入容器,配置项目,具体步骤见项目README.md。
一般如:composer install
, npm install
等。
配置hosts
在服务器中配置:
1 | 127.0.0.1 laravels.com |
本机中配置:
1 | xx.xx.xx.xx laravels.com |
ps:多项目必须配置hosts
ab压测
1 | ab -n 100 -c 100 http://laravels.com/ab_test |
自测为php-fpm的5到6倍。
常见问题
- workspace 和 php-fpm 的区别
环境配置文件 .env 里包含相似的两块配置:workspace 和 php-fpm,它们对应两个不同的容器,一个是 FPM,一个是 CLI。不管是安装插件还是修改配置,都要分开修改。