AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
的 PHP 教程 AWS Cloud9
本教程使你能够在 AWS Cloud9 开发环境中运行一些 PHP 脚本。
按照本教程操作并创建此示例可能会对您的 AWS
账户收费。其中包括可能对 Amazon EC2 和 Amazon S3 等服务收取的费用。有关更多信息,请参阅 Amazon EC2 定价
主题
先决条件
在使用此示例之前,请确保您的设置满足以下要求:
-
您必须拥有现有 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 服务器。
-
在 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
-
通过运行
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:运行代码
-
在 AWS Cloud9 IDE 的菜单栏上,选择 “运行”、“运行配置”、“新建运行配置”。
-
在 [New] - Idle ([新建] - 空闲) 选项卡上,选择 Runner: Auto (运行程序:自动),然后选择 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
使用静默 () 和显示错误 (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 代码
-
在 AWS Cloud9 IDE 的菜单栏上,选择 “运行”、“运行配置”、“新建运行配置”。
-
在 [New] - Idle ([新建] - 空闲) 选项卡上,选择 Runner: Auto (运行程序:自动),然后选择 PHP (cli)。
-
在 Command (命令) 中,键入
s3.php America/Los_Angeles my-test-bucket us-east-2
,其中: -
选择 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,并确保启用调试器模式。