的 PHP 教程 AWS Cloud9 - AWS Cloud9

AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用该服务。了解更多

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

的 PHP 教程 AWS Cloud9

本教程使你能够在 AWS Cloud9 开发环境中运行一些 PHP 脚本。

按照本教程操作并创建此示例可能会对您的 AWS 账户收费。其中包括可能对 Amazon EC2 和 Amazon S3 等服务收取的费用。有关更多信息,请参阅 Amazon EC2 定价Amazon S3 定价

先决条件

在使用此示例之前,请确保您的设置满足以下要求:

  • 您必须拥有现有 AWS Cloud9 的 EC2 开发环境。本示例假设您已经有连接到运行 Amazon Linux 或 Ubuntu Server 的 Amazon EC2 实例的 EC2 环境。如果您有不同类型的环境或操作系统,可能需要按照本示例的说明来设置相关的工具。有关更多信息,请参阅 在中创建环境 AWS Cloud9

  • 您已经打开了现有环境的 AWS Cloud9 IDE。打开环境时,会在 Web 浏览器中 AWS Cloud9 打开该环境的 IDE。有关更多信息,请参阅 在 AWS Cloud9 中打开环境

步骤 1:安装所需工具

在此步骤中,您将安装运行此示例需要的 PHP。

注意

以下过程仅安装 PHP。要安装相关工具,例如 Apache Web 服务器和 MySQL 数据库,请参阅亚马逊 EC2 用户指南中的教程:在亚马逊 Linux 上安装 LAM P Web 服务器

  1. 在 AWS Cloud9 IDE 的终端会话中,通过运行php --version命令来确认 PHP 是否已安装。(要开始新的终端会话,请在菜单栏上依次选择 Window(窗口)> New Terminal(新建终端)。) 如果成功,输出将包含 PHP 版本号。如果已安装 PHP,请向前跳至 步骤 2:添加代码

  2. 运行 yum update(适用于 Amazon Linux)或 apt update(适用于 Ubuntu Server)命令,以帮助确保已安装最新的安全更新和错误修复。

    对于 Amazon Linux 2 和 Amazon Linux:

    sudo yum -y update

    对于 Ubuntu Server:

    sudo apt update
  3. 通过运行 install 命令安装 PHP。

    对于 Amazon Linux 2:

    sudo amazon-linux-extras install -y php7.2

    对于 Amazon Linux:

    sudo yum -y install php72
    注意

    您可以使用以下命令查看 Amazon Linux 的版本:

    cat /etc/system-release

    对于 Ubuntu Server:

    sudo apt install -y php php-xml

    有关更多信息,请参阅 PHP 网站上的安装和配置

步骤 2:添加代码

在 AWS Cloud9 IDE 中,使用此内容创建一个文件,然后使用该名称保存该文件hello.php。(要创建文件,请在菜单栏上依次选择 File(文件)New File(新建文件)。要保存文件,请依次选择 File(文件)Save(保存),并为 Filename(文件名)键入 hello.php、然后选择 Save(保存)。)

<?php print('Hello, World!'); print("\nThe sum of 2 and 3 is 5."); $sum = (int)$argv[1] + (int)$argv[2]; print("\nThe sum of $argv[1] and $argv[2] is $sum."); ?>
注意

上述代码不依赖于任何外部文件。但是,如果您曾经在文件中包含或要求使用其他 PHP 文件,并且想要 AWS Cloud9 在键入时使用这些文件完成代码,请打开 “首选项” 中的 “项目”、“PHP 支持”、“启用 PHP 代码完成” 设置,然后将这些文件的路径添加到 “项目”、“PHP 支持”、“PHP 完成包含路径” 设置中。(要查看和更改您的首选项,请在菜单栏上选择 AWS Cloud9、Preferences (首选项)。)

步骤 3:运行代码

  1. 在 AWS Cloud9 IDE 的菜单栏上,选择 “运行”、“运行配置”、“新建运行配置”。

  2. [New] - Idle ([新建] - 空闲) 选项卡上,选择 Runner: Auto (运行程序:自动),然后选择 PHP (cli)

  3. Command(命令)中,键入 hello.php 5 9。在代码中,5 表示 $argv[1]9 表示 $argv[2]。($argv[0] 表示文件 (hello.php) 的名称。)

  4. 选择 Run (运行) 按钮,然后比较输出。

    Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.
在 AWS Cloud9 IDE 中运行 PHP 代码的输出

步骤 4:安装和配置 AWS SDK for PHP

您可以增强此示例,使用创建 Amazon S3 存储桶,列出您的可用存储桶,然后删除您刚刚创建的存储桶。 AWS SDK for PHP

在此步骤中,您将安装和配置 AWS SDK for PHP,它提供了一种通过您的 PHP 代码与 Amazon S3 等 AWS 服务进行交互的便捷方式。在安装之前 AWS SDK for PHP,您应该先安装 C omposer。安装后 AWS SDK for PHP,您必须在您的环境中设置凭据管理。 AWS SDK for PHP 需要这些凭据才能与 AWS 服务进行交互。

安装 Composer

使用静默 () 和显示错误 (curl) 选项运行 -s -S命令,将 Composer 安装程序传送到 PHP 档案 (PHAR) 文件,按约定名为 composer.phar

curl -sS https://getcomposer.org/installer | php

要安装 AWS SDK for PHP

对于 Ubuntu Server,请安装 Composer 安装 AWS SDK for PHP所需的其他软件包。

sudo apt install -y php-xml php-curl

对于 Amazon Linux 或 Ubuntu Server,请使用 php 命令运行 Composer 安装程序以安装 AWS SDK for PHP。

php composer.phar require aws/aws-sdk-php

此命令在环境中创建多个文件夹和文件。您将使用的主要文件为 autoload.php,位于环境中的 vendor 文件夹中。

注意

安装后,Composer 可能会建议您安装其他依赖项。您可以使用如下命令执行此操作,指定要安装的依赖项列表。例如,以下命令会指示 Composer 安装以下依赖项列表。

php composer.phar require psr/log ext-curl doctrine/cache aws/aws-php-sns-message-validator

有关更多信息,请参阅 AWS SDK for PHP 开发人员指南中的安装

在环境中设置凭证管理

每次使用调 AWS SDK for PHP 用 AWS 服务时,都必须为呼叫提供一组凭据。这些证书决定了是否 AWS SDK for PHP 具有进行该呼叫的相应权限。如果凭证没有包括合适的权限,调用将失败。

在此步骤中,您将凭证存储在环境内。为此,请按照 从 AWS Cloud9 中的环境调用 AWS 服务 中的说明操作,然后返回到本主题。

有关更多信息,请参阅 AWS SDK for PHP 开发人员指南中的基本用法的“创建客户端”部分。

第 5 步:添加 AWS SDK 代码

在此步骤中,您会添加一些代码,此次用于与 Amazon S3 交互来创建存储桶,列出可用的存储桶,然后删除刚刚创建的存储桶。您将稍后运行此代码。

在 AWS Cloud9 IDE 中,使用此内容创建一个文件,然后使用该名称保存该文件s3.php

<?php require './vendor/autoload.php'; if ($argc < 4) { exit("Usage: php s3.php <the time zone> <the bucket name> <the AWS Region to use>\n" . "Example: php s3.php America/Los_Angeles my-test-bucket us-east-2"); } $timeZone = $argv[1]; $bucketName = $argv[2]; $region = $argv[3]; date_default_timezone_set($timeZone); $s3 = new Aws\S3\S3Client([ 'region' => $region, 'version' => '2006-03-01' ]); # Lists all of your available buckets in this AWS Region. function listMyBuckets($s3) { print("\nMy buckets now are:\n"); $promise = $s3->listBucketsAsync(); $result = $promise->wait(); foreach ($result['Buckets'] as $bucket) { print("\n"); print($bucket['Name']); } } listMyBuckets($s3); # Create a new bucket. print("\n\nCreating a new bucket named '$bucketName'...\n"); try { $promise = $s3->createBucketAsync([ 'Bucket' => $bucketName, 'CreateBucketConfiguration' => [ 'LocationConstraint' => $region ] ]); $promise->wait(); } catch (Exception $e) { if ($e->getCode() == 'BucketAlreadyExists') { exit("\nCannot create the bucket. " . "A bucket with the name '$bucketName' already exists. Exiting."); } } listMyBuckets($s3); # Delete the bucket you just created. print("\n\nDeleting the bucket named '$bucketName'...\n"); $promise = $s3->deleteBucketAsync([ 'Bucket' => $bucketName ]); $promise->wait(); listMyBuckets($s3); ?>

第 6 步:运行 S AWS DK 代码

  1. 在 AWS Cloud9 IDE 的菜单栏上,选择 “运行”、“运行配置”、“新建运行配置”。

  2. [New] - Idle ([新建] - 空闲) 选项卡上,选择 Runner: Auto (运行程序:自动),然后选择 PHP (cli)

  3. Command (命令) 中,键入 s3.php America/Los_Angeles my-test-bucket us-east-2,其中:

    • America/Los_Angeles 是默认时区 ID。有关更多 ID,请参阅 PHP 网站上支持的时区列表

    • my-test-bucket 是您要创建,然后删除的存储桶的名称。

      注意

      Amazon S3 存储桶名称必须是唯一的,而 AWS不仅仅是您的 AWS 账户。

    • us-east-2是您要在其中创建存储桶的 AWS 区域的 ID。有关更多 ID,请参阅 中的 Amazon Simple Storage Service (Amazon S3)Amazon Web Services 一般参考

  4. 选择 Run (运行) 按钮,然后比较输出。

    My buckets now are: Creating a new bucket named 'my-test-bucket'... My buckets now are: my-test-bucket Deleting the bucket named 'my-test-bucket'... My buckets now are:

步骤 7:清除

为了防止在您使用完此示例后继续向您的 AWS 账户收费,您应该删除该环境。有关说明,请参阅在 AWS Cloud9 中删除环境

针对 AWS Cloud9的 PHP 运行程序问题的故障排除

如果您遇到 PHP CLI 运行程序的问题,则必须确保已将运行程序设置为 PHP,并确保启用调试器模式。