主机Nginx + Docker WordPress Mysql搭建的示例
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍了主机Nginx + Docker WordPress Mysql搭建的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一
千家信息网最后更新 2025年02月02日主机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安全错误
数据库的锁怎样保障安全
奥丁神判服务器太忙
安徽gpu服务器租用费用
计算机的网络安全实质
最常见的网络安全事件有哪些
健身环连接服务器时出错
数据库一节课教案
db2备份远程数据库
以网络安全为题作文
计算机网络技术过程控制
谷歌服务器 在哪
web端直接连数据库安全吗
广州智族网络技术有限公司
完全恢复数据库的恢复序列号
数据库系统的安全特性
网络技术就业前景怎样
数理统计数据库
时间机器下载软件开发
三力服务器
天津机电软件开发怎么样
数据库领域的顶级期刊
西门子软件开发定制
数据库游戏充值系统报告
精致的网络安全知识小报
sql数据库用户名密码过期
软件开发合同标准模板下载
杭州络町网络技术
阿里云数据库租费每年多少钱
网络安全问题考试
在软件开发不包括
网络安全运行防范入侵