如何为WordPress构建Apache+PHP-FPM的Docker容器环境
实现独立WordPress-FPM与Apache容器的关联
不用纠结带Apache的WordPress镜像,直接用官方Apache容器反向代理到WordPress-FPM容器即可,步骤如下:
创建专属Docker网络
让两个容器能互相发现和通信:docker network create wp-network启动WordPress-FPM容器
假设你已准备好MySQL/MariaDB容器(命名为wp-db并加入同一网络),启动命令示例:docker run -d \ --name wp-fpm \ --network wp-network \ -v wp-content:/var/www/html/wp-content \ -e WORDPRESS_DB_HOST=wp-db:3306 \ -e WORDPRESS_DB_USER=你的数据库用户名 \ -e WORDPRESS_DB_PASSWORD=你的数据库密码 \ -e WORDPRESS_DB_NAME=你的数据库名 \ wordpress:6.3.1-php8.2-fpm挂载
wp-content卷是为了让Apache能访问静态文件,同时保留主题、插件等数据。配置Apache反向代理
- 新建Apache配置文件
wp-proxy.conf,内容如下:LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so <VirtualHost *:80> DocumentRoot /var/www/html <Directory /var/www/html> AllowOverride All Require all granted </Directory> # 将PHP请求转发到FPM容器的9000端口 ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://wp-fpm:9000/var/www/html/$1 </VirtualHost> - 启动Apache容器,挂载配置文件和共享卷,加入同一网络:
docker run -d \ --name wp-apache \ --network wp-network \ -p 80:80 \ -v wp-content:/var/www/html/wp-content \ -v $(pwd)/wp-proxy.conf:/usr/local/apache2/conf/httpd.conf \ httpd:2.4
也可以将配置放到Apache的
extra目录,再修改主配置的Include指令引入,效果一致。- 新建Apache配置文件
验证效果
访问http://localhost即可进入WordPress安装流程,此时Apache负责处理静态资源,所有PHP请求都会转发到独立的FPM容器处理,和你之前学习的基础Apache+PHP-FPM架构逻辑完全一致。
内容的提问来源于stack exchange,提问作者Lagot
相关产品推荐
相关产品推荐

