platformsh / drupal8-opigno
此模板使用“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-28 18:32:48 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
) 和列出您的项目 (platform project:list
) 来验证安装。 -
设置项目远程
运行
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
命令。 -
推送
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
) 和列出您的项目 (platform 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
) 和列出您的项目 (platform 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
) 和列出您的项目 (platform project:list
) 来验证安装。 -
创建仓库
在 Bitbucket 上创建一个新的仓库,将其设置为本地副本的新远程仓库,并将代码推送到默认分支。
-
设置集成
参考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:使用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 |
新增.environment 文件是一个方便的地方,可以 设置与您的应用程序相关的环境变量,这些应用程序可能依赖于当前的环境。它在运行命令之前,作为 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
) 和列出您的项目 (platform project:list
) 来验证安装。 -
设置项目远程
运行
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
命令。 -
推送
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
) 和列出您的项目 (platform 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
) 和列出您的项目 (platform 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
) 和列出您的项目 (platform 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 的过程中可能会感兴趣的其他资源。
学习
故障排除
访问日志
在环境部署完成后,您可以使用CLI调查启动、deploy
和post_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_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,并且设置需要最少的配置。
资源
联系方式
此模板由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 以及自定义工具(如 源操作 和 活动脚本)来 管理数千个应用 - 它们的依赖项更新、新内容和上游代码。
了解更多信息,请查看下面的演示并访问我们的 网站。
贡献
帮助我们保持高质量的模板!
我们所有的模板都是开源的,对于试图首次部署到 Platform.sh 或更好地了解该平台的人来说,它们是重要的资源。它们作为入门指南,但也包含了许多有用的提示和最佳实践,特别是在使用某些语言和框架时。
您发现这个模板有错误需要修复吗?文档中有不清楚或缺失的内容吗?告诉我们!
需要帮助?
咨询 Platform.sh 社区 加入我们的 Slack
感谢所有我们的出色贡献者!
由 contrib.rocks 制作