In this tutorial, we will show you how to set up CakePHP 3 to send email with AWS SES via SMTP. In our opinion, integrating AWS SES with CakePHP 3 by SMTP is more straightforward comparing to API.

They start off with the creation of the "EmailTransport" profile configuration dropped into the main application configuration file (defining connection and credential information). They then show how to create an "email profile" telling the framework to use the SES service definition. Finally they offer some advice about using the SES service on a Google Cloud instance and how to work around some of their port restrictions. CakePHP takes care of the rest, automatically understanding how to work with SES and using it transparently as the mailing service when you send your emails.

The main highlight of re:Invent is always the keynotes and the new services and features announcements they make during the keynotes. One of the new services caught my attention, and I decided to give it a try. That service is AWS CodeBuild.

CodeBuild is designed to be used as part of the AWS CodePipeline, but it may also be used by itself. [...] Out of the box, CodeBuild provides some managed images that you may use to build your projects. These include environments for Android, Java, Python, Ruby, Golang, and Node.js. PHP is missing from this list, but since you’re able to use other images, I decided to see how easy it is to get up and running on CodeBuild with a PHP project. I chose to try out my ramsey/uuid library for a simple test.

He walks you through the creation of a new CodeBuild instance (complete with screenshots of the UI) and how to configure your project, explaining each of the settings as he goes. He includes the full build command he's using for the library running tests, a lint check and codesniffer checks for formatting. He shows how to get the project to build and what the UI will show when the build is successful (all green).

Since porting git over to another remote is as more Github's domain we're focusing on deploying Sculpin to S3 using CircleCI in this post.

He starts by outlining some of the prerequisites to get in place before trying to set up the process on your own application. He shows you how to set up an IAM user for the S3 bucket and configure CircleCI though a simple YAML file. He also mentions the set up for tests, loading in other dependencies needed (Composer) and finally the deployment that executes Sculpin's "generate" command to build the site.

Handling file uploads sucks. Code-wise it's a fairly simple task, the files get sent along with a POST request and are available server-side in the $_FILES super global. Your framework of choice may even have a convenient way of dealing with these files, probably based on Symfony's UploadedFile class. Unfortunately it's not that simple.

[...] For most situations using S3 is a no brainer, but the majority of developers transfer their user's uploads to S3 after they have received them on the server side. This doesn't have to be the case, your user's web browser can send the file directly to an S3 bucket. You don't even have to open the bucket up to the public. Signed upload URLs with an expiry will allow temporary access to upload a single object.

He points out two advantages of this method: that you don't have to handle the upload part of file uploads and that it gives the user more control. He shares a video of the end result (a simple file upload frontend) and the code that you'll need to use the AWS PHP SDK to make it all work together. There's some configuration changes that'll need to be made on the S3 bucket side (like for CORS) but the code itself to make the connection is relatively simple. He does a great job of explaining every step of the way and includes the Javascript needed for the frontend as well.

On the Liip blog there's a new post showing you how to set up "testing in the cloud" with the help of AWS and a Bamboo instance along with some custom configuration.

Bamboo is the continous integration service by Atlassian, the company owning the code management service Bitbucket (as well as the Jira issue tracker and Confluence wiki). Bamboo can run test suites and build any kind of artefact like generated documentation or installable packages. It integrates with Amazon Web Services, allowing to spin up EC2 instances as needed.

The article talks about the permissioning needed for the EC2 AWS instances and how to trigger automatic builds. They then get into the details of configuring the test runner and the PHPUnit setup to allow for the execution of your tests.

That Podcast, hosted by PHP community members Beau Simensen and Dave Marshall, has posted its latest episode - Episode #38: [Work, Work, Work].

Beau and Dave talk about some of their recent work efforts, Dave's first look at DynamoDB, other AWS services, migrating event streams, email integration with Context.io and the challenges of maintaining privacy with such systems.

The SitePoint PHP blog has posted a tutorial from Daniel Berman giving you a step by step guide to setting up an Elastic LAMP stack on AWS, the Amazon Web Services platform using Zend Server.

This article introduces what is probably one of the simplest ways of setting up and running an elastic LAMP stack on the cloud – using Zend Server on AWS.

More specifically, the workflow described here includes launching a pre-configured AWS CloudFormation template that sets up all the components of a LAMP stack: Zend Server’s certified PHP stack plus all of Zend Server’s add-on features (including Z-Ray), a MySQL database, a Zend Server elastic group consisting of additional Zend Server instances, an elastic load balancer, and other pre-configured security definitions. This article is perfect for those contemplating moving their production environment to the cloud or those who already have one set up on AWS.

He starts with some of the basics: what Zend Server is and what role CloudFormation plays in the deployment process. The rest of the tutorial is broken up into several steps of the setup and deployment process:

Step 1: Launching the stack

Step 2: Managing the stack

Step 3: Deploying an application

Step 4: Monitoring the stack

They include screenshots of the web-based interfaces you'll use to complete each of these steps, giving you a great visual guide to where you should be and what things should look like. In the end you'll have a simple application, running in AWS on Zend Server you can easily monitor and configure.

On the Zend Blog they've posted a new guide showing you how to create a PHP cluster in AWS using the Zend Server software to help make things easier.

Running a cluster of PHP servers on AWS can be a complex task to say the least, and in this article we will look into the various tasks involved in managing a PHP clustered environment. We will look into why it can be a complex and tricky task and how Zend Server help alleviate the pain involved.

They start by introducing the guidelines of the challenge, easily creating the set of PHP nodes with simpler maintenance abilities, monitoring and session sharing included. While this isn't a step-by-step guide per-se, it does give you a good idea of some of the technology needs around clustering PHP instances (and how Zend Server (Cluster) helps solve some common issues). This includes screenshots of the interfaces used for these common tasks like:

Piotr Pasich has posted the second part of his series showing you how to set up an automated deployment process for an environment that includes an Elastic Beanstalk instance. In this part of the series be builds on the process created in part one and shows the setup and configuration of the Beanstalk instance.

In the previous part we set up a dedicated Symfony application on Docker virtual containers and prepared environments that may be transferred between developers during project cycle. The next step is to prepare the application for pushing into the cloud. There are many options available on the market – Heroku, DigitalOcean and, my favorite, AWS Elastic Beanstalk.

He walks you through the Amazon side of things first, getting the Beanstalk instance set up through the AWS control panel, selected from the AWS list of services. He goes through the options you'll need to configure to get the instance all set up and running including the resources to allocate and instance type (t1.medium is recommended). He then helps set up some of the necessary environment variables for configuration information and a bit of a hack to Symfony that lets you override local parameters with ones coming from the environment. Finally he configures the Beanstalk application and setting it up for automated deployment.

The Zend.com blog has a post showing you how to debug WordPress running on Zend Server with the help of the Z-Ray plugin. In their example they're hosting it on an AWS instance, but the same technique can apply on any other hosted version as well.

More and more PHP development is being done in the cloud and on virtual platforms nowadays. The workflow detailed in this brief tutorial is just one way to develop PHP in these environments, but it illustrates just how easy and productive this type of development can be. More specifically, it demonstrates how to launch the newly available Zend Server 8.5 instance on AWS with a WordPress application already deployed, and then use Z-Ray to introspect and debug the code.

The tutorial walks you through the setup and configuration of a new AWS instance with Zend Server and WordPress installed (you can skip to the end if you already have this). They show you how to:

Launch the Zend Server AWS instance

Configure the instance to install WordPress as a part of the setup process

Access the Zend Server control panel

Accessing the WordPress application deployed on the instance

Once the WordPress application is accessed, the Z-Ray inspection bar will appear at the bottom giving you insight into various configuration options, performance metrics and server information. They also link to a video with more information about the WordPress plugin.