

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Elastic Beanstalk Linux 平台
<a name="platforms-linux"></a>

Elastic Beanstalk Linux 平台提供了大量开箱即用的功能。您可以通过多种方式扩展平台以支持您的应用程序。有关更多信息，请参阅 [扩展 Elastic Beanstalk Linux 平台](platforms-linux-extend.md)。

Elastic Beanstalk 支持的大多数平台都基于 Linux 操作系统。具体而言，这些平台基于亚马逊 Linux（由提供的 Linux 发行版） Amazon。Elastic Beanstalk Linux 平台使用亚马逊弹性计算云 EC2（亚马逊）实例，这些实例运行亚马逊 Linux。

**Topics**
+ [受支持的 Amazon Linux 版本](#platforms-linux.versions)
+ [Elastic Beanstalk Linux 平台列表](#platforms-linux.list)
+ [实例部署工作流](platforms-linux-extend.workflow.md)
+ [在 Amazon Linux 2 及更高版本上运行的 ECS 的实例部署工作流](platforms-linux-extend.workflow.ecs-al2.md)
+ [适用于 Elastic Beanstalk 环境的平台脚本工具](custom-platforms-scripts.md)

## 受支持的 Amazon Linux 版本
<a name="platforms-linux.versions"></a>

Amazon Elastic Beanstalk 支持基于亚马逊 Linux 2 和亚马逊 Linux 2023 的平台。

有关 Amazon Linux 2 和 Amazon Linux 2023 的更多信息，请参阅以下文件：
+ **亚马逊 Linux 2** — [亚马逊* EC2 用户指南中的亚马逊* L](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html) inux。
+ **Amazon Linux 2023** – *Amazon Linux 2023 用户指南*中的[什么是 Amazon Linux 2023？](https://docs.amazonaws.cn/linux/al2023/ug/what-is-amazon-linux.html)。

有关支持的平台版本的更多信息，请参阅 [Elastic Beanstalk 支持的平台](concepts.platforms.md)。

**注意**  
您可以将应用程序从 Elastic B AL2 eanstalk AL1 或平台分支迁移到 AL2等效的 023 平台分支。有关更多信息，请参阅 [将 Elastic Beanstalk Linux 应用程序迁移到 Amazon Linux 2023 或 Amazon Linux 2](using-features.migration-al.md)。

### Amazon Linux 2023
<a name="platforms-linux.versions.al2023"></a>

Amazon 2023 年 3 月宣布亚马逊 Linux 2023 [正式](https://www.amazonaws.cn//blogs/aws/amazon-linux-2023-a-cloud-optimized-linux-distribution-with-long-term-support/)上市。*Amazon Linux 2023 用户指南*总结了 Amazon Linux 2 与 Amazon Linux 2023 之间的主要差异。有关更多信息，请参阅用户指南中的[比较 Amazon Linux 2 和 Amazon Linux 2023](https://docs.amazonaws.cn/linux/al2023/ug/compare-with-al2.html)。

Elastic Beanstalk Amazon Linux 2 和 Amazon Linux 2023 平台之间具有高度的兼容性。尽管还有一些差异需要注意：
+ **实例元数据服务版本 1 (IMDSv1)**-在 AL2 023 平台`true`上，[禁用IMDSv1](command-options-general.md#command-options-general-autoscalinglaunchconfiguration)选项设置默认为。默认设置在 AL2 平台`false`上。
+ **pkg-repo 实例工具** — 该[pkg-repo](custom-platforms-scripts.md#custom-platforms-scripts.pkg-repo)工具不适用于在 023 平台上 AL2运行的环境。但是，您仍然可以手动将软件包和操作系统更新应用到 AL2 023 实例。有关更多信息，请参阅 *Amazon Linux 2023 用户指南*中的[管理软件包和操作系统更新](https://docs.amazonaws.cn/linux/al2023/ug/managing-repos-os-updates.html)。
+ **Apache HTTPd 配置** — 适用于 AL2 023 平台的 Apache `httpd.conf` 文件有一些与以下平台不同的配置设置： AL2
  + 默认情况下，拒绝访问服务器的整个文件系统。这些设置在 Apache 网站[安全提示](https://httpd.apache.org/docs/2.4/misc/security_tips.html)页面上的*默认保护服务器文件*中进行了描述。
  + 拒绝访问所有目录`.htaccess`中的设置，但特别启用的目录除外。此设置在 Apache 网站[安全提示](https://httpd.apache.org/docs/2.4/misc/security_tips.html)页面上的*保护系统设置*中进行了描述。[Apache HTTP 服务器教程：.htaccess 文件](https://httpd.apache.org/docs/2.4/howto/htaccess.html)页面指出，此设置可能有助于提高性能。
  + 拒绝访问带有名称模式 `.ht*` 的文件。此设置阻止 Web 客户端查看 `.htaccess` 和 `.htpasswd` 文件。

  您可以更改您的环境的上述任何配置设置。有关更多信息，请参阅 [配置 Apache HTTPD](platforms-linux-extend.proxy.md#platforms-linux-extend.proxy.httpd)。
+ **多行环境变量支持** — AL2 023 平台支持 systemd 服务配置中的环境变量和密钥的多行值。Amazon Linux 2 平台不支持多行环境变量值。此增强功能允许您在 AL2 023 平台上使用多行密钥和配置值。有关使用环境变量和密钥的更多信息，请参阅[Amazon Linux 2 环境变量中的多行值](AWSHowTo.secrets.env-vars.md#AWSHowTo.secrets.multiline)。
+ **CloudWatch 自定义日志转发**-已弃用的 Log CloudWatch s 代理（`awslogs`软件包）在 AL2 023 平台上不可用。如果您有安装和使用已弃用`awslogs`代理的自定义日志转发配置，则在从 Amazon Linux 2 迁移到 AL2 023 时，必须更新配置文件以使用统一 CloudWatch 代理。有关更多信息，请参阅 [自定义日志文件流式传输](AWSHowTo.cloudwatchlogs.md#AWSHowTo.cloudwatchlogs.streaming.custom)。

**特定于平台的差异**

除了基本操作系统的差异外，Amazon Linux 2 和 AL2 023 运行时平台之间还存在平台特定的差异：
+ **.NET 平台分支** — 亚马逊 Linux 2 和 AL2 023 的.NET 平台分支策略有所不同。在 Amazon Linux 2 上，.NET Core 平台在单个平台分支中维护一个轮换窗口，其中包含.NET 主要版本。在 AL2 023 上，每个平台分支都固定到特定的.NET 主要版本（例如.NET 9、.NET 10）。

  如果您部署依赖于框架的应用程序（依赖于平台安装的.NET 运行时的应用程序），则必须选择与应用程序的目标.NET 版本相匹配的平台分支。如果您部署自包含的应用程序（捆绑自己的.NET 运行时的应用程序），则无论应用程序的.NET 版本如何，都可以使用任何 AL2 023 .NET 平台分支，因为您的应用程序不依赖于平台安装的运行时。有关更多信息，请参阅 [捆绑适用于 .NET Core on Linux Elastic Beanstalk 平台的应用程序](dotnet-linux-platform-bundle-app.md)。
+ **Node.js 版本选择** — 亚马逊 Linux 2 上的 Node.js 平台支持在应用程序`package.json`文件中指定 Node.js 版本。 AL2023 上的 Node.js 平台不支持此功能。您必须使用平台分支提供的默认 Node.js 版本。有关 Node.js 版本管理的更多信息，请参阅[配置您的应用程序对 Elastic Beanstalk 的依赖项](nodejs-platform-dependencies.md)。
+ **Ruby Puma 服务器版本** — 亚马逊 Linux 2 上的 Ruby 平台会忽略应用程序`Gemfile.lock`文件中指定的 Puma 版本，而是使用平台默认 Puma 版本。 AL2023 上的 Ruby 平台支持中指定的 Puma 版本（`Gemfile.lock`如果存在）。如果未指定版本，则平台将安装平台默认 Puma 版本。
+ **PHP 软件包的可用性** — 亚马逊 Linux 2 PHP 平台上提供的某些软件包在 AL2 023 PHP 平台上不可用：
  + *MySQL 客户端包* — `mysql` 和`mysql-devel`命令行客户端软件包未安装在 AL2 023 PHP 平台上。如果您的应用程序需要 MySQL 数据库连接，请使用两个平台上都提供的 PHP `mysqli` 或`pdo_mysql`扩展。
  + *Compass 和 Ruby 工具* — Compass CSS 框架支持的`ruby-devel`和`rubygems`软件包未安装在 AL2 023 PHP 平台上。指南针已被弃用。可以考虑使用现代 CSS 预处理工具作为替代工具。
+ **Go 版本控制工具** — Bazaar 版本控制系统 (`bzr`) 在 AL2 023 Go 平台上不可用。Bazaar 已被弃用，未包含在 AL2 023 软件包存储库中。改用 Git、Mercurial 或 Subversion 进行版本控制，所有这些都在 AL2 023 Go 平台上可用。

## Elastic Beanstalk Linux 平台列表
<a name="platforms-linux.list"></a>

下面的列表提供了 Elastic Beanstalk 针对不同编程语言和 Docker 容器支持的 Linux 平台。Elastic Beanstalk 为所有平台提供基于 Amazon Linux 2 和 Amazon Linux 2023 的平台。要了解有关平台的更多信息，请选择对应的链接。
+ [Docker（和 ECS Docker）](create_deploy_docker.md) 
+ [Go](create_deploy_go.md)
+ [Tomcat（运行 Java SE）](create_deploy_Java.md)
+ [Java SE](create_deploy_Java.md)
+ [Linux 上的 .NET Core](create-deploy-dotnet-core-linux.md)
+ [Node.js](create_deploy_nodejs.md)
+ [PHP](create_deploy_PHP_eb.md)
+ [Python](create-deploy-python-apps.md)
+ [Ruby](create_deploy_Ruby.md)