AWS Cloud9 现已不再向新客户提供。AWS Cloud9 的现有客户可以继续正常使用该服务。了解更多
适用于 AWS Cloud9 的 PHP 教程
该教程让您能够在 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 打开。当您打开环境时,AWS Cloud9 会在 Web 浏览器中为该环境打开 IDE。有关更多信息,请参阅 在 AWS Cloud9 中打开环境。
步骤 1:安装所需工具
在此步骤中,您将安装运行此示例需要的 PHP。
注意
以下过程仅安装 PHP。要安装相关工具,如 Apache Web 服务器和 MySQL 数据库,请参阅《Amazon 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
-
通过运行
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 在您键入时使用这些文件执行代码完成,请在 Preferences(首选项)中打开 Project, PHP Support, Enable PHP code completion(项目 > PHP 支持 > 启用 PHP 代码完成)设置,然后将这些文件的路径添加到 Project, PHP Support, PHP Completion Include Paths(项目 > PHP 支持 > PHP 完成包含路径)设置中。(要查看和更改您的首选项,请在菜单栏上选择 AWS Cloud9、Preferences (首选项)。)
步骤 3:运行代码
-
在 AWS Cloud9 IDE 中的菜单栏上依次选择 Run(运行)、Run Configurations(运行配置)、New Run Configuration(新建运行配置)。
-
在 [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
您可以改进此示例,以使用 AWS SDK for PHP 创建 Amazon S3 存储桶,列出您的可用存储桶,然后删除刚刚创建的存储桶。
在该步骤中,您安装并配置 AWS SDK for PHP,这提供了一种简便方法以从 PHP 代码中与 AWS 服务(如 Amazon S3)交互。您必须先安装 AWS SDK for PHPComposer,然后才能安装
安装 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 开发工具包代码
在此步骤中,您会添加一些代码,此次用于与 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 开发工具包代码
-
在 AWS Cloud9 IDE 中的菜单栏上依次选择 Run(运行)、Run Configurations(运行配置)、New Run Configuration(新建运行配置)。
-
在 [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,并确保启用调试器模式。