Deploy PHP!

A video series on reliable,
fully-automated deployments
for your PHP apps!

Buy Now!    ($79.00)

Finally create a solid PHP deployment strategy

We'll start simple and progress our way to professional
fully-automated, zero-downtime deployments.

Server setup and security

We'll install some basics, setup new users, set firewalls, install some security software, and harden server access.

Simple to Professional

We'll start with simple file-copy operations over SSH and then incorporate Fabric to build a zero-downtime deployment strategy with rollbacks.

Deployment with Teams

We'll centralize deployments with a build server, creating a process to automate application builds, deploy code, send notifications and log deploy history.

The Course Modules

All the Videos:


Building a Web Server
(Config & Security)

08:50 #1

Connecting via SSH

05:45 #2

User Setup

03:31 #3

User Access/Security

13:25 #4

Configuring Firewalls

05:01 #5

Fail2Ban to Montior Access Attempts

11:21 #6

Application Server Setup (PHP, etc)

Basic Deployments
(Copying Files)

02:42 #7

Our SSH Setup

03:14 #8

Copying Files with SCP

05:30 #9

Improving Our Process with Rsync

09:43 #10

Deploying with Git Securely

Scripting Deployments

Advanced Deployment

08:34 #11

Using Fabric to Script Deployments

06:48 #12

Sudoers for Sudo Commands

09:16 #13

Symlinks to Reduce Downtime

07:24 #14

Scripting the Symlink Process

05:48 #15

Handling Rollbacks

11:02 #16

Handling Migrations

03:22 #17

Other Services We Can Use

Automating Deployments

Building a Deploy Service

03:19 #18

Automating Fabric

10:23 #19

Creating a Build Server

06:58 #20

Using a Web Listener to Trigger Deployments

09:17 #21

Setting up GitHub Webhooks

07:39 #22

Setup a Deployment Queue with SQS

07:45 #23

Taking Jobs from the SQS Queue to Trigger Deployments

05:07 #24

Adding Slack Notifications

08:19 #25

Staying UP & Running (Process Monitoring)

Packaging Your Application

05:47 #26

What is a Packaged Application?

09:50 #27

Application Packaging Process

10:15 #28

Deploying a Packaged Application

03:24 #29

Wrap Up

The process: Zero to Automated

Here's what you'll learn:


A Server to Deploy To

  • Server Installation
  • Network Security
  • SSH & User Security
  • A PHP Application Server

SSH & Copying Files

  • SSH Configuration
  • Copying with SCP
  • Syncing with Rsync
  • User Permissions for Deployment
  • Git/GitHub for Deployment

Scripting Deployments

The Deploy Process

  • Fabric - SSH Task Runner
  • Sudoers/Sudo Usage
  • Zero-Downtime with Symlinks
  • Rollbacks
  • Migrations
  • Similar Services

Automating Deployments

Centralizing & Refining

  • Centralizing Deployments
  • Automating calls to Fabric
  • Listening for Manual & GitHub Webhooks
  • Separating Concerns with Queues
  • Notifying of Deployment Status
  • Building App Assets & Dependencies First
  • Monitoring Node/Python Listeners

Building the Application

  • Setting up the App for Building
  • Building App Assets & Dependencies First
  • Building on the Build Server
  • Deploying a Built Site

Purchase Deploy PHP!

Purchase this video series and get:

Video Series:

Get 30 videos 🎉 all about building a secure, full automated deployment process for your PHP applications.

Ansible Roles:

Get a set of Ansible roles 💪🏻 to get you started creating a load balanced environment and a deploy-server to get you up and deploying quickly! A video and full writeup on its usage is also included.

Info & Extra Videos!

Sign up to get a small email course where you'll see:

  • • A preview of a fully-automated server setup and deployment
  • • A video on web apps, permissions, & decisions made in this course

Who am I?


I'm Chris Fidao. I wrote the Servers for Hackers eBook, and publish related videos at the Servers for Hackers video site.

I also curate the Servers for Hackers newsletter, which is read by over 12,000 programmers who want to learn about servers.

I'm an experienced programmer with a foot firmly in the world of DevOps.


Who is this for?

This video course is for those who don't yet have a solid deployment process for their PHP applications. If you have questions about SSH keys, automating tasks, listening for GitHub web hooks, how to determine when to deploy, and server setup, this is for you!

Why PHP?

The deployment process for most languages is basically the same when following similar strategies. However, there are enough "gotchas" per language to make generalizing overly challenging. The quality and usefulness of this course would suffer tremendously.

Still, you'll likely find this course useful even for your NodeJS, Python or Ruby applications. However you'd have to go elsewhere to find specifics & gotchas about each language's package managers & environment setup.


In return for your feedback on why the course wasn't for you, I'll be honoring full refunds! Think of it as a money-back guarantee!