学习docker 自行搭建的lnmp环境,包括mysql8,redis,swoole,laravel与lumen项目配置等。
拉取库:
git clone https://github.com/rangerdong/dnmp.git
进入
dnmp
目录内,运行容器:
docker-compose up -d {nginx mysql php redis}
进入容器内部: (更新代码或者执行对应命令)
docker-compose exec php /bin/bash
│ .gitignore
│ docker-compose.yml
│ README.md
├─codes # 存放php代码
│ │ .gitignore
│ │
│ ├─html # 默认web站点 (http://www.lnmp-docker.local)
│ │ curl.php # curl本机, fix curl(7) connect refuse 错误
│ │ index.php # phpinfo()
│ │ mysql.php # 测试数据库连接
│ │
│ ├─laravel # 默认laravel站点 (http://www.laravel.local)
│ │
│ ├─lumen # 默认lumen站点 (http://www.lumen.local)
│
├─conf # 配置文件夹
│ ├─nginx
│ │ │ nginx.conf
│ │ │
│ │ └─conf.d
│ │ .gitignore
│ │ default.conf
│ │ laravel.conf
│ │ lumen.conf
│ │
│ └─php
│ │ php.ini
│ │
│ └─php-fpm.d
│ www.conf
│
├─images # 镜build文件夹
│ ├─mysql
│ │ Dockerfile
│ │ my.cnf
│ │
│ └─php
│ Dockerfile
│
├─log # 日志文件夹
│ ├─mysql
│ │ .gitignore
│ │
│ ├─nginx
│ │ .gitignore
│ │
│ ├─php
│ │ .gitignore
│ │
│ └─php-fpm
│ .gitignore
│
└─mysql # mysql数据存储文件夹
│ .gitignore
在本机
host
内加入
127.0.0.1 www.lnmp-docker.local
127.0.0.1 www.laravel.local
127.0.0.1 www.lumen.local
运行即可
本php-fpm镜像已经安装好swoole拓展与swoole服务
进入php72容器中,并进入到laravel/lumen项目路径中,此处以默认项目为例
docker-compose exec php /bin/bash
# cd /var/www/laravel or lumen
安装composer包
composer require "hhxsv5/laravel-s:~1.0" -vvv
Laravel
: 修改文件config/app.php
'providers' => [
//...
Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class,
],
Lumen
: 修改文件bootstrap/app.php
$app->register(Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class);
每次升级LaravelS后,建议重新发布一次配置文件
php artisan laravels publish
使用Lumen时的特别说明
: 你不需要手动加载配置laravels.php
,LaravelS底层已自动加载。
// 不必手动加载,但加载了也不会有问题
$app->configure('laravels');
修改配置config/laravels.php
:监听的IP、端口等,请参考配置项。
需要将 配置文件中的 LARAVELS_LISTEN_IP 设置为 fpm(即此容器名称) 不然nginx会报连接错误
php artisan laravels {start|stop|restart|reload|publish}
mysql:latest 拉取的最新8.0版本 所以my.cnf会有所不同,因此此项目的cnf文件是8.0的配置