PHP的教程 AWS Cloud9 - AWS Cloud9

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

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

PHP的教程 AWS Cloud9

本教程允许您在 AWS Cloud9 开发环境中运行一些PHP脚本。

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

先决条件

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

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

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

步骤 1:安装所需工具

在此步骤中,您将安装PHP,这是运行此示例所必需的。

注意

PHP仅安装以下步骤。要安装相关工具,例如 Apache 网络服务器和 “我的SQL数据库”,请参阅亚马逊EC2用户指南中的教程:在 Amazon Linux 上安装 LAMP 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. PHP通过运行install命令进行安装。

    对于 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. [新建]-空闲选项卡上,选择运行器:自动,然后选择 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.
在中运行PHP代码的输出 AWS Cloud9 IDE

步骤 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

使用 silent (-s) 和 show error (-S) 选项运行curl命令,将 Composer 安装程序通过管道传输到composer.phar按惯例命名的PHP存档 (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 服务 从中的环境中呼叫 AWS Cloud9 中的说明操作,然后返回到本主题。

有关更多信息,请参阅 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 步:运行 AWS SDK代码

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

  2. [新建]-空闲选项卡上,选择运行器:自动,然后选择 PHP(cli)

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

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

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

      注意

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

    • us-east-2是您要在其中创建存储桶的 AWS 区域的 ID。欲了解更多信息IDs,请参阅中的亚马逊简单存储服务 (Amazon S3) S ervice。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 中删除环境

对 PHP runner 的问题进行故障排除 AWS Cloud9

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