vardot / platformsh-varbase
Varbase 发行版的项目模板。
Requires
- composer/installers: ~2
- cweagans/composer-patches: ~1
- drupal/core-composer-scaffold: ~10
- drupal/core-project-message: ~10
- drupal/gleap-gleap: ~1
- drupal/redis: ~1.6.0
- drush/drush: ~13
- platformsh/config-reader: ~2.4.0
- vardot/varbase: ~10.0.0
- vardot/varbase-patches: ~10.0.0
- webflo/drupal-finder: ~1.0
Conflicts
This package is auto-updated.
Last update: 2024-09-12 21:43:38 UTC
README
本项目为在 Platform.sh 上托管的 Varbase 10.0.x 项目提供了一套启动工具。它与 Varbase Composer 项目 非常相似。
此模板使用“Drupal 推荐”Composer 项目构建 Drupal ~10.1.0。它还包含配置以使用 Redis 进行缓存,尽管需要在安装后通过 .platform.app.yaml
启用。
Drupal 是一个灵活且可扩展的基于 PHP 的 CMS 框架。
服务
- PHP 8.2
- MariaDB 10.11
- Redis 6
- 包含 Drush
- 自动 TLS 证书
- 基于 Composer 的构建
-
创建仓库
在 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 上创建一个访问令牌。
安装后
按正常方式运行 Drupal 安装程序。您将不会被要求输入数据库凭证,因为这些凭证已经提供。
本地开发
本节提供有关在本地运行 drupal10
模板并连接到活跃的 Platform.sh 环境中的实时数据库实例的说明。
对于所有使用 Platform.sh 进行开发的情况,在本地开发时重要的是要开发在隔离的环境中 - 不要在生产环境中连接到数据。以下所有选项假设您已经将此模板部署到 Platform.sh,以及以下起始命令
$ platform get PROJECT_ID
$ cd project-name
$ platform environment:branch updates
Drupal:使用 ddev
ddev 与 Platform.sh 集成,使您能够轻松地在本地开发 Drupal。请查看 提供商文档 以获取最新信息。
通常,步骤如下
- 安装 ddev.
- 配置文件已经提供在
.ddev/providers/platform.yaml
中,因此您不需要运行ddev config
。 - 通过管理控制台获取您组织的API令牌。
- 更新您的dedev全局配置文件以使用您刚刚获取的令牌。
web_environment: - PLATFORMSH_CLI_TOKEN=abcdeyourtoken`
- 运行
ddev restart
。 - 使用
platform project:info
获取您的项目ID。如果您尚未将本地仓库与项目连接(例如,源集成默认情况),可以运行platform project:list
来定位项目ID,并运行platform project:set-remote PROJECT_ID
在本地配置Platform.sh。 - 更新您的当前设置的
.ddev/providers/platform.yaml
文件。environment_variables: project_id: PROJECT_ID environment: CURRENT_ENVIRONMENT application: drupal
- 使用
ddev pull platform
获取当前环境的数据。 - 完成工作后,运行
ddev stop
和ddev poweroff
。
Drupal: 使用Lando
Lando支持配置在Platform.sh上运行的PHP应用程序,并通过其自身的配方和插件,从Platform.sh在远程环境中使用的同一容器注册库中提取,以在本地构建过程中进行。
注意
对于上述许多步骤,如果您不在项目目录中或环境与现有拉取请求关联,可能需要包括CLI标志
-p PROJECT_ID
和-e ENVIRONMENT_ID
。
迁移
以下步骤概述了将应用程序迁移到Platform.sh的重要步骤 - 例如添加所需的配置文件和依赖项。并非每个步骤都适用于每个人的迁移。这些步骤实际上假定可能的最早起点 - 即本地没有任何代码,并且此模板存储库将完全从头开始重建。
如果您已有希望迁移的代码,请专注于与您的应用程序最相关的步骤,并跳过第一部分。
入门
假设您的起点没有任何本地代码,以下步骤将设置一个起始存储库,我们可以从中开始进行更改以重建此模板并迁移到Platform.sh。如果您正在尝试迁移现有代码库,请转到下一步骤 - 添加和更新文件 - 并将任何对默认分支main
的引用替换为某个其他分支名称。
$ mkdir -p /var/www/html/projects/varbase && cd /var/www/html/projects/varbase $ git init $ git remote add upstream https://github.com/Vardot/platformsh-varbase.git $ git branch -m main $ git fetch --all --depth=2 $ git fetch --all --tags $ git merge --allow-unrelated-histories -X theirs 10.0.0
添加和更新文件
在此阶段需要添加或修改您存储库中的少量文件。其中一些文件明确配置了应用程序在Platform.sh上如何构建和部署,而其他一些则简单地修改了您可能已经本地拥有的文件,在这种情况下,您将需要复制这些更改。
展开下面的下拉菜单以查看您需要在迁移中重现的所有添加的和更新的文件。
查看文件
依赖项和配置
有时需要安装额外的依赖项并修改上游项目的配置才能在Platform.sh上部署。当需要时,我们尽量将所需的修改降到最低。运行以下命令以重现此模板中的依赖项。
$ composer require platformsh/config-reader drush/drush drupal/redis $ composer config allow-plugins.composer/installers true --no-plugins $ composer config allow-plugins.cweagans/composer-patches true --no-plugins $ composer config allow-plugins.oomphinc/composer-installers-extender 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.phpstan/extension-installer true --no-plugins $ composer config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true --no-plugins $ composer config allow-plugins.php-http/discovery true --no-plugins $ composer config allow-plugins.pyrech/composer-changelogs 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
您可以通过登录 (
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
您可以通过登录 (
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过程中可能感兴趣的额外资源。
学习
故障排除
访问日志
环境部署完成后,您可以调查启动时发生的问题,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文档
- 分析Cookbooks
- 监控Cookbooks
- 测试Cookbooks
- 使用构建
- 配置集成
资源
联系方式
此模板由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:舰队管理平台
想了解更多信息,请查看下面的演示并访问我们的网站。
贡献
帮助我们保持顶级模板!
我们所有的模板都是开源的,对于第一次部署到Platform.sh或更深入理解平台的用户来说,它们是重要的资源。它们不仅是入门指南,还包含了许多在处理特定语言和框架时有用的提示和最佳实践。
如果发现这个模板有错误需要修复?文档中不清楚或遗漏了什么?请告诉我们!
需要帮助?
询问Platform.sh社区 加入我们的Slack