AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
PHP的教程 AWS Cloud9
本教程允许您在 AWS Cloud9 开发环境中运行一些PHP脚本。
按照本教程操作并创建此示例可能会对您的 AWS
账户收费。其中包括亚马逊EC2和Amazon S3等服务可能产生的费用。有关更多信息,请参阅 Amazon EC2 定价
主题
先决条件
在使用此示例之前,请确保您的设置满足以下要求:
-
您必须拥有现有的 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 服务器。
-
在的终端会话中 AWS Cloud9 IDE,通过运行
php --version
命令来确认PHP是否已安装。(要开始新的终端会话,请在菜单栏上依次选择 Window(窗口)> New Terminal(新建终端)。) 如果成功,则输出将包含PHP版本号。如果PHP已安装,请直接跳至步骤 2:添加代码。 -
运行
yum update
(适用于 Amazon Linux)或apt update
(适用于 Ubuntu Server)命令,以帮助确保已安装最新的安全更新和错误修复。对于 Amazon Linux 2 和 Amazon Linux:
sudo yum -y update
对于 Ubuntu Server:
sudo apt update
-
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:运行代码
-
在菜单栏上 AWS Cloud9 IDE,选择 “运行”、“运行配置”、“新建运行配置”。
-
在 [新建]-空闲选项卡上,选择运行器:自动,然后选择 PHP(cli)。
-
在 Command(命令)中,键入
hello.php 5 9
。在代码中,5
表示$argv[1]
,9
表示$argv[2]
。($argv[0]
表示文件 (hello.php
) 的名称。) -
选择 Run (运行) 按钮,然后比较输出。
Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.
步骤 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
安装 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代码
-
在菜单栏上 AWS Cloud9 IDE,选择 “运行”、“运行配置”、“新建运行配置”。
-
在 [新建]-空闲选项卡上,选择运行器:自动,然后选择 PHP(cli)。
-
在 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 一般参考
-
-
选择 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并且调试器模式已启用。