运行环境集成了apache + nginx + mysql + redis + mongo + php(5.6/7.2/7.3) + composer + portainer:
100%
开源100%
遵循Docker标准pdo_mysql
、redis
、xdebug
、swoole
等常用热门扩展,拿来即用100%
可用conf 配置文件的目录,包括
conf/apache/extra/httpd-vhosts.conf 配置虚拟主机的文件
conf/apache/extra/httpd-ssl.conf 配置https的主机的文件
conf/nginx/conf.d/demo.conf 配置nginx的主机的文件, 也可以新加文件,但是后缀以.conf结尾
data 数据目录
--- mysql mysql数据目录
--- portainer portainer数据目录
log 日志目录
--- apache apache日志目录
--- nginx nginx日志目录
--- php-fpm php-fpm日志目录
www 网站的根目录
docker-compose.yml 容器的编译文件
.evn 变量文件
git clone https://gitee.com/myxingke/danmp.git
由于是我自己在使用我默认挂载的是我本机地址,你需要修改一下或者换成你本地的www目录
cd danmp
//创建容器
docker-compose up -d
测试nginx:
测试apache:
如果访问出现以下内容,说明环境搭建成功成功后将会出现如下内容
配置php72 or php72 or php56 里的extra_host 关于IP 在.evn的配置里 指定ip为当前运行的apache nginx IP
extra_hosts:
- "www.wu.cn:172.100.0.2"
- "www.spread.cn:172.100.0.2"
- "shop.du.cn:172.100.0.2"
- "www.lease.cn:172.100.0.2"
每次修改后执行
docker-compose restart
单个
docker restart nginx_web
重启过后 www.site.com ---> curl www.site1.cn
代理地址必须是:host.docker.internal
另还要在server里配置解析器: resolver 127.0.0.11 ipv6=off;
且ip不能更换
相关文档
相关文档
具体配置请查看 conf/nginx/conf.d/proxy.pc.cn.conf
如果反向代理一直不生效可以清除浏览器缓存或刷新dns或换浏览器!之前我就是生效因前面失败导致缓存在一直显示假象。
vhost配置文件里找到如下内容替换
fastcgi_pass php73:9000; 换成php73版本
fastcgi_pass php72:9000; 换成php72版本
fastcgi_pass php56:9000; 换成php5.6版本
程序连接方式
- host:(本项目的MySQL容器网络,或mysql)
- port:`3306`
- username:`root`
- password:`root`
工具连接方式
- host:127.0.0.1
- port:`3306`
- username:`root`
- password:`root`
程序连接方式
- host: redis
- port: 6379
工具连接方式
- host: 127.0.0.1
- port: 6379
//mongo
'Common\Component\Mongo' => [
'main' => [
'host' => '172.100.0.40',
'port' => '27017',
'user' => 'root',
'password' => 'root',
'auth' => '',
//库名
'db_name' => 'pcbx_nk',
]
]
//mysql
'master' => [
'db_host' => '172.100.0.20',
'db_name' => 'pcbx_nk',
'db_user' => 'root',
'db_pass' => 'root',
'db_port' => 3306,
'db_charset' => 'utf8mb4'
]
//redis
'conf' => [
'host' => '172.100.0.30',
'port' => 6379,
'db' => 1,
'password' => ''
]
portainer docker的gui管理工具
- localhost: 9000
//使用php72服务的composer命令
docker-compose exec php72 composer --version
//使用php72服务的php命令行工具
docker-compose exec php72 php -v
//在 docker ps 下你可以看到
9000/tcp, 9501/tcp
而不是
0.0.0.0:9000/tcp, 0.0.0.0:9501->9501/tcp
需要在docker-compose php container_name 里增加如下暴露端口
ports:
- "9000:9000"
- "9501:9501"
添加后你可以直接通过 ip:port方式访问
Swoole\Server::start(): Using Xdebug in coroutines is extremely dangerous, please notice that it may lead to coredump! in
conf/php/ext/php73/docker-php-ext-xdebug.ini
直接注释掉前面加个分号
;zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so
如果要开启取消掉前面的;分号
重启服务即可
useradd www-data
useradd -g www-data www-data
chown -R www-data:www-data public/ logs/
bcmath
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
memcached
mongodb
mysqlnd
mysqli (5.6)
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib
[Zend Modules]
Xdebug
Zend OPcache
//如果state的状态为up 说明容器启动成功
docker-compose ps
//启动所有服务
docker-compose start
//停止所有服务
docker-compose stop
//重启所有服务
docker-compose restart
//查看所有服务的日志
docker-compose logs
//查看nginx的服务日志
docker-compose logs nginx
//查看apache
docker-compose logs apache
//查看mysql
docker-compose logs mysql
//查看php72
docker-compose logs 72
//进入apache服务的命令
docker-compose exec apache bash
// 查看所有正在运行容器
docker ps
// containerId 是容器的ID
docker stop containerId
// 查看所有容器
docker ps -a
// 查看所有容器ID
docker ps -a -q
// stop停止所有容器
docker stop $(docker ps -a -q)
// remove删除所有容器
docker rm $(docker ps -a -q)
//杀死所有正在运行的容器
docker kill $(docker ps -a -q)
//删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)
删除所有镜像
docker rmi `docker images -q`
在php里我已经装好了composer 关于使用方法上面有说明,如果你要单独使用composer把下面命令复制放到docker-compose里吧
composer:
container_name: 'composer'
image: composer/composer:php7
command: install
volumes:
- ${WORKSPACES}:/var/www/:rw
asset 目录下放的是portainer汉化资源文件
如果忘记portainer密码 删除 data/protainer
目录文件资源 重新访问再次输入密码即可解决
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。