platformsh / opigno-composer
此模板使用“Drupal推荐”Composer项目构建Opigno Drupal 9发行版。
Requires
- composer/installers: v1.12.0
- cweagans/composer-patches: 1.7.1
- drupal/core-composer-scaffold: ~9.3.0
- drupal/redis: ^1.5
- opigno/opigno_lms: ^3.0.0
- platformsh/config-reader: ^2.4
- wikimedia/composer-merge-plugin: 2.0
Requires (Dev)
- drupal/console: ~1.0
- drush/drush: ^10
Conflicts
Replaces
This package is not auto-updated.
Last update: 2023-09-23 18:14:53 UTC
README
存档模板
此模板已被存档。您仍可以用作参考,但它不再收到我们团队的定期更新。
在Platform.sh上部署Opigno Drupal发行版
贡献、请求功能或查看我们的资源
加入我们的社区 文档 博客 报告一个错误 请求一个功能
关于
此模板使用 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
-
创建免费试用
在Platform.sh注册30天免费试用。完成注册后,选择从头创建项目选项。给您的项目命名,并选择您希望部署的区域。至于生产环境选项,请确保将其匹配到与此仓库设置相同,或匹配您在本地更新默认分支的内容。
-
安装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
)来验证安装。 -
设置项目远程
运行命令
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
。 -
推送
git push platform DEFAULT_BRANCH
与GitHub仓库集成并部署拉取请求
-
创建免费试用
在Platform.sh注册30天免费试用。完成注册后,选择从头创建项目选项。给您的项目命名,并选择您希望部署的区域。至于生产环境选项,请确保将其匹配到在
https://YOUR_NAMESPACE/nextjs-drupal
中设置的任何内容。 -
安装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
)来验证安装。 -
设置集成
请参阅GitHub集成文档以完成将您的仓库连接到Platform.sh上的项目。您需要创建一个GitHub访问令牌来完成此操作。
与GitLab仓库集成并部署合并请求
-
创建免费试用
在Platform.sh注册30天免费试用。完成注册后,选择从头创建项目选项。给您的项目命名,并选择您希望部署的区域。至于生产环境选项,请确保将其匹配到与此仓库设置相同,或匹配您在本地更新默认分支的内容。
-
安装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
)来验证安装。 -
创建仓库
在GitLab上创建一个新的仓库,将其设置为本地副本的新远程,并将代码推送到默认分支。
-
设置集成
请参阅GitLab集成文档以完成将仓库连接到Platform.sh上的项目。您需要创建一个GitLab访问令牌来完成此操作。
与Bitbucket仓库集成并部署拉取请求
-
创建免费试用
在Platform.sh注册30天免费试用。完成注册后,选择从头创建项目选项。给您的项目命名,并选择您希望部署的区域。至于生产环境选项,请确保将其匹配到与此仓库设置相同,或匹配您在本地更新默认分支的内容。
-
安装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
)来验证安装。 -
创建仓库
在Bitbucket上创建一个新的仓库,将其设置为本地副本的新远程,并将代码推送到默认分支。
-
设置集成
请参阅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:使用 Lando
Lando 支持 配置为在 Platform.sh 上运行的 PHP 应用,并在本地构建时通过其自己的 食谱和插件 从 Platform.sh 在远程环境中使用的相同容器注册中心中提取。
注意
对于上述许多步骤,如果您不在项目目录中或环境与现有拉取请求相关联,您可能需要包括 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命令之前作为deploy 和post_deploy 钩子的第一步,以及每次通过SSH连接到应用程序容器时都会读取。它使用短横线,因此请注意与bash的区别。它可以用来设置任何环境变量,包括依赖于Platform.sh提供的变量(如 PLATFORM_RELATIONSHIPS 和PLATFORM_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
-
创建免费试用
在Platform.sh注册30天免费试用。完成注册后,选择从头创建项目选项。给您的项目命名,并选择您希望部署的区域。至于生产环境选项,请确保将其匹配到与此仓库设置相同,或匹配您在本地更新默认分支的内容。
-
安装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
)来验证安装。 -
设置项目远程
运行命令
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
。 -
推送
git push platform DEFAULT_BRANCH
与GitHub仓库集成并部署拉取请求
-
创建免费试用
在Platform.sh注册30天免费试用。完成注册后,选择从头创建项目选项。给您的项目命名,并选择您希望部署的区域。至于生产环境选项,请确保将其匹配到在
https://YOUR_NAMESPACE/nextjs-drupal
中设置的任何内容。 -
安装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
)来验证安装。 -
设置集成
请参阅GitHub集成文档以完成将您的仓库连接到Platform.sh上的项目。您需要创建一个GitHub访问令牌来完成此操作。
与GitLab仓库集成并部署合并请求
-
创建免费试用
在Platform.sh注册30天免费试用。完成注册后,选择从头创建项目选项。给您的项目命名,并选择您希望部署的区域。至于生产环境选项,请确保将其匹配到与此仓库设置相同,或匹配您在本地更新默认分支的内容。
-
安装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
)来验证安装。 -
创建仓库
在GitLab上创建一个新的仓库,将其设置为本地副本的新远程,并将代码推送到默认分支。
-
设置集成
请参阅GitLab集成文档以完成将仓库连接到Platform.sh上的项目。您需要创建一个GitLab访问令牌来完成此操作。
与Bitbucket仓库集成并部署拉取请求
-
创建免费试用
在Platform.sh注册30天免费试用。完成注册后,选择从头创建项目选项。给您的项目命名,并选择您希望部署的区域。至于生产环境选项,请确保将其匹配到与此仓库设置相同,或匹配您在本地更新默认分支的内容。
-
安装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
)来验证安装。 -
创建仓库
在Bitbucket上创建一个新的仓库,将其设置为本地副本的新远程,并将代码推送到默认分支。
-
设置集成
请参阅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时可能感兴趣的其他资源。
学习
故障排除
访问日志
环境部署完成后,您可以调查启动时发生的问题,deploy
和 post_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_salt
的 Null
值时。
现在,在 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,并且 设置需要最小配置。
- 什么是 Blackfire?
- 在 Platform.sh 项目上配置 Blackfire.io
- Blackfire.io Platform.sh 文档
- 分析食谱
- 监控食谱
- 测试食谱
- 使用构建
- 配置集成
资源
联系
此模板由 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 以及自定义工具,如 源操作 和 活动脚本,来 管理数千个应用程序 - 它们的依赖项更新、新内容以及上游代码。
了解更多信息,请查看下面的演示并访问我们的 网站。
贡献
帮助我们保持一流模板!
我们所有的模板都是开源的,对于尝试首次部署到 Platform.sh 或更好地了解平台的用户来说,它们是重要的资源。它们充当入门指南,同时包含在处理某些语言和框架时的一些有用提示和最佳实践。
如果发现这个模板有问题需要修复?文档中有不清楚或缺失的内容?请告诉我们!
需要帮助?
向 Platform.sh 社区提问 加入我们的 Slack
感谢所有我们杰出的贡献者!
由 contrib.rocks 制作