Created: 2011-07-17 07:12
Updated: 2014-02-07 01:19



The AWS SDK for PHP enables developers to build solutions for Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon EC2), Amazon SimpleDB, and more. With the AWS SDK for PHP, developers can get started in minutes with a single, downloadable package.

The SDK features:

  • AWS PHP Libraries: Build PHP applications on top of APIs that take the complexity out of coding directly against a web service interface. The toolkit provides APIs that hide much of the lower-level implementation.
  • Code Samples: Practical examples for how to use the toolkit to build applications.
  • Documentation: Complete SDK reference documentation with samples demonstrating how to use the SDK.
  • PEAR package: The ability to install the AWS SDK for PHP as a PEAR package.
  • SDK Compatibility Test: Includes both an HTML-based and a CLI-based SDK Compatibility Test that you can run on your server to determine whether or not your PHP environment meets the minimum requirements.

For more information about the AWS SDK for PHP, including a complete list of supported services, see aws.amazon.com/sdkforphp.

Signing up for Amazon Web Services

Before you can begin, you must sign up for each service you want to use.

To sign up for a service:

  • Go to the home page for the service. You can find a list of services on aws.amazon.com/products.
  • Click the Sign Up button on the top right corner of the page. If you don't already have an AWS account, you are prompted to create one as part of the sign up process.
  • Follow the on-screen instructions.
  • AWS sends you a confirmation e-mail after the sign-up process is complete. At any time, you can view your current account activity and manage your account by going to aws.amazon.com and clicking "Your Account".


The source tree for includes the following files and directories:

  • _compatibility_test -- Includes both an HTML-based and a CLI-based SDK Compatibility Test that you can run on your server to determine whether or not your PHP environment meets the minimum requirements.
  • _docs -- Informational documents, the contents of which should be fairly self-explanatory.
  • _samples -- Code samples that you can run out of the box.
  • extensions -- Extra code that can be used to enhance usage of the SDK, but isn't a service class or a third-party library.
  • lib -- Contains any third-party libraries that the SDK depends on. The licenses for these projects will always be Apache 2.0-compatible.
  • services -- Contains the service-specific classes that communicate with AWS. These classes are always prefixed with Amazon.
  • utilities -- Contains any utility-type methods that the SDK uses. Includes extensions to built-in PHP classes, as well as new functionality that is entirely custom. These classes are always prefixed with CF.
  • README -- The document you're reading right now.
  • config-sample.inc.php -- A sample configuration file that should be filled out and renamed to config.inc.php.
  • sdk.class.php -- The SDK loader that you would include in your projects. Contains the base functionality that the rest of the SDK depends on.

Minimum Requirements in a nutshell

  • You are at least an intermediate-level PHP developer and have a basic understanding of object-oriented PHP.
  • You have a valid AWS account, and you've already signed up for the services you want to use.
  • The PHP interpreter, version 5.2 or newer. PHP 5.2.17 or 5.3.x is highly recommended for use with the AWS SDK for PHP.
  • The cURL PHP extension (compiled with the OpenSSL libraries for HTTPS support).
  • The ability to read from and write to the file system via file_get_contents() and file_put_contents().

If you're not sure whether your PHP environment meets these requirements, run the SDK Compatibility Test script included in the SDK download.


Via GitHub

Git is an extremely fast, efficient, distributed version control system ideal for the collaborative development of software. GitHub is the best way to collaborate with others. Fork, send pull requests and manage all your public and private git repositories. We believe that GitHub is the ideal service for working collaboratively with the open source PHP community.

Git is primarily a command-line tool. GitHub provides instructions for installing Git on Mac OS X, Windows, and Linux. If you're unfamiliar with Git, there are a variety of resources on the net that will help you learn more:

  • Git Immersion is a guided tour that walks through the fundamentals of Git, inspired by the premise that to know a thing is to do it.
  • The PeepCode screencast on Git ($12) will teach you how to install and use Git. You'll learn how to create a repository, use branches, and work with remote repositories.
  • Git Reference is meant to be a quick reference for learning and remembering the most important and commonly used Git commands.
  • Git Ready provides a collection of Git tips and tricks.
  • If you want to dig even further, I've bookmarked other Git references.

If you're comfortable working with Git and/or GitHub, you can pull down the source code as follows:

git clone git://github.com/amazonwebservices/aws-sdk-for-php.git AWSSDKforPHP


PEAR stands for the PHP Extension and Application Repository and is a framework and distribution system for reusable PHP components. It is the PHP equivalent to package management software such as MacPorts and Homebrew for Mac OS X, Yum and Apt for GNU/Linux, RubyGems for Ruby, Easy Install for Python, Maven for Java, and NPM for Node.js.

PEAR packages are very easy to install, and are available in your PHP environment path so that they are accessible to any PHP project. PEAR packages are not specific to your project, but rather to the machine that they're installed on.

From the command-line, you can install the SDK with PEAR as follows:

pear channel-discover pear.amazonwebservices.com
pear install aws/sdk

You may need to use sudo for the above commands. Once the SDK has been installed via PEAR, you can load it into your project with:

require_once 'AWSSDKforPHP/sdk.class.php';


  1. Copy the contents of config-sample.inc.php and add your credentials as instructed in the file.
  2. Move your file to ~/.aws/sdk/config.inc.php.
  3. Make sure that getenv('HOME') points to your user directory. If not you'll need to set putenv('HOME=<your-user-directory>').

Additional Information

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more