You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Podman安装并配置WordPress开发环境?

适配Ubuntu 20.04 + Podman 3.4.2的WordPress环境搭建方案

问题背景

此前无需Docker知识即可通过docker-compose跨平台运行WordPress,但在Ubuntu 20.04(Podman 3.4.2)环境下尝试三种方案均失败:

  • 用docker-compose配合Podman后端运行官方yml,出现「重复挂载目标」错误,且该系统无法使用Podman 4.1.0才支持的podman-compose
  • RedHat官方示例出现「无法连接MySQL服务器」错误,修正疑似笔误后仍无效
  • 修改CentOS适配的Pod脚本后,容器运行正常,但WordPress无法连接数据库

可行解决方案

修正后的Pod启动脚本

针对原脚本的问题(目录创建错误、数据库启动时序不匹配、权限/路径问题),以下是可直接运行的修正版本:

#!/bin/bash

# 配置环境变量
DB_NAME='wordpress_db'
DB_PASS='mysupersecurepass'
DB_USER='justbeauniqueuser'
POD_NAME='wordpress_with_mariadb'
CONTAINER_NAME_DB='wordpress_db'
CONTAINER_NAME_WP='wordpress'

# 创建数据目录(小写-p为标准写法,确保父目录不存在时自动创建)
mkdir -p "$PWD/html"
mkdir -p "$PWD/database"

# 清理旧的Pod和容器
podman pod rm -f "$POD_NAME"

# 拉取所需镜像
podman pull mariadb:latest
podman pull wordpress

# 创建共享网络的Pod
podman pod create -n "$POD_NAME" -p 80:80

# 启动MariaDB容器
podman run --detach --pod "$POD_NAME" \
  -e MYSQL_ROOT_PASSWORD="$DB_PASS" \
  -e MYSQL_PASSWORD="$DB_PASS" \
  -e MYSQL_DATABASE="$DB_NAME" \
  -e MYSQL_USER="$DB_USER" \
  --name "$CONTAINER_NAME_DB" \
  -v "$PWD/database":/var/lib/mysql:Z \
  docker.io/mariadb:latest

# 等待数据库初始化完成(关键:给MariaDB足够启动时间)
echo "等待数据库初始化..."
sleep 10

# 启动WordPress容器
podman run --detach --pod "$POD_NAME" \
  -e WORDPRESS_DB_HOST=127.0.0.1:3306 \
  -e WORDPRESS_DB_NAME="$DB_NAME" \
  -e WORDPRESS_DB_USER="$DB_USER" \
  -e WORDPRESS_DB_PASSWORD="$DB_PASS" \
  --name "$CONTAINER_NAME_WP" \
  -v "$PWD/html":/var/www/html:Z \
  docker.io/wordpress

关键修正说明

  1. 目录创建参数:将mkdir -P改为标准的mkdir -p,避免部分系统不识别大写参数导致目录创建失败
  2. 启动时序控制:添加sleep 10等待MariaDB完成初始化,解决WordPress因提前启动无法连接数据库的问题
  3. 权限兼容处理:挂载目录时添加:Z标记,适配Ubuntu下的安全上下文限制(无SELinux的系统可忽略,不影响功能)
  4. 路径准确性:明确使用$PWD指定挂载路径,避免sudo执行时路径指向root目录的问题(若需用sudo,确保执行脚本时的工作目录正确)

约束条件

  • 仅适配Ubuntu 20.04 + Podman 3.4.2,更高版本Podman可直接使用官方podman-compose方案
  • 当前用户需加入podman用户组(执行sudo usermod -aG podman $USER后重新登录),无需sudo即可操作Podman
  • 宿主机80端口未被其他服务占用,若占用需修改Pod端口映射(如-p 8080:80)
  • 首次启动时,MariaDB初始化时间可能因宿主机性能波动,可根据实际情况调整sleep时长

内容的提问来源于stack exchange,提问作者Paul Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:41:31