platformsh/drupal8-opigno

此软件包已被弃用且不再维护。未建议替代软件包。

此模板使用“Drupal推荐”的Composer项目构建Opigno Drupal 9发行版。

dev-master 2023-09-21 13:20 UTC

This package is not auto-updated.

Last update: 2023-09-28 18:32:48 UTC


README

存档模板

此模板已被存档。您仍然可以将其作为参考,但它不再接收我们团队的定期更新。

68747470733a2f2f706c6174666f726d2e73682f6c6f676f732f726564657369676e2f506c6174666f726d73685f6c6f676f5f626c61636b2e737667

header.svg

在Platform.sh上部署Opigno Drupal发行版

贡献、请求功能或查看我们的资源

加入我们的社区       文档       博客       报告错误       请求功能

Open issues    Open PRs    License   

内容

关于       入门       迁移       学习       贡献      

关于

此模板使用Drupal Composer项目构建Opigno Drupal 8发行版,以获得更好的灵活性。它还包括配置以使用Redis进行缓存,但必须在安装后启用.platform.app.yaml

Opigno是一个作为Drupal发行版构建的学习管理系统。

特点

  • PHP 7.4
  • MariaDB 10.4
  • Redis 6
  • 包含Drush
  • 自动TLS证书
  • 基于Composer的构建

入门

部署

快速入门

在Platform.sh上部署此模板的最快方式是点击下面的按钮。这将自动创建一个新的项目并为您初始化存储库。


您也可以使用以下命令在本地快速重建此项目

composer create-project platformsh/opigno-composer -s dev

注意

Platform.sh 模板优先考虑上游的发布版本,而不是我们自己的版本。尽管如此,我们仍会独立于那些上游版本按计划更新模板依赖项。因此,模板仓库不包含发布版本。这可能会在未来改变,但在此之前,使用 composer create-project 时需要使用 -s dev 标志。

其他部署选项

对于以下所有其他选项,首先克隆此仓库。

git clone https://github.com/platformsh-templates/drupal8-opigno

如果您试图从 GitHub 部署,可以首先通过点击此页面上方的使用此模板按钮,在自己的命名空间中生成此仓库的副本。

然后,您可以使用 git clone git@github.com:YOUR_NAMESPACE/drupal8-opigno.git 在本地克隆其副本。

从命令行直接部署到 Platform.sh
  1. 创建免费试用版

    在 Platform.sh 上注册 30 天免费试用。完成注册后,选择 从头创建 项目选项。为您的项目命名,并选择您希望部署到的地区。至于 生产环境 选项,请确保将其与此仓库的设置相匹配,或与您在本地更新默认分支的设置相匹配。

  2. 安装 Platform.sh CLI

    Linux/OSX

    curl -sS https://platform.sh/cli/installer | php

    Windows

    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php

    您可以通过登录 (platformsh login) 和列出您的项目 (platform project:list) 来验证安装。

  3. 设置项目远程

    运行 platform project:list 命令以找到您的 PROJECT_ID

    +---------------+------------------------------------+------------------+---------------------------------+
    | ID            | Title                              | Region           | Organization                    |
    +---------------+------------------------------------+------------------+---------------------------------+
    | PROJECT_ID    | Your Project Name                  | xx-5.platform.sh | your-username                   |
    +---------------+------------------------------------+------------------+---------------------------------+

    然后,在您的本地副本中运行 platform project:set-remote PROJECT_ID 命令。

  4. 推送

    git push platform DEFAULT_BRANCH
与 GitHub 仓库集成并部署拉取请求
  1. 创建免费试用版

    在 Platform.sh 上注册 30 天免费试用。完成注册后,选择 从头创建 项目选项。为您的项目命名,并选择您希望部署到的地区。至于 生产环境 选项,请确保将其与 https://YOUR_NAMESPACE/nextjs-drupal 上的设置相匹配。

  2. 安装 Platform.sh CLI

    Linux/OSX

    curl -sS https://platform.sh/cli/installer | php

    Windows

    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php

    您可以通过登录 (platformsh login) 和列出您的项目 (platform project:list) 来验证安装。

  3. 设置集成

    参考GitHub 集成文档,完成将您的仓库连接到 Platform.sh 上的项目。为此,您需要在 GitHub 上创建访问令牌。

与 GitLab 仓库集成并部署合并请求
  1. 创建免费试用版

    在 Platform.sh 上注册 30 天免费试用。完成注册后,选择 从头创建 项目选项。为您的项目命名,并选择您希望部署到的地区。至于 生产环境 选项,请确保将其与此仓库的设置相匹配,或与您在本地更新默认分支的设置相匹配。

  2. 安装 Platform.sh CLI

    Linux/OSX

    curl -sS https://platform.sh/cli/installer | php

    Windows

    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php

    您可以通过登录 (platformsh login) 和列出您的项目 (platform project:list) 来验证安装。

  3. 创建仓库

    在 GitLab 上创建一个新的仓库,将其设置为本地副本的新远程仓库,并将代码推送到默认分支。

  4. 设置集成

    参考GitLab 集成文档,完成将仓库连接到 Platform.sh 上的项目。为此,您需要在 GitLab 上创建访问令牌。

与 Bitbucket 仓库集成并部署拉取请求
  1. 创建免费试用版

    在 Platform.sh 上注册 30 天免费试用。完成注册后,选择 从头创建 项目选项。为您的项目命名,并选择您希望部署到的地区。至于 生产环境 选项,请确保将其与此仓库的设置相匹配,或与您在本地更新默认分支的设置相匹配。

  2. 安装 Platform.sh CLI

    Linux/OSX

    curl -sS https://platform.sh/cli/installer | php

    Windows

    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php

    您可以通过登录 (platformsh login) 和列出您的项目 (platform project:list) 来验证安装。

  3. 创建仓库

    在 Bitbucket 上创建一个新的仓库,将其设置为本地副本的新远程仓库,并将代码推送到默认分支。

  4. 设置集成

    参考Bitbucket 集成文档,完成将仓库连接到 Platform.sh 上的项目。为此,您需要在 Bitbucket 上创建访问令牌。

安装后

此模板在首次部署时自动安装Opigno LMS配置文件。创建了一个初始管理员用户,用户名为admin。密码从内置环境变量PLATFORM_PROJECT_ENTROPY中提取,您可以使用以下命令找到它。注意,如果您尚未克隆项目的本地副本(platform get),请务必传递项目标志(-p PROJECT_ID)。

platform ssh 'echo $PLATFORM_PROJECT_ENTROPY' -q

第一次登录后,请务必更新您的电子邮件和密码。

本地开发

本节提供了在本地运行drupal8-opigno模板的说明,并将其连接到活跃的Platform.sh环境上的实时数据库实例。

在所有使用Platform.sh进行开发的情况下,在隔离环境中进行开发很重要——在本地开发时,不要连接到生产环境中的数据。以下每个选项都假定您已经将此模板部署到Platform.sh,以及以下起始命令

$ platform get PROJECT_ID
$ cd project-name
$ platform environment:branch updates
Drupal:使用ddev
有关最新说明,请参阅我们使用DDEV进行本地开发指南,位于Platform.sh文档
Drupal:使用Lando

Lando支持配置为在Platform.sh上运行的PHP应用程序,并通过其自己的配方和插件从Platform.sh在远程环境中使用的相同容器注册中心中提取,用于本地构建。

  1. 安装Lando.
  2. 确保Docker已经运行——Lando会尝试为您启动Docker,但最好在开始之前将其在后台运行。
  3. 使用命令lando start启动您的应用程序和服务。
  4. 要从您的Platform.sh环境(服务和挂载)获取最新数据,请运行命令lando pull
  5. 如果您已更新Platform.sh配置文件,请运行命令lando rebuild
  6. 完成工作后,请运行lando stoplando poweroff

注意

对于上述许多步骤,如果您不在项目目录中或环境与现有拉取请求相关联,可能需要包括CLI标志-p PROJECT_ID-e ENVIRONMENT_ID

迁移

以下步骤概述了将应用程序迁移到Platform.sh的重要步骤——例如,添加所需的配置文件和依赖项。并非每个步骤都适用于每个人。这些步骤实际上假设尽可能早的起点——即本地没有代码,并且此模板存储库将完全从头开始重建。

如果您已经有了要迁移的代码,请专注于与您的应用程序最相关的步骤,并跳过第一部分。

入门

假设您的起点没有本地代码,以下步骤将设置一个起始存储库,我们可以开始对其进行更改以重建此模板并将其迁移到Platform.sh。如果您已经有了尝试迁移的代码库,请转到下一步骤——添加和更新文件 - 并将任何对默认分支main的引用替换为其他分支名称。

$ mkdir drupal8-opigno && cd drupal8-opigno
$ git init
$ git remote add upstream https://bitbucket.org/opigno/opigno-composer.git
$ git branch -m main
$ git fetch --all --depth=2
$ git fetch --all --tags
$ git merge --allow-unrelated-histories -X theirs 2.29.0

添加和更新文件

在此阶段,需要在您的存储库中添加或修改少量文件。其中一些文件明确配置了应用程序在Platform.sh上如何构建和部署,而其他一些只是修改您可能已经本地拥有的文件,在这种情况下,您需要复制这些更改。

打开下面的下拉菜单,查看所有需要用于迁移复制的 新增更新 文件。

查看文件
文件 用途
config/sync/.gitkeep 新增
web/sites/default/settings.php 更新

Drupal 设置文件已更新,以导入和使用 web/sites/default/settings.platformsh.php
web/sites/default/settings.platformsh.php 新增

包含针对 Platform.sh 特定的配置,例如设置与 MariaDB 服务器的数据库连接以及通过 Redis 进行缓存。
.environment 新增

.environment 文件是一个方便的地方,可以 设置与您的应用程序相关的环境变量,这些应用程序可能依赖于当前的环境。它在运行命令之前,作为 deploypost_deploy 钩子的第一步,以及在您通过 SSH 连接到应用程序容器时的每个会话开始时使用。它使用短横线,因此请注意与 bash 的区别。

它可以用于设置任何环境变量,包括依赖于 Platform.sh 提供的变量(如 PLATFORM_RELATIONSHIPSPLATFORM_ROUTES)或修改 PATH 的变量。此文件不应 生成输出

在此,Composer 配置和 PATH 已更新,以便从路径(即 drush)运行可执行的应用程序依赖项。
.gitignore 新增

.gitignore 文件不包括在上游中,因此已添加。
.lando.upstream.yml 新增

此文件配置 Lando 作为此模板的本地开发选项。有关配置的更多信息,请参阅 Platform.sh Lando 插件文档。有关如何开始本地开发的更多信息,请参阅此 README 的 本地开发 部分。
.platform.app.yaml 新增

此文件是必需的,用于定义 Platform.sh 上所有应用程序容器的构建和部署过程。在此文件中,配置了运行时版本、与服务容器的关联以及可写挂载。它还定义了将安装哪些依赖项、何时安装以及将使用包管理器来安装。

有关配置的更多详细信息,请参阅 应用程序 文档。有关从构建到部署导致的事件序列的更多信息,请参阅 构建和部署时间线文档

此模板使用 Composer 2 在 build 钩子之前使用默认的 composer 构建风味 安装依赖项。Drush 作业在 deploy 钩子期间运行,并在定义的 cron 作业期间再次引用。
drush/platformsh_generate_drush_yml.php 新增

已包含此文件以在每次部署时生成 drush yaml 配置。
.platform/services.yaml 新增

Platform.sh 提供了多种按需管理服务,可以轻松添加到您的项目中。在此文件中设置了每个服务的版本、名称、资源以及附加配置。有关配置、版本和服务可用性的更多详细信息,请参阅 服务文档

在此模板中,已配置了 MariaDB 和 Redis。
.platform/routes.yaml 新增

此文件是必需的,以便在 Platform.sh 上进行部署,因为它定义了如何在平台上处理请求。在此文件中可以配置重定向和基本缓存。有关配置的更多详细信息,请参阅 路由文档

php.ini 新增

已添加一个初始的 php.ini 文件。这些设置是性能测试和来自 Blackfire.io 的最佳实践建议的结果。它们将为生产应用程序初始化 Drupal,并补充了在 .blackfire.yml 中指定的许多测试。
.blackfire.yml 新增

此文件已添加,以帮助您开始在您的项目上使用 Blackfire.io。有关如何开始的更多信息,请参阅下面的 Blackfire 部分
.lando.upstream.yml 新增

此文件配置 Lando 作为此模板的本地开发选项。有关配置的更多信息,请参阅 Platform.sh Lando 插件文档。有关如何开始本地开发的更多信息,请参阅此 README 的 本地开发 部分。
.ddev/providers/platform.yaml 新增

此文件配置 ddev 作为此模板的本地开发选项。有关配置的更多信息,请参阅 Platform.sh ddev 集成文档。关于如何开始的更多信息,请参阅此 README 的 本地开发 部分。请确保遵循 ddev CLI 和该文件注释部分中提供的说明,以正确配置 ddev 以满足您的项目需求。

依赖项和配置

有时,需要在 Platform.sh 上部署上游项目时安装额外的依赖项并修改配置。在这种情况下,我们将尽可能将这些修改减少到最低限度。运行以下命令以在模板中重现依赖项。

$ composer require platformsh/config-reader drush/drush:^9.1 drupal/console drupal/redis psr/cache:^1.0
$ composer config allow-plugins.composer/installers true --no-plugins
$ composer config allow-plugins.drupal/core-composer-scaffold true --no-plugins
$ composer config allow-plugins.drupal/core-project-message true --no-plugins
$ composer config allow-plugins.cweagans/composer-patches true --no-plugins

部署到Platform.sh

您的仓库现在拥有部署到 Platform.sh 所需的所有代码。

从命令行直接部署到 Platform.sh
  1. 创建免费试用版

    在 Platform.sh 上注册 30 天免费试用。完成注册后,选择 从头创建 项目选项。为您的项目命名,并选择您希望部署到的地区。至于 生产环境 选项,请确保将其与此仓库的设置相匹配,或与您在本地更新默认分支的设置相匹配。

  2. 安装 Platform.sh CLI

    Linux/OSX

    curl -sS https://platform.sh/cli/installer | php

    Windows

    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php

    您可以通过登录 (platformsh login) 和列出您的项目 (platform project:list) 来验证安装。

  3. 设置项目远程

    运行 platform project:list 命令以找到您的 PROJECT_ID

    +---------------+------------------------------------+------------------+---------------------------------+
    | ID            | Title                              | Region           | Organization                    |
    +---------------+------------------------------------+------------------+---------------------------------+
    | PROJECT_ID    | Your Project Name                  | xx-5.platform.sh | your-username                   |
    +---------------+------------------------------------+------------------+---------------------------------+

    然后,在您的本地副本中运行 platform project:set-remote PROJECT_ID 命令。

  4. 推送

    git push platform DEFAULT_BRANCH
与 GitHub 仓库集成并部署拉取请求
  1. 创建免费试用版

    在 Platform.sh 上注册 30 天免费试用。完成注册后,选择 从头创建 项目选项。为您的项目命名,并选择您希望部署到的地区。至于 生产环境 选项,请确保将其与 https://YOUR_NAMESPACE/nextjs-drupal 上的设置相匹配。

  2. 安装 Platform.sh CLI

    Linux/OSX

    curl -sS https://platform.sh/cli/installer | php

    Windows

    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php

    您可以通过登录 (platformsh login) 和列出您的项目 (platform project:list) 来验证安装。

  3. 设置集成

    参考GitHub 集成文档,完成将您的仓库连接到 Platform.sh 上的项目。为此,您需要在 GitHub 上创建访问令牌。

与 GitLab 仓库集成并部署合并请求
  1. 创建免费试用版

    在 Platform.sh 上注册 30 天免费试用。完成注册后,选择 从头创建 项目选项。为您的项目命名,并选择您希望部署到的地区。至于 生产环境 选项,请确保将其与此仓库的设置相匹配,或与您在本地更新默认分支的设置相匹配。

  2. 安装 Platform.sh CLI

    Linux/OSX

    curl -sS https://platform.sh/cli/installer | php

    Windows

    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php

    您可以通过登录 (platformsh login) 和列出您的项目 (platform project:list) 来验证安装。

  3. 创建仓库

    在 GitLab 上创建一个新的仓库,将其设置为本地副本的新远程仓库,并将代码推送到默认分支。

  4. 设置集成

    参考GitLab 集成文档,完成将仓库连接到 Platform.sh 上的项目。为此,您需要在 GitLab 上创建访问令牌。

与 Bitbucket 仓库集成并部署拉取请求
  1. 创建免费试用版

    在 Platform.sh 上注册 30 天免费试用。完成注册后,选择 从头创建 项目选项。为您的项目命名,并选择您希望部署到的地区。至于 生产环境 选项,请确保将其与此仓库的设置相匹配,或与您在本地更新默认分支的设置相匹配。

  2. 安装 Platform.sh CLI

    Linux/OSX

    curl -sS https://platform.sh/cli/installer | php

    Windows

    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php

    您可以通过登录 (platformsh login) 和列出您的项目 (platform project:list) 来验证安装。

  3. 创建仓库

    在 Bitbucket 上创建一个新的仓库,将其设置为本地副本的新远程仓库,并将代码推送到默认分支。

  4. 设置集成

    参考Bitbucket 集成文档,完成将仓库连接到 Platform.sh 上的项目。为此,您需要在 Bitbucket 上创建访问令牌。

迁移您的数据

如果您正在将现有站点转移到 Platform.sh,那么除了代码之外,您还需要迁移您的数据。这意味着您的数据库和文件。

导入数据库

首先,从您的当前站点获取数据库转储,并将您的转储文件保存为 database.sql。然后,使用 CLI 将数据库导入到您的 Platform.sh 站点。

platform sql -e main < database.sql
导入文件

您首先需要从您当前的主机环境下载您的文件。最简单的方法可能是使用 rsync,但请咨询您旧的主机文档。

platform mount:upload 命令提供了一种简单的方法,可以将整个目录一次性上传到在 .platform.app.yaml 文件中定义的 mount。在底层,它使用 SSH 隧道和 rsync,因此尽可能高效。(还有 platform mount:download 命令,您可以在以后使用它来下载文件。)请在您的本地 Git 仓库根目录中运行以下命令(如果需要,请修改 --source 路径,并将 BRANCH_NAME 设置为您正在使用的分支)。

以下列出了一些示例,但请对包含您要迁移的数据的所有目录重复此操作。

$ platform mount:upload -e main --mount web/sites/default/files --source ./web/sites/default/files
$ platform mount:upload -e main --mount private --source ./private

请注意,rsync 对其尾随反斜杠很挑剔,因此请确保包括它们。

下一步

现在,您的应用程序已部署到 Platform.sh,事情变得更加有趣。为您的项目运行 platform environment:branch new-feature 命令,或者从您的当前分支打开一个简单的拉取请求。

生成的环境是生产环境的 精确 复制。它包含与您在配置文件中定义的相同的基础设施,并且在其服务中还包括从生产环境复制的数据。在这个隔离的环境中,您可以自由地对应用程序进行任何必要的更改,并真正测试它们在生产环境中的行为。

在此之后,以下是一系列您在继续迁移到 Platform.sh 的过程中可能会感兴趣的其他资源。

学习

故障排除

访问日志

在环境部署完成后,您可以使用CLI调查启动、deploypost_deploy钩子以及通常在运行时出现的问题。运行以下命令

platform ssh

如果您在项目的本地副本之外运行此命令,您需要包括-p(项目)和/或-e(环境)标志。一旦连接到容器,日志就可在/var/log/中供您调查。

重建缓存

在您最初在您的生产环境中安装Drupal后,可能会遇到数据库错误。要修复,SSH到应用程序容器(platform ssh)并使用Drush重建缓存

drush cache-rebuild
默认hash_salt行为

Drupal的默认设置集hash_salt设置为空字符串

$settings['hash_salt'] = '';

过去,Platform.sh模板已覆盖此值

$settings['hash_salt'] = $settings['hash_salt'] ?? $platformsh->projectEntropy;

此设置不足以覆盖某些用户配置,例如当应用程序依赖于hash_saltNull值时。

现在,在settings.platformsh.php中,设置看起来如下

$settings['hash_salt'] = empty($settings['hash_salt']) ? $platformsh->projectEntropy : $settings['hash_salt'];

此更改将hash_salt设置为包含默认设置的内置环境变量PLATFORM_PROJECT_ENTROPY值或Null。如果您的应用程序代码依赖于空值,您可以随意取消注释该行,或稍后在文件中重新设置。

请随时访问platformsh-templates/drupal9#73以获取有关此讨论的更多详细信息。

Blackfire.io:创建持续可观察性策略

此模板包含一个起始的.blackfire.yml文件,可用于启用项目上的应用程序性能监控分析构建性能测试。Platform.sh预装了Blackfire,并且设置需要最少的配置

资源

联系方式

此模板由Platform.sh开发关系团队维护,他们将通知您在这里打开的所有问题和拉取请求。

  • 社区:与社区分享您的问题,或查看它是否已在我们的社区网站上被提出。
  • Slack:如果您还没有这样做,您可以在Platform.sh的公共Slack频道中参与,并使用任何问题ping @devrel_team

关于Platform.sh

此模板已专门设计用于在Platform.sh上部署。

什么是Platform.sh?

Platform.sh 是一个统一、安全、企业级的平台,用于构建、运行和扩展 Web 应用程序。我们在舰队操作方面处于领先地位:您从开始就可以获得管理网站和应用所需的一切。由于基础设施和工作流程从一开始就得到处理,应用即可正常运行,因此团队可以专注于真正重要的事情:加快更改速度、自信地协作以及负责任地扩展。无论是管理十个还是一万个网站和应用,Platform.sh 都是开发者首选的扩展方案。

我们的关键功能包括

  • GitOps:Git 作为真相的来源

    每个分支都成为开发环境,任何更改都必须通过提交才能进行。

  • 电池包含:管理基础设施

    YAML 简单抽象 用于 提交和配置基础设施,全面管理的补丁更新,以及 24 个 运行时服务,只需一行代码即可添加。

  • 即时克隆:分支、合并、重复

    可重复使用的构建 和自动继承的生产数据提供真正的预发布环境 - 在隔离环境中进行实验,测试,然后销毁或合并。

  • FleetOps:舰队管理平台

    利用我们的公共 API 以及自定义工具(如 源操作活动脚本)来 管理数千个应用 - 它们的依赖项更新、新内容和上游代码。

了解更多信息,请查看下面的演示并访问我们的 网站


The Platform.sh demo

贡献

帮助我们保持高质量的模板!

我们所有的模板都是开源的,对于试图首次部署到 Platform.sh 或更好地了解该平台的人来说,它们是重要的资源。它们作为入门指南,但也包含了许多有用的提示和最佳实践,特别是在使用某些语言和框架时。

您发现这个模板有错误需要修复吗?文档中有不清楚或缺失的内容吗?告诉我们!

如何贡献

报告错误       提交功能请求       发起拉取请求      


需要帮助?

咨询 Platform.sh 社区       加入我们的 Slack      


感谢所有我们的出色贡献者!


68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d706c6174666f726d73682d74656d706c617465732f64727570616c382d6f7069676e6f

contrib.rocks 制作