Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
dnmp
└── dnmp
├── docker-compose.yml -- 基础配置文件
├── env.example -- 环境配置文件,拷贝 env.example 为 .env
├── composes -- 编写目录
│ ├── php
│ │ └── Dockerfile -- 镜像构建文件
├── conf
│ ├── nginx.conf -- Nginx 主配置文件
│ ├── conf.d
│ │ └── 80.conf -- HTTP 80 虚拟主机扩展配置文件
│ │ └── 443.conf -- HTTPS 虚拟主机扩展配置文件
│ │ └── lua.conf -- Lua 配置虚拟主机扩展配置文件
│ ├── letsencrypt -- Nginx 证书目录
│ ├── mysql
│ │ └── my.cnf -- MySQL 配置文件
│ ├── etcd
│ │ └── etcd.conf.yml -- Etcd 配置文件
│ ├── redis
│ │ └── redis.conf -- Redis 配置文件
| ├── elasticsearch
| | └── elasticsearch.yml -- Elasticsearch 配置文件
│ ├── php
│ │ ├── php.ini -- PHP 运行核心配置文件
│ │ ├── php-fpm.conf -- PHP-FPM 进程服务的配置文件
│ │ └── php-fpm.d
│ │ └── www.conf -- PHP-FPM 扩展配置文件
│ └──lua -- Lua 脚本目录
│ └── bin
│ │ └── limit.lua -- 核心库脚本
│ └── test
│ └── http.lua -- 测试脚本
|
├── data -- 数据目录
│ ├── redis
│ │ ├── appendonly.aof -- AOF 数据库保存文件
│ │ ├── dump.rdb -- RDB 数据库保存文件
│ │ └── redis.log -- Redis 日志文件
│ └── mysql -- MySQL 数据目录
| |── elasticsearch -- Elasticsearch
├── log
├ ├── nginx -- Nginx 系统错误日志
│ │ ├── access.log
│ │ └── error.log
│ └──redis -- Redis错误日志
│ └──php -- PHP错误日志
└── www -- 项目代码目录
└── site -- 具体项目目录
└──index.php
registry.cn-beijing.aliyuncs.com/tinywan/openresty
拉取代码
$ git clone git@github.com:Tinywan/dnmp.git
$ cd dnmp/dnmp // 注意!!!:是两个目录
注意:是进入两个目录! 是进入两个目录! 是进入两个目录!
新建配置文件
$ cp env.example .env
开启容器服务
$ docker-compose up
守护进程
docker-compose up -d
结束
配置文件端口必须和 docker-compose.yml
的ports - 8088:80
中的映射出来的端口一一对应
列如:
conf/conf.d/www.conf
中配置端口为80
,则映射端口也80
,对应的映射端口为:8088:80
重新加载配置文件 docker exec -it dnmp-nginx nginx -s reload
或者
docker exec dnmp-nginx nginx -s reload
在容器内执行 shell 命令:docker exec -it dnmp-nginx sh -c "ps -aef | grep nginx | grep -v grep | grep master |awk '{print $2}'"
容器时间跟宿主机时间不一致
localtime
: docker cp /etc/localtime lnmp-nginx:/etc/
docker restart lnmp-nginx
进入容器:docker exec -it dnmp-mysql /bin/bash
Windows 环境使用:
docker exec -it dnmp-mysql bash
修改配置文件 my.cnf
,重新加载:docker-compose restart mysql
容器内连接:mysql -uroot -p123456
外部宿主机连接:mysql -h 127.0.0.1 -P 3308 -uroot -p123456
数据-备份-恢复
docker exec -it dnmp-mysql mysqldump -uroot -p123456 test > test.sql
docker exec -it dnmp-mysql mysqldump --opt -d -uroot -p123456 test > test.sql
docker exec -it dnmp-mysql mysqldump -t -uroot -p123456 test > test.sql
docker exec -it dnmp-mysql mysqldump -t -uroot -p123456 --table user > user.sql
docker exec -i dnmp-mysql -uroot -p123456 test < /home/www/test.sql
如果导入不成功,检查 sql 文件头部:
mysqldump: [Warning] Using a password on the command line interface can be insecure.
是否存在该内容,有则删除即可
Crontab 任务:
55 23 * * * bash /backup/mysql_auto_backup.sh >/dev/null 2>&1
注意:crontab 定时执行 Docker 任务的时候是不需要添加参数-it
。-t
是分配一个伪终端,但是 crontab 执行的时候实际是不需要的。
项目配置文件建议:
www
,配置主机Host
字段值为 MySQL 容器 ip 段172.18.0.%
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dnmp-mysql
docker安装PHP扩展常用命令
docker-php-source
此命令,实际上就是在PHP容器中创建一个/usr/src/php的目录,里面放了一些自带的文件而已。我们就把它当作一个从互联网中下载下来的PHP扩展源码的存放目录即可。事实上,所有PHP扩展源码扩展存放的路径: /usr/src/php/ext 里面。
docker-php-ext-install
这个命令,就是用来启动 PHP扩展 的。我们使用pecl安装PHP扩展的时候,默认是没有启动这个扩展的,如果想要使用这个扩展必须要在php.ini这个配置文件中去配置一下才能使用这个PHP扩展。而 docker-php-ext-enable 这个命令则是自动给我们来启动PHP扩展的,不需要你去php.ini这个配置文件中去配置。
docker-php-ext-enable
这个命令,是用来安装并启动PHP扩展的。命令格:
docker-php-ext-install “源码包目录名”
docker-php-ext-configure
一般都是需要跟 docker-php-ext-install搭配使用的。它的作用就是,当你安装扩展的时候,需要自定义配置时,就可以使用它来帮你做到。
进入 php 容器 docker exec -it dnmp-php /bin/bash
如果提示:
bash: export: [/bin/bash,': not a valid identifier
。删除配置文件vim ~/.bashrc
末尾部分:[/bin/bash, -c, source ~/.bashrc]
重启 php 服务 docker-compose restart php
修改核心配置文件
php.ini
,可使用该命令重新加载配置文件。
修改扩展配置文件www.conf
,可使用该命令重新加载配置文件。
服务管理
docker exec -it dnmp-php bash -c "/usr/local/php/sbin/php-fpm -t"
docker exec -it dnmp-php bash -c "/usr/local/php/sbin/php-fpm"
docker exec -it dnmp-php bash -c "kill -INT 1"
docker exec -it dnmp-php bash -c "kill -USR2 1"
docker exec -it dnmp-php bash -c "ps aux | grep -c php-fpm"
docker exec -it dnmp-php bash -c "/usr/local/php/bin/php -v"
编译安装扩展
cd /opt && git clone https://github.com/php/pecl-encryption-mcrypt.git
/usr/local/php/bin/phpize --with-php-config=/usr/local/php/bin/php-config
./configure --with-php-config=/usr/local/php/bin/php-config
make -j2
make install
php.ini
配置文件:vim /usr/local/php/etc/php.ini
php-fpm
:kill -USR2 1
服务器开机自动启 PHP 容器,Ubuntu 18.04 rc.local systemd 设置
#!/bin/sh -e
# docker-compose php container /usr/local/bin/docker-compose -f /home/www/dnmp/docker-compose.yml up -d
# docker tab cron start
sleep 10; docker exec lnmp-php bash -c "/etc/init.d/cron start"
exit 0
编辑文件
vim /etc/rc.local
,添加以上内容 以上主要是解决服务器重启后,PHP 容器不能够重启以及 PHP 容器之内的 Crontab 服务不能够启动的的问题,目前没有其他解决方案
docker exec -it dnmp-redis redis-cli -h 127.0.0.1 -p 63789
docker exec -it dnmp-redis redis-cli -h dnmp-redis -p 63789
docker-compose up --no-deps -d redis
redis-cli -h 127.0.0.1 -p 63789
进入项目目录,执行以下命令安装
docker run --rm --interactive --tty --volume $PWD:/app --user $(id -u):$(id -g) composer install --ignore-platform-reqs
--ignore-platform-reqs
参数表示官方 docker composer 库没有包含当前 PHP 版本
安装一个新的 composer 包
E:\dnmp> docker run --rm --interactive --tty -v e:/dnmp/www/thinkphp_3.2:/app composer require tinywan/load-balancing --ignore-platform-reqs
tinywan/load-balancing
为需要安装的包名
执行执行项目的绝对路径
E:\dnmp> docker run --rm --interactive --tty -v e:/dnmp/www/tp6:/app composer install --ignore-platform-reqs
tp6
为项目目录
需要进入dnmp-php
容器: docker exec -it dnmp-php /bin/bash
查看 composer
版本:composer --version
修改 composer 的全局配置文件(推荐方式)
composer config -g repo.packagist composer https://packagist.phpcomposer.com
// 或者
composer config -g repo.packagist composer https://packagist.laravel-china.org
如果你是墙内客户,务必添加以上国内镜像。否则会出现
file could not be downloaded (HTTP/1.1 404 Not Found)
更新框架或者扩展
/var/www/tp5.1# apt update
/var/www/tp5.1# apt install sudo
/var/www/tp5.1# sudo -u www-data sh -c "/usr/local/php/bin/php /usr/local/bin/composer install"
请使用
www-data
更新安装包,而不是默认直接使用root
账户, 尽量使用composer install
更新安装包,而不是composer update
,
建议在主机 HOST 中使用 composer,避免 PHP 容器变得庞大,Docker Official Images
宿主机直接使用命令:
docker exec dnmp-php bash -c "cd /var/www/p2p_wallet; /usr/local/php/bin/php /usr/local/sbin/composer update"
1、在主机创建一个目录,用以保存 composer 的配置和缓存文件
mkdir ~/dnmp/composer
2、打开主机的 ~/.bashrc 或者 ~/.zshrc 文件,加上
composer () {
tty=
tty -s && tty=--tty
docker run \
$tty \
--interactive \
--rm \
--user $(id -u):$(id -g) \
--volume ~/dnmp/composer:/tmp \
--volume /etc/passwd:/etc/passwd:ro \
--volume /etc/group:/etc/group:ro \
--volume $(pwd):/app \
composer "$@"
}
3、让文件起效
source ~/.bashrc
4、在主机的任何目录下就能用composer
了
cd ~/dnmp/www/
composer create-project topthink/think tp5.2
composer update topthink/framework
第一次执行提示:
Unable to find image 'composer:latest' locally
,不要慌,稍等片刻
# 2019年2月14日 @add Tinywan 获取图表数据 每3分钟执行一次
*/30 * * * * docker exec dnmp-php echo " Hi Lnmp " >> /var/www/crontab.log
dnmp-php
为容器名称
dnmp-php
容器: docker exec -it dnmp-php /bin/bash
/etc/init.d/cron start
crontab -e
* * * * * echo " Hi dnmp " >> /var/www/crontab.log
*/30 * * * * /usr/local/php/bin/php /var/www/tp5.1/think jobs hello
在项目中难免会用到 workerman
进入dnmp-php
容器:docker exec -it dnmp-php /bin/bash
以 daemon(守护进程)方式启动 workerman :php ../workerman/start.php start -d
宿主机平滑重启 workerman :docker exec -it dnmp-php bash -c "/usr/local/php/bin/php /var/www/site/think worker:gateway reload"
配置docker-compose.yml
文件中对应的映射端口
php:
ports:
- "9000:9000"
- "9502:9502" # workerman 映射端口
- "1239:1239" # Gateway 客户端
防火墙问题,如果使用阿里云 ESC,请在安全组增加入方向和出方向端口配置
协议类型:自定义 TCP
端口范围:9502/9502
授权对象:0.0.0.0/0
宿主机可以查看对应端口号是否已经映射成功
ps -aux|grep 9502
WorkerMan: worker process AppGateway websocket://0.0.0.0:9502
通过telnet
命令检测远程端口是否打开
telnet 127.0.0.1 9502
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
出现
Connected
表示连通了
通过 Console 测试是否支持外网访问
var ws = new WebSocket('ws://宿主机公网ip:9502/');
ws.onmessage = function(event) {
console.log('MESSAGE: ' + event.data);
};
ƒ (event) {
console.log('MESSAGE: ' + event.data);
}
MESSAGE: {"type":"docker","text":"Hi Tinywan"}
主机上访问 phpMyAdmin 的地址:http://localhost:8082
或者http://宿主机Ip地址:8082
默认登录账户:
root
,密码:123456
重新单独构建镜像
$ docker-compose build # 重建全部服务
$ docker-compose build php74 # 重建单个服务
进入 Docker 容器
$ docker exec -it dnmp-php bash
$ winpty docker exec -it dnmp-php bash
关闭容器并删除服务docker-compose down
单独重启 redis 服务 docker-compose up --no-deps -d redis
如果用户只想重新部署某个服务,可以使用
docker-compose up --no-deps -d <SERVICE_NAME>
来重新创建服务并后台停止旧服务,启动新服务,并不会影响到其所依赖的服务。
单独加载配置文件,列如修改了 nginx 配置文件www.conf
中的内容,如何即使生效,请使用以下命令重启容器内的 Nginx 配置文件生效:
docker exec -it lnmp-nginx nginx -s reload
lnmp-nginx
为容器名称(NAMES
),也可以指定容器的 ID 。nginx
为服务名称(docker-compose.yml
)
修改docker-compose.yml
文件之后,如何使修改的docker-compose.yml
生效?
docker-compose up --no-deps -d nginx
以上表示只是修改了
docker-compose.yml
中关于 Nginx 相关服务器的配置
容器资源使用情况
docker stats
docker stats dnmp-nginx dnmp-php dnmp-mysql dnmp-redis
docker stats --all --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" dnmp-nginx dnmp-php
docker-compose 常用命令
启动docker-compose.yml
定义的所有服务:docker-compose up
重启docker-compose.yml
中定义的所有服务:docker-compose restart
停止docker-compose.yml
中定义的所有服务(当前目录配置):docker-compose stop
停止现有 docker-compose 中的容器:docker-compose down
(重要)
如果你修改了
docker-compose.yml
文件中的内容,请使用该命令,否则配置文件不会生效
例如:Nginx 或者 MySQL 配置文件的端口
重新拉取镜像:docker-compose pull
后台启动 docker-compose 中的容器:docker-compose up -d
查看容器详细信息
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
docker inspect --format='{{.LogPath}}' $INSTANCE_ID
docker inspect --format='{{.Config.Image}}' $INSTANCE_ID
生成本地 HTTPS 加密证书的工具 mkcert,一个命令就可以生成证书,不需要任何配置。
本地本地C:\Windows\System32\drivers\etc\hosts
文件,添加以下内容
127.0.0.1 dnmp.com
127.0.0.1 www.dnmp.org
127.0.0.1 www.dnmp.cn
一键生成证书。进入证书存放目录:$ cd etc/letsencrypt/
首次运行时,先生成并安装根证书
$ mkcert --install
Using the local CA at "C:\Users\tinywan\AppData\Local\mkcert" ✨
自定义证书签名
$ mkcert dnmp.com "*.dnmp.org" "*.dnmp.cn" localhost 127.0.0.1
Using the local CA at "C:\Users\tinywan\AppData\Local\mkcert" ✨
Created a new certificate valid for the following names 📜
- "dnmp.com"
- "*.dnmp.org"
- "*.dnmp.cn"
- "localhost"
- "127.0.0.1"
Reminder: X.509 wildcards only go one level deep, so this won't match a.b.dnmp.org ℹ️
The certificate is at "./dnmp.com+4.pem" and the key at "./dnmp.com+4-key.pem" ✅
已经生成的证书
$ ls etc/letsencrypt/
dnmp.com+4.pem dnmp.com+4-key.pem
配置 Nginx 虚拟主机配置文件
server {
listen 443 ssl http2;
server_name www.dnmp.cn;
ssl_certificate /etc/letsencrypt/dnmp.com+4.pem;
ssl_certificate_key /etc/letsencrypt/dnmp.com+4-key.pem;
...
}
浏览器访问效果
$ docker run --rm -it -v "D:\Git\docker-lnmp\dev\nginx\v5\etc\letsencrypt":/acme.sh \
-e Ali_Key="LTAIn" -e Ali_Secret="zLzA" neilpang/acme.sh --issue --dns dns_ali \
-d tinywan.top -d *.tinywan.top -d *.frps.tinywan.top
保存目录
/home/www/openssl
D:\Git\docker-lnmp\dev\nginx\v5\etc\letsencrypt
参数详解(阿里云后台获取的密钥)
Ali_Key
阿里云 AccessKey IDAli_Secret
阿里云 Access Key Secret这里默认镜像标签为:
bionic
注意:如果你使用alpine
and stretch
镜像标签,请单独安装opm
,按照下面步骤安装既可
Usage:cd dnmp/dev/openresty/v1 && docker-compose.exe up
Installation OPM docker exec -it dnmp-openresty apk add --no-cache curl perl
Windows
winpty docker exec -it dnmp-openresty apk add --no-cache curl perl
通过 opm install extend
search redis package
docker exec -it dnmp-openresty opm search redis
install redis package
docker exec -it dnmp-openresty opm get openresty/lua-resty-redis
install to specification directory
/usr/local/openresty/lualib/resty
docker exec -it dnmp-openresty sh -c "opm --install-dir=/usr/local/openresty get ledgetech/lua-resty-http"
配置文件
测试配置是否正确
docker exec -it dnmp-openresty nginx -t
重新加载配置文件
docker exec -it dnmp-openresty nginx -s reload
获取 Redis 容器的 IP 地址
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dnmp-redis-v2
Nginx 日志时间时间不一致
docker cp etc/localtime dnmp-openresty:/etc/
docker-compose restart openresty
管理界面地址:http://127.0.0.1:15672/
地管理界面地址址:http://127.0.0.1:5601/
安装前的依赖
apt install sudo
sudo apt install wget
sudo apt install vim
sudo apt install vim
vim /etc/apt/sources.list # 请使用163 的源,比阿里云的靠谱点 `http://mirrors.163.com/ubuntu/ bionic`
sudo apt update
# add openresty source
wget -qO - https://openresty.org/package/pubkey.gpg | sudo apt-key add -
sudo apt-get -y install software-properties-common
sudo add-apt-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main"
sudo apt-get update
# install openresty, etcd and some compilation tools
sudo apt-get install -y git etcd curl luarocks\
check libpcre3 libpcre3-dev libjemalloc-dev \
libjemalloc1 build-essential libtool automake autoconf pkg-config cmake
# start etcd server
sudo service etcd start
安装 APISIX
sudo luarocks install apisix
如果一切顺利,你会在最后看到这样的信息:
apisix is now built and installed in /usr (license: Apache License 2.0)
恭喜你,APISIX 已经安装成功了。
1、安装 sudo apt-get install etcd
2、开启服务 sudo service etcd start
3、etcdctl 命令进行测试
(1)设置和获取键值 testkey: "hello Tinywan",检查 etcd 服务是否启动成功
(2)命令行执行
# etcdctl set testkey "hello Tinywan" # 设置
hello Tinywan
# etcdctl get testkey # 获取
hello Tinywan
# etcdctl rm testkey # 删除
PrevNode.Value: hello Tinywan
#etcdctl get testkey1 # 重新获取
Error: 100: Key not found (/testkey1) [13]
# # etcdctl set testkey "hello Tinywan" --ttl 10 # 设置一个过期时间
说明 etcd 服务已经成功启动了
4、通过 HTTP 访问本地 2379 或 4001 端口的方式来进行操作,例如查看 testkey 的值
# curl -L http://localhost:2379/v2/keys/testkey
{"action":"get","node":{"key":"/testkey","value":"hello Tinywan","modifiedIndex":12,"createdIndex":12}}
5、member 通过 list、add、remove 命令列出、添加、删除 etcd 实例到 etcd 集群中。 启动一个 etcd 服务实例后,可以用如下命令进行查看
# etcdctl member list
8e9e05c52164694d: name=8c831881add4 peerURLs=http://localhost:2380 clientURLs=http://localhost:2379 isLeader=true
镜像:docker pull registry.cn-beijing.aliyuncs.com/tinywan/dnmp:php5.6-v2
配置文件映射路径:
volumes:
- ./www:/var/www
- ./etc/php.ini:/usr/local/etc/php/php.ini:ro
- ./etc/php-fpm.d/www.conf:/usr/local/etc/php-fpm.d/www.conf:rw
- ./log:/var/log/php
Google 浏览器安装 Xdebug 插件:xdebug-helper
PHPStrom 默认配置就可以,打断点开始调试,默认不需要添加参数
Postman 断点调试(API接口),直接在后面增加?XDEBUG_SESSION_START=PHPSTORM
参数,即:http://www.tinywan.top:8007?XDEBUG_SESSION_START=PHPSTORM
编译问题 repository does not exist or may require 'docker login': denied: requested
,请检查docker-compose.yml
文件格式
连接 Redis 报错:Connection refused
,其他客户端可以正常连接
容器之间相互隔绝,在进行了端口映射之后,宿主机可以通过 127.0.0.1:6379 访问 redis,但 php 容器不行。在 php 中可以直接使用
hostname: lnmp-redis
来连接 redis 容器。原贴地址
Windows 10 启动错误 Error starting userland proxy: Bind for 127.0.0.1:3306: unexpected error Permission denied
检查本地是否有 MySQL 已经启动或者端口被占用。关闭即可
Linux 环境启动的时候,MySQL 总是Restarting
:lnmp-mysql docker-entrypoint.sh --def ... Restarting
解决办法:
cd etc/mysql
,查看文件权限。最暴力的:rm -r data && mkdir data
解决问题
权限问题
mkdir(): Permission denied
问题,解决办法:sudo chmod -R 777 runtime
ErrorException in File.php line 29 mkdir(): Permission denied
无法权限被拒绝
chmod -R 777 runtime
chmod -R 777 upload
docker-compose.yml
文件格式错误
ERROR: yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
in "./docker-compose.yml", line 68, column 1
这里的原因是
docker-compose.yml
中最前面用了tab
,改成空格就好了。对 yaml 文件格式要求严格
PHP 容器更新源或者使用 Composer 出现以下错误,请重启 Docekr(Windows 10 环境很容易出现这个问题)
# apt-get update
Err:1 http://mirrors.163.com/ubuntu bionic InRelease
Temporary failure resolving 'mirrors.163.com'
Windows10 环境自动构建遇到的问题:ERROR: http://mirrors.aliyun.com/..: temporary error (try again later)
解决办法:重启 Docker 服务
1、安装vim apt-get install vim
2、更新源vim sources.list
,
(1)中科大源:sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
(2)直接编辑 /etc/apt/sources.list
文件
deb http://mirrors.163.com/debian/ stretch main non-free contrib
deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
degian9
的163源
3、更新163源:apt update
4、安装mycli:apt-get install mycli
5、设置默认语言格式: export LANG=C.UTF-8
6、演示如下所示
7、直接通过外部连接docker exec -it dnmp-mysql sh -c "export LANG=C.UTF-8 && mycli -h 127.0.0.1 -p123456"
./configure \
--prefix=/usr/local/openresty \
--with-luajit \
--with-stream \
--with-stream_ssl_module \
--with-stream=dynamic \
--with-file-aio \
--with-threads \
--with-cc-opt="-O3" \
--with-http_v2_module \
--with-http_realip_module \
--with-http_mp4_module \
--with-http_gzip_static_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_xslt_module \
--with-http_iconv_module \
--without-http_redis2_module \
--with-openssl-opt=enable-tlsext \
--add-dynamic-module=/home/www/build/nginx-rtmp-module/ \
--add-dynamic-module=/home/www/build/nginx-ts-module/ \
--add-dynamic-module=/www/home/build/nginx-vod-module/ \
--add-dynamic-module=/www/home/build/nginx-module-vts/
编译安装
make
sudo make install
# 安装好后进入 apisix 项目
make run
make stop
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。