WordPress标准软件基于Bitnami wordpress 构建。当前版本为6.4.3
你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取
配置文件地址: https://gitee.com/qingplus/qingcloud-platform
什么是 WordPress?
WordPress 是世界上最受欢迎的博客和内容管理平台。功能强大但简单,从学生到跨国公司,每个人都可以使用它来构建美观、实用的网站。
快速执行
docker run --name wordpress bitnami/wordpress:latest
使用该 image
WordPress 需要访问 MySQL 或 MariaDB 数据库来存储信息。
使用 Docker 命令行
Step 1: 创建网络
docker network create wordpress-network
Step 2: 创建MariaDB持久化卷并创建MariaDB容器
$ docker volume create --name mariadb_data
docker run -d --name mariadb \
--env ALLOW_EMPTY_PASSWORD=yes \
--env MARIADB_USER=bn_wordpress \
--env MARIADB_PASSWORD=bitnami \
--env MARIADB_DATABASE=bitnami_wordpress \
--network wordpress-network \
--volume mariadb_data:/bitnami/mariadb \
bitnami/mariadb:latest
Step 3: 为 WordPress 持久性创建卷并启动容器
$ docker volume create --name wordpress_data
docker run -d --name wordpress \
-p 8080:8080 -p 8443:8443 \
--env ALLOW_EMPTY_PASSWORD=yes \
--env WORDPRESS_DATABASE_USER=bn_wordpress \
--env WORDPRESS_DATABASE_PASSWORD=bitnami \
--env WORDPRESS_DATABASE_NAME=bitnami_wordpress \
--network wordpress-network \
--volume wordpress_data:/bitnami/wordpress \
bitnami/wordpress:latest
访问 : http://your-ip/
使用 Docker Compose 运行应用程序
docker-compose up -d
持久化
如果删除容器,所有数据都将丢失,并且下次运行映像时,数据库将重新初始化。为了避免这种数据丢失,您应该安装一个即使在容器被删除后仍然存在的卷。
为了持久化,您应该在路径上安装一个目录/bitnami/wordpress。如果挂载的目录为空,则首次运行时会对其进行初始化。此外,您应该安装一个卷来持久保存 MariaDB 数据。
mariadb_data上面的示例定义了名为和 的Docker 卷wordpress_data。只要不删除卷,WordPress 应用程序状态就会持续存在。
为了避免无意中删除卷,您可以将主机目录挂载为数据卷。或者,您可以使用卷插件来托管卷数据。
使用 Docker Compose 将主机目录挂载为数据卷
mariadb:
...
volumes:
- - 'mariadb_data:/bitnami/mariadb'
+ - /path/to/mariadb-persistence:/bitnami/mariadb
...
wordpress:
...
volumes:
- - 'wordpress_data:/bitnami/wordpress'
+ - /path/to/wordpress-persistence:/bitnami/wordpress
...
-volumes:
- mariadb_data:
- driver: local
- wordpress_data:
- driver: local
注意: 由于这是一个非根容器,因此安装的文件和目录必须具有 UID 的适当权限1001。
使用 Docker 命令行将主机目录挂载为数据卷
Step 1: 创建网络(如果不存在)
docker network create wordpress-network
Step 2. 创建具有主机卷的 MariaDB 容器
docker run -d --name mariadb \
--env ALLOW_EMPTY_PASSWORD=yes \
--env MARIADB_USER=bn_wordpress \
--env MARIADB_PASSWORD=bitnami \
--env MARIADB_DATABASE=bitnami_wordpress \
--network wordpress-network \
--volume /path/to/mariadb-persistence:/bitnami/mariadb \
bitnami/mariadb:latest
NOTE: 由于这是一个非根容器,因此安装的文件和目录必须具有 UID 的适当权限1001。
Step 3. 使用主机卷创建 WordPress 容器
docker run -d --name wordpress \
-p 8080:8080 -p 8443:8443 \
--env ALLOW_EMPTY_PASSWORD=yes \
--env WORDPRESS_DATABASE_USER=bn_wordpress \
--env WORDPRESS_DATABASE_PASSWORD=bitnami \
--env WORDPRESS_DATABASE_NAME=bitnami_wordpress \
--network wordpress-network \
--volume /path/to/wordpress-persistence:/bitnami/wordpress \
bitnami/wordpress:latest
NOTE: 由于这是一个非根容器,因此安装的文件和目录必须具有 UID 的适当权限1001。
配置
环境变量
可定制的环境变量
Name | Description | Default Value |
---|---|---|
WORDPRESS_DATA_TO_PERSIST |
相对于 WordPress 安装目录保留的文件。要提供多个值,请用空格分隔它们。 | wp-config.php wp-content |
WORDPRESS_ENABLE_HTTPS |
是否默认为 WordPress 启用 HTTPS。 | no |
WORDPRESS_BLOG_NAME |
WordPress blog 名称. | "User's blog" |
WORDPRESS_SCHEME |
生成应用程序 URL 的方案。已弃用WORDPRESS_ENABLE_HTTPS。 | http |
WORDPRESS_HTACCESS_OVERRIDE_NONE |
将 ApacheAllowOverride变量设置为None. 所有默认指令都将从/opt/bitnami/wordpress/wordpress-htaccess.conf. | yes |
WORDPRESS_ENABLE_HTACCESS_PERSISTENCE |
保留 htaccess 的自定义更改。是否坚持就看值WORDPRESS_HTACCESS_OVERRIDE_NONE。/opt/bitnami/wordpress/wordpress-htaccess.confno/opt/bitnami/wordpress/.htaccess | no |
WORDPRESS_RESET_DATA_PERMISSIONS |
初始化时强制重置持久数据的所有权/权限,否则假设所有权/权限正确。以非 root 身份运行时被忽略。 | no |
WORDPRESS_TABLE_PREFIX |
在 WordPress 中使用的表前缀。 | wp_ |
WORDPRESS_PLUGINS |
要安装和激活的 WordPress 插件列表,以逗号分隔。还可以设置为all激活所有当前安装的插件,或none跳过。 | none |
WORDPRESS_SKIP_BOOTSTRAP |
是否对应用程序执行初始引导。 | no |
WORDPRESS_AUTO_UPDATE_LEVEL |
允许安装 WordPress 核心的自动更新级别。有效值:major、minor、none。 | none |
WORDPRESS_ENABLE_REVERSE_PROXY |
启用 WordPress 对反向代理标头的支持 | no |
WORDPRESS_ENABLE_XML_RPC |
启用 WordPress XML-RPC 端点 | no |
WORDPRESS_USERNAME |
WordPress user name. | user |
WORDPRESS_PASSWORD |
WordPress user password. | bitnami |
WORDPRESS_EMAIL |
WordPress user e-mail address. | user@example.com |
WORDPRESS_FIRST_NAME |
WordPress user first name. | UserName |
WORDPRESS_LAST_NAME |
WordPress user last name. | LastName |
WORDPRESS_ENABLE_MULTISITE |
启用 WordPress 多站点配置。 | no |
WORDPRESS_MULTISITE_NETWORK_TYPE |
要启用的 WordPress 多站点网络类型。有效值:subfolder、subdirectory、subdomain。 | subdomain |
WORDPRESS_MULTISITE_EXTERNAL_HTTP_PORT_NUMBER |
WordPress 多站点的外部 HTTP 端口。 | 80 |
WORDPRESS_MULTISITE_EXTERNAL_HTTPS_PORT_NUMBER |
WordPress 多站点的外部 HTTPS 端口。 | 443 |
WORDPRESS_MULTISITE_ENABLE_NIP_IO_REDIRECTION |
启用 WordPress 多站点时是否启用 IP 地址重定向到 nip.io 通配符 DNS。仅当在具有子域网络类型的 IP 地址上运行时才支持此功能。 | no |
WORDPRESS_MULTISITE_FILEUPLOAD_MAXK |
WordPress 多站点上传允许的最大上传文件大小(以千字节为单位)。 | 81920 |
WORDPRESS_DATABASE_HOST |
Database server host. | $WORDPRESS_DEFAULT_DATABASE_HOST |
WORDPRESS_DATABASE_PORT_NUMBER |
Database server port. | 3306 |
WORDPRESS_DATABASE_NAME |
Database name. | bitnami_wordpress |
WORDPRESS_DATABASE_USER |
Database user name. | bn_wordpress |
WORDPRESS_DATABASE_PASSWORD |
Database password | bn_wordpress |
WORDPRESS_ENABLE_DATABASE_SSL |
是否为数据库连接启用SSL。 | no |
WORDPRESS_VERIFY_DATABASE_SSL |
当数据库连接启用SSL时是否验证数据库SSL证书。 | yes |
WORDPRESS_OVERRIDE_DATABASE_SETTINGS |
覆盖持久性中的数据库设置。 | no |
WORDPRESS_SMTP_HOST |
smtp host。 | smpt.126.com |
WORDPRESS_SMTP_PORT |
smtp port。 | 587 |
WORDPRESS_SMTP_USER |
smtp user。 | qingcloud |
WORDPRESS_SMTP_PASSWORD |
smtp password。 | qingcloud1234 |
只读环境变量
Name | Description | Value |
---|---|---|
WORDPRESS_BASE_DIR |
WordPress 安装目录。 | ${BITNAMI_ROOT_DIR}/wordpress |
WORDPRESS_CONF_FILE |
配置文件。 | ${WORDPRESS_BASE_DIR}/wp-config.php |
WP_CLI_BASE_DIR |
WP-CLI 安装目录 | ${BITNAMI_ROOT_DIR}/wp-cli |
WP_CLI_BIN_DIR |
二进制文件 | ${WP_CLI_BASE_DIR}/bin |
WP_CLI_CONF_DIR |
配置文件目录 | ${WP_CLI_BASE_DIR}/conf |
WP_CLI_CONF_FILE |
配置文件 | ${WP_CLI_CONF_DIR}/wp-cli.yml |
WORDPRESS_VOLUME_DIR |
用于挂载配置文件的 WordPress 目录。 | ${BITNAMI_VOLUME_DIR}/wordpress |
WORDPRESS_DEFAULT_DATABASE_HOST |
默认 database server host. | mariadb |
WORDPRESS_DEFAULT_DATABASE_HOST |
默认 database server host. | 127.0.0.1 |
PHP_DEFAULT_MEMORY_LIMIT |
默认 PHP memory limit. | 512M |
PHP_DEFAULT_POST_MAX_SIZE |
默认 PHP post_max_size. | 80M |
PHP_DEFAULT_UPLOAD_MAX_FILESIZE |
默认 PHP upload_max_size. | 80M |
WP_CLI_DAEMON_USER |
WP-CLI system user. | daemon |
WP_CLI_DAEMON_GROUP |
WP-CLI system group. | daemon |
当您启动 WordPress 映像时,您可以通过在 docker-compose 文件或命令行上传递一个或多个环境变量来调整实例的配置docker run。请注意,某些变量仅在容器首次启动时才被考虑。如果要添加新的环境变量:
对于 docker-compose
wordpress: ... environment: - WORDPRESS_PASSWORD=my_password ...
对于手动执行,–env为每个变量和值添加一个选项:
$ docker run -d --name wordpress -p 80:8080 -p 443:8443 \ --env WORDPRESS_PASSWORD=my_password \ --network wordpress-tier \ --volume /path/to/wordpress-persistence:/bitnami \ bitnami/wordpress:latest
例子
SMTP 配置
修改docker-compose.yml
wordpress: ... environment: - WORDPRESS_DATABASE_USER=bn_wordpress - WORDPRESS_DATABASE_NAME=bitnami_wordpress - ALLOW_EMPTY_PASSWORD=yes - WORDPRESS_SMTP_HOST=smtp.gmail.com - WORDPRESS_SMTP_PORT=587 - WORDPRESS_SMTP_USER=your_email@gmail.com - WORDPRESS_SMTP_PASSWORD=your_password ...
对于手动执行:
$ docker run -d --name wordpress -p 80:8080 -p 443:8443 \ --env WORDPRESS_DATABASE_USER=bn_wordpress \ --env WORDPRESS_DATABASE_NAME=bitnami_wordpress \ --env WORDPRESS_SMTP_HOST=smtp.gmail.com \ --env WORDPRESS_SMTP_PORT=587 \ --env WORDPRESS_SMTP_USER=your_email@gmail.com \ --env WORDPRESS_SMTP_PASSWORD=your_password \ --network wordpress-tier \ --volume /path/to/wordpress-persistence:/bitnami \ bitnami/wordpress:latest
将 WordPress 容器连接到现有数据库
WordPress 容器支持将 WordPress 应用程序连接到外部数据库。这是为 WordPress 使用外部数据库的示例。
修改docker-compose.yml
wordpress: ... environment: - - WORDPRESS_DATABASE_HOST=mariadb + - WORDPRESS_DATABASE_HOST=mariadb_host - WORDPRESS_DATABASE_PORT_NUMBER=3306 - WORDPRESS_DATABASE_NAME=wordpress_db - WORDPRESS_DATABASE_USER=wordpress_user - - ALLOW_EMPTY_PASSWORD=yes + - WORDPRESS_DATABASE_PASSWORD=wordpress_password ...
对于手动执行:
$ docker run -d --name wordpress\ -p 8080:8080 -p 8443:8443 \ --network wordpress-network \ --env WORDPRESS_DATABASE_HOST=mariadb_host \ --env WORDPRESS_DATABASE_PORT_NUMBER=3306 \ --env WORDPRESS_DATABASE_NAME=wordpress_db \ --env WORDPRESS_DATABASE_USER=wordpress_user \ --env WORDPRESS_DATABASE_PASSWORD=wordpress_password \ --volume wordpress_data:/bitnami/wordpress \ bitnami/wordpress:latest
如果数据库已包含以前 WordPress 安装的数据,您需要将变量设置WORDPRESS_SKIP_BOOTSTRAP为yes. 否则,容器将执行安装向导并可以修改数据库中的现有数据。请注意,当设置WORDPRESS_SKIP_BOOTSTRAP为时yes,环境变量(例如WORDPRESS_USERNAME、WORDPRESS_PASSWORD或 )的值WORDPRESS_EMAIL将被忽略。确保在此导入的数据库中,表前缀与 中设置的表前缀匹配WORDPRESS_TABLE_PREFIX。
WP-CLI 工具
WordPress 容器包含命令行界面wp-cli,可以帮助您管理 WP 站点并与之交互。要运行此工具,请注意您需要使用正确的系统用户daemon。
这是使用wp-cli显示帮助菜单的示例:
- 使用docker-compose命令:
docker-compose exec wordpress wp help
- 使用docker命令:
docker exec wordpress wp help
日志
WordPress Docker 映像将容器日志发送到stdout. 要查看日志:
docker logs wordpress
使用docker-compose命令:
docker-compose logs wordpress