devgiants / docker-wordpress
预装 WordPress、WP-CLI 和 PHPMyAdmin 的 LAMP 堆栈
README
该模板是一个预装了 WordPress、WP-CLI 和 PHPMyAdmin 集成的可自定义 LAMP 堆栈。 警告:仅限 Linux 用户。
安装
使用 composer create-project 命令
composer create-project devgiants/docker-wordpress target-dir 1.6.7
这将克隆堆栈到您的目录
要求
Mac 用户:在安装过程中,脚本需要使用 envsubst,它默认不在 MacOS 上安装。您可以直接使用 Homebrew 安装它
brew install gettext
brew link --force gettext
配置
自定义参数
.env 文件
首先,指定项目所需的参数
目录
- WORDPRESS_HOST_RELATIVE_APP_PATH:这是从项目初始路径的相对路径。默认为
./。 注意:将在该路径上创建一个卷以持久化 WordPress 应用程序文件。 - LOGS_DIR:日志目录。
PHP
- PHP_VERSION:堆栈要使用的 PHP 版本
主机
- HOST_USER:您的当前用户名。需要确保使用您的当前用户创建(目录...),以保留容器和主机之间的映射
- HOST_UID:您的当前用户主机 ID(uid)。这是将 PHP 容器和主机之间的 UID 映射的必要条件,以便您可以在容器和通过主机卷访问中编辑文件。
- HOST_GID:您的当前主要组主机 ID(gid)。(目前未使用)
WordPress
-
PROJECT_NAME:项目名称:用作 WordPress 网站名称。 重要:由于该名称用于设置主题目录,请使用下划线(例如:project_test)保持该名称
-
ADMIN_USER:要创建的第一个用户
-
ADMIN_PASSWORD:第一个用户密码。 重要:请用双引号括起来。
-
PROJECT_REPO:git 仓库地址
-
WP_CLI_CACHE_DIR:WP-CLI 缓存目录。保持这种方式。
数据库
- MYSQL_HOST:数据库主机。必须在
docker-compose.yml文件中与数据库容器名称相等(默认mysql)。 - MYSQL_DATABASE:您想要的数据库名称
- MYSQL_DATABASE_PREFIX:您想要的 WordPress 安装数据库前缀
- MYSQL_USER:您要使用的数据库用户(将在容器创建时创建)
- MYSQL_PASSWORD:您想要的数据库密码
- MYSQL_HOST_PORT:您想要绑定到容器中 MySQL 服务器的端口。
- MYSQL_PORT:MySQL 实例端口。小心,这是容器中的 MySQL 端口。默认为
3306 - MYSQL_HOST_VOLUME_PATH:默认
./docker/data/mysql/5.7。这是存储数据库的卷。
端口
您可以使用此模板拥有多个项目,但如果不更改端口,一次只能有一个项目运行,因为端口 80 用于暴露 Apache。
- APPLICATION_WEB_PORT:默认为
80。 - PHP_MY_ADMIN_PORT:默认为
81。
用法
有两种方法可以使用此模板: 初始化 和 日常使用。创建了一个 Makefile 来帮助操作
初始化
空白项目
只需执行 make install 即可完全设置空白项目。请查看 Makefile 中的其他入口点以查看您可以做什么
带有 Sage 9 主题的项目
只需执行 make sage 即可设置一个完整的带有 Sage 9 的项目。
日常使用
- 执行
make up以启动项目。 - 执行
make down以停止并移除容器实例。 - 执行
make bash-php以在 PHP 容器中获取www-data用户的 shell。
注意:所有设置的卷都将确保持久化应用程序文件和数据库。
从头开始重置
如果您想重置一切,只需
- 运行
docker-compose down。 - 移除 WORDPRESS_HOST_RELATIVE_APP_PATH 和 MYSQL_HOST_VOLUME_PATH。
- 然后返回执行
make install。
WordPress
默认情况下在 localhost 上可访问。
重要提示:要执行 wp-cli,请确保使用 www-data 用户连接到 php 容器。上述映射针对容器中的 www-data。要使用的命令:make bash-php
PhpMyAdmin
默认情况下在 localhost:81 上可访问。使用 MYSQL_USER 和 MYSQL_PASSWORD 进行连接。