

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

# QuickStart: 将 PHP 应用程序部署到 Elastic Beanstalk
<a name="php-quickstart"></a>

在以下教程中，您将学习如何使用 EB CLI 创建示例 PHP 应用程序并将其部署到 Amazon Elastic Beanstalk 环境中。

**不用于生产用途**  
示例仅用于演示。请勿在生产环境中使用示例应用程序。

**Topics**
+ [你的 Amazon 账户](#php-quickstart-aws-account)
+ [先决条件](#php-quickstart-prereq)
+ [步骤 1：创建 PHP 应用程序](#php-quickstart-create-app)
+ [步骤 2：在本地运行应用程序](#php-quickstart-run-local)
+ [步骤 3：初始化并部署 PHP 应用程序](#php-quickstart-deploy)
+ [步骤 4：浏览您的云应用程序](#php-quickstart-run-eb-ap)
+ [步骤 5：更新和重新部署您的应用程序](#php-quickstart-run-eb-ap)
+ [清理](#php-quickstart-cleanup)
+ [后续步骤](#php-quickstart-next-steps)

## 你的 Amazon 账户
<a name="php-quickstart-aws-account"></a>

如果你还不是 Amazon 客户，则需要创建一个 Amazon 账户才能使用 Elastic Beanstalk。

### 创建一个 Amazon 账户
<a name="php-quickstart-aws-account-procedure"></a>

#### 注册获取 Amazon Web Services 账户
<a name="sign-up-for-aws"></a>

如果您没有 Amazon Web Services 账户，请完成以下步骤来创建一个。

**报名参加 Amazon Web Services 账户**

1. 打开[https://portal.aws.amazon.com/billing/注册。](https://portal.amazonaws.cn/billing/signup)

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册时 Amazon Web Services 账户，就会创建*Amazon Web Services 账户根用户*一个。根用户有权访问该账户中的所有 Amazon Web Services 服务 和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

Amazon 注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 [https://aws.amazon.com/](https://www.amazonaws.cn/)并选择 “**我的账户”，查看您当前的账户活动并管理您的账户**。

#### 保护 IAM 用户
<a name="secure-an-admin"></a>

注册后 Amazon Web Services 账户，开启多重身份验证 (MFA)，保护您的管理用户。有关说明，请参阅《IAM 用户指南》**中的 [为 IAM 用户启用虚拟 MFA 设备（控制台）](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html#enable-virt-mfa-for-iam-user)。

要允许其他用户访问您的 Amazon Web Services 账户 资源，请创建 IAM 用户。为了保护您的 IAM 用户，请启用 MFA 并仅向 IAM 用户授予执行任务所需的权限。

有关创建和保护 IAM 用户的更多信息，请参阅《IAM 用户指南》中的以下主题：**
+ [在你的 IAM 用户中创建 Amazon Web Services 账户](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_users_create.html)
+ [适用于 Amazon 资源的访问权限管理](https://docs.amazonaws.cn/IAM/latest/UserGuide/access.html)
+ [基于 IAM 身份的策略示例](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_examples.html)

## 先决条件
<a name="php-quickstart-prereq"></a>
+ Elastic Beanstalk 命令行界面：如需安装说明，请参阅[使用设置脚本安装 EB CLI（推荐）](eb-cli3.md#eb-cli3-install)。
+ PHP：按照 PHP 网站上的[安装与配置](https://www.php.net/manual/en/install.php)说明在本地计算机上安装 PHP。

## 步骤 1：创建 PHP 应用程序
<a name="php-quickstart-create-app"></a>

在此快速入门教程中，您将创建一个 *Hello World* PHP 应用程序。

创建项目目录。

```
~$ mkdir eb-php
~$ cd eb-php
```

接下来，在项目目录中创建一个 `index.php` 文件并添加以下代码。

**Example `index.php`**  

```
<?php
  echo "Hello from a PHP application running in Elastic Beanstalk!";
?>
```

## 步骤 2：在本地运行应用程序
<a name="php-quickstart-run-local"></a>

使用以下命令以在本地运行您的应用程序。

```
~$ php -S localhost:5000
```

打开浏览器并访问 [http://localhost:5000](http://localhost:5000)。

您应该能在浏览器中看到问候消息，并在终端中看到日志消息。

输入 `Control+c` 来停止本地服务器，这样您就可以部署 Elastic Beanstalk 了。

## 步骤 3：初始化并部署 PHP 应用程序
<a name="php-quickstart-deploy"></a>

接下来，您将使用 Elastic Beanstalk 控制台或 EB CLI 将您的应用程序部署到*环境*。在本教程中，您将使用带有交互式选项的 EB CLI 来初始化环境。

**初始化您的环境并创建环境**

1. 运行以下 **init** 命令：

   ```
   ~$ eb init -i
   ```

   init 命令会以交互方式创建应用程序。应用程序名称将默认为本地文件夹，即 `eb-php`。

   对于除了 SSH 访问以外的所有提示，请接受默认设置以使用最新的 PHP 平台版本来创建环境。若要对实例进行故障排除，您可以稍后重新运行 `eb init -i` 命令来设置 SSH 访问权限，也可以使用 Amazon EC2 Instance Connect 或会话管理器进行连接。

1. 创建环境并部署应用程序

   运行以下命令创建名为 `blue-env` 的环境。

   ```
   ~$ eb create blue-env
   ```

   当您首次运行 **eb create** 命令时，Elastic Beanstalk 会自动为您的应用程序生成一个 zip 文件，称为*源捆绑包。*接下来，Elastic Beanstalk 会创建一个包含一个或多个 Amazon EC2 实例的环境，然后将该应用程序部署到该环境中。

   将您的应用程序部署到 Elastic Beanstalk 可能需要五分钟的时间。

## 步骤 4：浏览您的云应用程序
<a name="php-quickstart-run-eb-ap"></a>

环境创建过程完成后，应用程序应在运行并侦听端口 5000 上的请求。使用以下命令连接您的应用程序：

```
~$ eb open
```

`eb open` 命令会打开一个浏览器标签页，指向为应用程序创建的自定义子域。

## 步骤 5：更新和重新部署您的应用程序
<a name="php-quickstart-run-eb-ap"></a>

创建应用程序并将其部署到环境中后，您可以随时部署新的应用程序版本或不同的应用程序。部署新的应用程序版本速度会更快，因为不需要预置或重新启动 Amazon EC2 实例。

更新您的 PHP 代码，使其包含来自服务器环境的 REQUEST\_TIME 值：

```
<?php
  echo "Hello from a PHP application running in Elastic Beanstalk!";
  
  $timestamp = $_SERVER['REQUEST_TIME'];
  echo '<br/>Request time: ' . date('Y/m/d H:i:s', $timestamp);
?>
```

使用以下命令将 PHP 代码重新部署到 Elastic Beanstalk：

```
~$ eb deploy
```

运行 **eb deploy** 时，EB CLI 会捆绑项目目录中的内容并将其部署到环境中。

部署完成后，刷新页面或使用 `eb open` 重新连接到您的应用程序。您应看到更新的内容。如果看不到更新的内容，请再次运行本地服务器来验证所做的更改，从而进行故障排除。

****恭喜您！****  
您已使用 Elastic Beanstalk 创建、部署并更新了 PHP 应用程序！

## 清理
<a name="php-quickstart-cleanup"></a>

演示代码使用完毕后，您可以终止环境。[Elastic Beanstalk 会删除 Amazon 所有相关资源，例如 [Amazon EC2](using-features.managing.ec2.md)[实例、数据库实例、](using-features.managing.db.md)负载均衡器[、安全组](using-features.managing.elb.md)和警报。](using-features.alarms.md#using-features.alarms.title)

移除资源不会删除 Elastic Beanstalk 应用程序，因此您可以随时为您的应用程序创建新环境。

**从控制台终止 Elastic Beanstalk 环境**

1. 打开 [Elastic Beanstalk](https://console.amazonaws.cn/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 Amazon Web Services 区域

1. 在导航窗格中，选择 **Environments**（环境），然后从列表中选择环境的名称。

1. 选择 **Actions**（操作），然后选择 **Terminate environment**（终止环境）。

1. 使用屏幕上的对话框确认环境终止。

您也可以使用 EB CLI 通过下列命令来终止环境：

```
~$ eb terminate
```

## 后续步骤
<a name="php-quickstart-next-steps"></a>

您可以使用 Elastic Beanstalk 控制台探索应用程序环境。有关更多信息，请参阅[探索您的环境](GettingStarted.md#GettingStarted.Explore)。

有关使用 PHP 的高级示例，请参阅 [Elastic Beanstalk 中的 PHP 高级示例](php-samples.md)。