主机Nginx + Docker WordPress Mysql搭建的示例
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这篇文章主要介绍了主机Nginx + Docker WordPress Mysql搭建的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一
千家信息网最后更新 2024年11月24日主机Nginx + Docker WordPress Mysql搭建的示例
这篇文章主要介绍了主机Nginx + Docker WordPress Mysql搭建的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
环境
Linux 3.10.0-693.el7.x86_64
Docker version 18.09.0
docker-compose version 1.17.0
安装
安装 docker 所需依赖
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
安装 docker-ce
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo $ sudo yum install docker-ce $ sudo systemctl start docker $ docker --version $ sudo docker run hello-world
安装 docker-compose
$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose$ sudo chmod +x /usr/bin/docker-compose$ docker-compose --version
编写 docker-compose.yml
$ mkdir ./blog$ cd blog$ sudo vim docker-compose.yml
version: '3'services: db: image: mysql:5.7 volumes: # 数据卷,映射本地文件夹 - db_data:/var/lib/mysql ports: # 如果不写端口映射的话,外部无法连接该mysql(下方WordPress连接没问题) - "3306:3306" restart: always environment: MYSQL_ROOT_PASSWORD: xxx MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: # 依赖上方的 db service - db image: wordpress:latest volumes: - wp_site:/var/www/html ports: - "8000:80" restart: always privileged: true environment: # 可以直接使用 上方 service 名 + 端口来获得链接 WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress # 定义域名 WORDPRESS_CONFIG_EXTRA: "define('WP_HOME','https://blog.amoyiki.com'); define('WP_SITEURL','https://blog.amoyiki.com');"volumes: db_data: wp_site:
运行容器
# 启动$ sudo docker-compose up -d# 关闭 $ sudo docker-compose down
现在可以用 http://ip:port 来访问。如果发现无法访问,可以 查看容器日志寻找错误
$ sudo docker-compose ps Name Command State Ports blog_db_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcpblog_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8000->80/tcp # 主要后面的 WordPress 是服务的名字 这和 docker 查看日志使用容器名不同$ sudo docker-compose logs -f --tail=10 wordpress $ sudo docker-compose logs -f --tail=10 db
使用主机 Nginx 反代 docker wordpress
nginx 的配置文件如下(省略不相干内容)
user root; # 这是由于 docker 容器内 WordPress 文件用户为 www-dataserver { listen 80; server_name *.amoyiki.com; return 301 https://$host$request_uri; }upstream wordpress-workhorse { server 127.0.0.1:8000 fail_timeout=10s;}server { server_name blog.amoyiki.com; listen 443 ssl; ssl on; ssl_certificate /ssl/path/fullchain.pem; ssl_certificate_key /ssl/path/privkey.pem; access_log /var/log/nginx/access.log main; # 主机中 WordPress 数据卷位置 root /var/lib/docker/volumes/blog_wp_site/_data; location / { proxy_pass http://wordpress-workhorse; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires 7d; access_log off; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }}
错误合集
nginx error Permission denied
"/var/lib/docker/volumes/myblog_wp_site/_data/wp-includes/css/dashicons.min.css" failed (13: Permission denied)
之前我 nginx.conf user 使用的是默认的 nobody 无法读取 docker 中 wp 的 www-data 这个用户组数据,所以直接将 nginx 用户提到 root,这个之后可以优化
感谢你能够认真阅读完这篇文章,希望小编分享的"主机Nginx + Docker WordPress Mysql搭建的示例"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
主机
容器
篇文章
数据
文件
用户
示例
日志
端口
错误
不同
不相干
价值
位置
兴趣
内容
同时
名字
域名
文件夹
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
清理云服务器
云计算与软件开发
软件开发工程师的感想
征鼎网络技术有限公司
网络技术在破案中的应用
最简单服务器监控工具
数据库查询对象定义被修改
两张数据库表怎么设置关联
连不上虚拟机的服务器
简述网络技术的社会作用
数据库登录地址限制
arcgis加载数据库文件
网络安全动员培训
阿里数据库管理者
网络机房服务器
masslynx 数据库
如何平衡管理与服务器
数据库和excel函数对比
括号服务器 安全
软件开发还是数据科学家
云南学习软件开发多少钱
中联软件开发语言
shopee 软件开发
网络技术改学分
腾讯云服务器mysql
上海德颐网络技术有限公司
维护网络安全的主要任务不包括
网络安全口诀二十条
数据库表的索引表达式
tcmsp 数据库