Docker 本地 Wordpress 开发
Docker Local Wordpress Development
我已经按照 Wordpress 快速入门教程设置了本地开发环境。但是,我正在尝试将我的本地环境设置为使用 local.mysite.com 而不是默认的本地主机 http://localhost:8080。我已将 local.mysite.com 添加到我的主机文件并更新了数据库中的所有 url 以指向 local.mysite.com。但是我无法在我的浏览器中访问该站点。
我搜索了一段时间,但我找到的唯一解决方案是我需要向 docker-compose 添加反向代理 (https://objectpartners.com/2020/09/01/local-wordpress-development-with-docker/),但他们没有解释为什么需要这样做。我的理解是端口 80 绑定到我的 wp 图像,因此 http 请求应该直接路由到它。
希望了解如何正确设置它以使用没有反向代理的自定义 url,或者更好地理解为什么需要反向代理。
services:
wp:
image: wordpress:latest
ports:
- 80:80
volumes:
#- ./config/php.conf.ini:/usr/local/etc/php/conf.d/conf.ini
- ./wp-app:/var/www/html # Full wordpress project
- ./wp-content/:/var/www/html/wp-content
environment:
DB_HOST: db
DB_NAME: "*****"
DB_USER: "*****"
DB_PASSWORD: "*****"
depends_on:
- db
仅当您在 80 以外的其他端口上发布容器时才需要反向代理。
如果下面 docker-compose.yml 中的端口部分显示“8080:80”,则无法将域名映射到容器,因为域名无法指向端口,仅限 IP 地址。
但是您已经在主机的 80 端口上发布了,因此似乎不需要反向代理。
看不出您的环境有什么问题。
我能帮助你的唯一方法是展示一个有效的 Wordpress Docker env.
docker-compose.yml
version: '3.9'
services:
db:
image: mysql:5.7
container_name: mysql
volumes:
- ./database:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: word@press
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: abc@123
wordpress:
depends_on:
- db
image: wordpress:latest
container_name: wp
volumes:
- ./wordpress_files:/var/www/html
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: abc@123
docker-compose 创建了 2 个容器:
- mysql:容器运行MySQL数据库
- wp: 容器 运行 Wordpress
目录
创建2个与docker-compose.yml同级的目录:
- 数据库
- wordpress_files
创建域名
在您的 /etc/hosts(Mac 和 Linux。不知道 Windows)中创建以下行:
127.0.0.1 local.mysite.com
我已经按照 Wordpress 快速入门教程设置了本地开发环境。但是,我正在尝试将我的本地环境设置为使用 local.mysite.com 而不是默认的本地主机 http://localhost:8080。我已将 local.mysite.com 添加到我的主机文件并更新了数据库中的所有 url 以指向 local.mysite.com。但是我无法在我的浏览器中访问该站点。
我搜索了一段时间,但我找到的唯一解决方案是我需要向 docker-compose 添加反向代理 (https://objectpartners.com/2020/09/01/local-wordpress-development-with-docker/),但他们没有解释为什么需要这样做。我的理解是端口 80 绑定到我的 wp 图像,因此 http 请求应该直接路由到它。
希望了解如何正确设置它以使用没有反向代理的自定义 url,或者更好地理解为什么需要反向代理。
services:
wp:
image: wordpress:latest
ports:
- 80:80
volumes:
#- ./config/php.conf.ini:/usr/local/etc/php/conf.d/conf.ini
- ./wp-app:/var/www/html # Full wordpress project
- ./wp-content/:/var/www/html/wp-content
environment:
DB_HOST: db
DB_NAME: "*****"
DB_USER: "*****"
DB_PASSWORD: "*****"
depends_on:
- db
仅当您在 80 以外的其他端口上发布容器时才需要反向代理。
如果下面 docker-compose.yml 中的端口部分显示“8080:80”,则无法将域名映射到容器,因为域名无法指向端口,仅限 IP 地址。
但是您已经在主机的 80 端口上发布了,因此似乎不需要反向代理。
看不出您的环境有什么问题。 我能帮助你的唯一方法是展示一个有效的 Wordpress Docker env.
docker-compose.yml
version: '3.9'
services:
db:
image: mysql:5.7
container_name: mysql
volumes:
- ./database:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: word@press
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: abc@123
wordpress:
depends_on:
- db
image: wordpress:latest
container_name: wp
volumes:
- ./wordpress_files:/var/www/html
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: abc@123
docker-compose 创建了 2 个容器:
- mysql:容器运行MySQL数据库
- wp: 容器 运行 Wordpress
目录
创建2个与docker-compose.yml同级的目录:
- 数据库
- wordpress_files
创建域名
在您的 /etc/hosts(Mac 和 Linux。不知道 Windows)中创建以下行:
127.0.0.1 local.mysite.com