platformsh/opigno-composer

此包已被废弃,不再维护。未建议替代包。

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

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

This package is not auto-updated.

Last update: 2023-09-23 18:14:53 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)和列出您的项目(platformsh project:list)来验证安装。

  3. 设置项目远程

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

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

    然后,在您的本地副本中运行命令platformsh 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)和列出您的项目(platformsh 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)和列出您的项目(platformsh 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)和列出您的项目(platformsh project:list)来验证安装。

  3. 创建仓库

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

  4. 设置集成

    请参阅Bitbucket集成文档以完成将仓库连接到Platform.sh上的项目。您需要创建一个Bitbucket访问令牌来完成此操作。

安装后

此模板会在首次部署时自动安装Opigno LMS配置文件。一个初始管理员用户会被创建,用户名为admin。密码来自内置的环境变量PLATFORM_PROJECT_ENTROPY,您可以使用以下命令找到它。注意,如果您尚未克隆项目的本地副本(platformsh 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文件是设置与您的应用程序相关的环境变量(可能依赖于当前环境)的便捷位置。它是在运行start命令之前作为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)和列出您的项目(platformsh project:list)来验证安装。

  3. 设置项目远程

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

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

    然后,在您的本地副本中运行命令platformsh 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)和列出您的项目(platformsh 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)和列出您的项目(platformsh 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)和列出您的项目(platformsh 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时可能感兴趣的其他资源。

学习

故障排除

访问日志

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

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频道,并通过 @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 制作