bernskioldmedia / helm-wp
WordPress 本地开发框架。
This package is auto-updated.
Last update: 2024-09-04 13:07:29 UTC
README
Helm 是 Bernskiold Media 的 WordPress 开发框架。它旨在作为 Composer 开发依赖项加载,并提供一组工具以帮助您开发 WordPress 主题和插件。Helm 受 Laravel Sail 的启发,是 WordPress 的一个分支。
安装
要安装,您的项目必须使用 composer。将包添加到项目中
composer require --dev bernskioldmedia/helm-wp
安装后,在项目的根目录中放置一个 docker-compose.yml
文件。您可以使用以下内容作为起点
version: '3.3' services: wordpress.test: build: context: ./wp-content/vendor/bernskioldmedia/helm-wp/runtimes/8.1 dockerfile: Dockerfile args: WWWGROUP: '${WWWGROUP}' image: helm-7.4/app extra_hosts: - 'host.docker.internal:host-gateway' ports: - '80:80' environment: WWWUSER: '${WWWUSER}' HELM_WP: 1 XDEBUG_MODE: '${HELM_XDEBUG_MODE:-off}' XDEBUG_CONFIG: '${HELM_XDEBUG_CONFIG:-client_host=host.docker.internal}' volumes: - '.:/var/www/html' networks: - helm # We try to use the same version of MySQL as the one used in production. # Other recipes are available in Notion. mariadb: image: 'mariadb:10.5' ports: - '3306:3306' environment: MYSQL_ROOT_PASSWORD: 'wordpressroot' MYSQL_DATABASE: 'wordpress' MYSQL_USER: 'wordpress_user' MYSQL_PASSWORD: 'wordpress_password' volumes: - 'helm-mariadb:/var/lib/mysql' healthcheck: test: [ "CMD", "mysqladmin", "ping", "-pwordpress_password" ] retries: 3 timeout: 5s networks: - helm # Mailpit is a fake SMTP server that catches all emails sent in the application. # It has a web interface to view the emails at: https://:8025/ mailpit: image: 'axllent/mailpit:latest' ports: - '1025:1025' - '8025:8025' networks: - helm volumes: helm-mariadb: wordpress: networks: helm: driver: bridge
运行 Helm
Helm 随附自己的 helm
命令。这是围绕 docker-compose
命令的一个包装,使得在容器内运行命令更加容易。
根据您的项目结构和 composer 包在项目中的安装位置,调整命令中的路径。
有关 helm
命令的更多信息,请运行 ./vendor/bin/helm help
。
创建别名命令
此别名使您只需输入 helm 即可访问 Helm WP 环境,而无需始终输入完整的 vendor/bin
目录路径。
alias helm='[ -f helm ] && sh helm || sh vendor/bin/helm'
启动容器
要启动容器,请运行
./vendor/bin/helm up
停止容器
要停止容器,请运行
./vendor/bin/helm down
在容器内运行命令
Helm 支持在容器内运行命令。这对于运行 Composer 命令、WP CLI 命令等非常有用。
# Composer ./vendor/bin/helm composer ... # Node ./vendor/bin/helm node ... # NPM ./vendor/bin/helm npm ... # PHP Commands ./vendor/bin/helm php ... # WP-CLI Commands ./vendor/bin/helm wp ...
使用不同的 PHP 版本
Helm 支持 7.4 到 8.2 的 PHP 版本,尽管我们建议不要使用 7.4,因为它已经被官方弃用。
要使用不同的 PHP 版本,请将 context
在 wordpress.test
服务中更改为指向正确的运行时文件夹。您还应该将 image
更改为与运行时文件夹名称匹配。
例如,要使用 PHP 8.1,请将其更改为
wordpress.test: build: context: ./wp-content/vendor/bernskioldmedia/helm-wp/runtimes/8.1 image: helm-8.1/app
可用的运行时包括
7.4
8.0
8.1
8.2
运行 Helm Migrate
Helm 随附一个名为 helm-migrate
的辅助命令,以帮助将生产数据库迁移到本地环境。
它需要在项目根目录中有一个 wp-cli.yml
文件。您可以使用以下内容作为起点
@production: ssh: user@server.com/path/to/wordpress
要迁移数据库,请运行
./vendor/bin/helm-migrate run production
有关 helm-migrate
命令的更多信息,请运行 ./vendor/bin/helm-migrate help
。
WordPress 多站点支持
Helm Migrate 默认支持 WordPress 多站点。要迁移整个环境,您只需要运行上述运行命令。然而,有时您可能只想迁移大型网络中的一个或几个站点。
为此,您需要使用 selection
命令以及环境名称。然后它会询问您站点 ID。
./vendor/bin/helm-migrate selection production