WordPress 本地开发框架。

安装次数: 61

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

语言:Shell

类型:项目

1.0.1 2023-07-04 10:40 UTC

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 版本,请将 contextwordpress.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