php - Docker: How can I run a Wordpress project with specific versions?
问题描述
I'm trying to run a Wordpress project with mysql 5.5.68, Wordpress 5.7.2, Apache/2.4.6 (CentOS) and PHP 7.3.28 with Docker.
The containers are up and running and I can access them but when I try to visit localhost:8000
the page doesn't load. I see This page isn't working ERR_EMPTY_RESPONSE
What do I need to add/modify to my docker-compose.yml
file to get my project to run?
docker-compose.yml:
version: '3'
services:
# Database
db:
image: mysql:5.5
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
networks:
- wpsite
# phpmyadmin
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- '8080:80'
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: password
networks:
- wpsite
# Wordpress
wordpress:
depends_on:
- db
image: wordpress:php7.3-fpm-alpine
ports:
- '8000:80'
restart: always
volumes: ['./:/var/www/html']
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
networks:
- wpsite
networks:
wpsite:
volumes:
db_data:
解决方案
看起来您用于核心 wordpress 应用程序的图像wordpress:php7.3-fpm-alpine
不包括反向代理/网络服务器来实际为您的站点提供服务。
这由此处的 wordpress 图像页面上的文档支持:https : //hub.docker.com/_/wordpress 在“图像变量”部分中,您将看到以下评论:
WordPress:-fpm。
此变体包含 PHP-FPM,它是 PHP 的 FastCGI 实现。有关 PHP-FPM 的更多信息,请参阅 PHP-FPM 网站。
为了使用此图像变体,需要某种反向代理(例如 NGINX、Apache 或其他使用 FastCGI 协议的工具)。
使用包含的 Web 服务器/反向代理查找图像,或使用 NGINX 等反向代理。上面的链接有一些资源来实现这个=)
在初始答案提交后添加
您已指定 Apache 版本,但未将其包含在撰写设置中。您需要添加一个 apache 容器(在 docker hub 上称为 httpd)并使用复制的配置文件或将其卷安装到 apache 容器中进行配置。
这篇文章有一些关于您需要添加以将 PHP 处理传递给 FPM 的配置的详细信息:wordpress:-fpm https://stackoverflow.com/a/66234290/5889983
推荐阅读
- python-3.x - 如何使用 IPOPT 在 Pyomo 中指定渐变
- python - 哈希方法在 python 2 中默认,而不是 python 3
- python - PySpark Foreach
- vb.net - 打开远程桌面并连接到计算机
- curl - 使用 J 从安全链接中读取 CSV 文件
- debugging - ELI5:帮助我了解移动应用(iOS 或 Android)上的功能测试失败时的补救/调试
- struts2 - 如何使用 Struts2 Jquery Grid (sjg:grid) 插件在同一级别上创建具有单个父网格和 2 个子网格的网格
- ios - 如何在 containerView 中重新加载 tableView?
- python - 具有自定义窗口大小的 Pandas groupby 滚动平均值
- c - 如何替换数组中的子字符串