wearewondrous/psh-toolbelt

为 Drupal 10 和 php 8.1 提供平台级工具。


README

Build Status

使用 Robo 使 Drupal 9 安装高度可配置。

  • Robo
  • 环境变量

待办事项

  • 创建任务以恢复备份
  • 允许从 AWS 切换到 Google Cloud
  • 创建 Packagist 条目
  • 为每个任务编写文档

安装

  $ composer require wearewondrous/psh-toolbelt

配置环境后使用 robo.yml(如下所述),然后可以运行

  $ vendor/bin/psh-toolbelt

查看所有可用命令。

配置

sites/default/settings.php(必需)

使用给定的两个包含项覆盖 sites/default/settings.php

<?php
// Default Drupal 9 settings.
//
// These are already explained with detailed comments in Drupal's
// default.settings.php file.
//
// See https://api.drupal.org/api/drupal/sites!default!default.settings.php/9
// customized project settings
include $app_root . '/../vendor/wearewondrous/psh-toolbelt/src/site.settings.php';
// Local settings. These come last so that they can override anything.
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
  include $app_root . '/' . $site_path . '/settings.local.php';
}

服务

如果您的项目需要覆盖默认服务,请使用名为 local.services.yml 的文件

robo.yml.dist(必需)

将项目根目录中的 robo.yml.dist 的默认配置复制到并重命名为 robo.yml。所有路径都是相对于项目根目录的。没有尾部斜杠。文件 wearewondrous/psh-toolbelt/robo.yml.dist 内容

storage:
  backup:
    max_age: 432000         # 60 * 60 * 24 * 5
  s3:
    version: new-latest
    region: eu-west-1
    upload_bucket: backups
platform:
  host: eu.platform.sh
  domain: my-website.com
  mounts:
    temp: tmp
    config: remote-config
drupal:
  hash_salt: 1234567890abcdefghijklmnopqlmnopqrstuvwxyz12345678
  config_sync_directory: config/drupal/default
  public_files_directory: web/sites/default/files
  private_files_directory: private
  excludes:
    - js
    - css
    - styles
    - translations
    - languages
    - config
  config:
    splits:
      default:
        machine_name: default
        folder: default
      prod:
        machine_name: production
        folder: prod
      dev:
        machine_name: development
        folder: dev
drush:
  alias_group: my-website
  alias: local
  path: vendor/bin/drush
lando:
  disable_cache: true
  host: my-website.lndo.site
  mysql:
    database: drupal
    hostname: 127.0.0.1
    password: drupal
    port: 3306
    user: drupal

将其复制到您的根文件夹并重命名为 robo.yml。根据您的需要进行调整。通常,您只需要设置如下

platform:
  domain: drupal-rocks.com
  host: eu.platform.sh
drush:
  alias_group: drupalrocks
lando:
  hash_salt: 1234567890abcdefghijklmnopqlmnopqrstuvwxyz12345678
  host: my-website.lndo.site

sites/default/settings.php(必需)

查看 sites/default/settings.php 的示例,请参阅 platformsh-template/drupal9。在包含 settings.local.php 之前,添加以下内容

// customized project settings
include $app_root . '/../vendor/wearewondrous/psh-toolbelt/src/site.settings.php';

Platform.sh 变量(备份任务必需)

以下变量是使备份任务正常工作的必需变量

env:AWS_ACCESS_KEY_ID={aws_access_key_id}
env:AWS_SECRET_KEY_ID={aws_secret_key_id}
env:SENTRY_DSN={sentry_dsn}

可选地,要备份不是 master 的分支,请将以下内容添加到所需分支的 Platform.sh 变量中。

env:BACKUP_THIS_BRANCH=1

注意:可选地,变量可以作为 实际环境变量 或作为 Platform.sh 变量 存在。

composer.json.env(可选)

对于带有环境变量的本地开发和测试,请将以下内容添加到您的根项目 composer.json

{
  "autoload": {
    "files": ["vendor/wearewondrous/psh-toolbelt/load.environment.php"]
  }
}

然后将 wearewondrous/psh-toolbelt/.env.dist 复制到您的项目根目录并重命名为 .env。从您的 vcs 中排除此文件。仅当您想模拟生产变量时才这样做。

### Platform.sh VARS ############
#PLATFORMSH_CLI_TOKEN=
#PLATFORM_APP_DIR=/app
#PLATFORM_PROJECT=
#PLATFORM_ENVIRONMENT=
#PLATFORM_DOCUMENT_ROOT=/app/web
#PLATFORM_BRANCH=master

### Required VARS ###############
# AWS config
AWS_ACCESS_KEY_ID=
AWS_SECRET_KEY_ID=
# Logging
SENTRY_DSN=

故障排除

请确保在您的 platform.app.yaml 中有以下挂载。否则,服务器上可能会出现错误,例如 无法创建目录 '/app/.ssh'

mounts:
  '/web/sites/default/files': 'shared:files/files'
  '/tmp': 'shared:files/tmp'
  '/private': 'shared:files/private'
  '/.drush': 'shared:files/.drush'
  '/remote-config': 'shared:files/remote-config'