How to set up your PHP development environment

In this guide we'll cover how to set up your PHP development environment. We’ll also talk about a couple helpful tools that we recommend for all PHP applications that use Twilio: ngrok and the Twilio PHP SDK.

Let’s get started!

Install PHP

How you install PHP varies depending on your operating system.

Operating System Instructions
OS X The easiest way to install PHP on OS X is to use the official installer from You can also use Homebrew if you prefer.

$ brew install php
Windows To install PHP on Windows is using the official installer from You can also use Chocolatey if you prefer.
Linux The exact instructions to install PHP vary by distribution. Find instructions for Ubuntu or Debian.

Install a text editor or IDE

Before we can start our PHP project we’ll need something to write it with.

If you already have a code writing tool of choice, you can stick with it for developing your PHP application. If you're looking for something new, we recommend trying out a few options:

  • Atom is a an IDE built with HTML, JavaScript, CSS and is popular because of the many plugins available for use with PHP.
  • Sublime Text is a text editor popular for its ease of use and extensibility. Start here if you’re eager to get coding and don’t think you’ll want a lot of frills in your development environment.
  • Vim is a perennial favorite text editor among advanced users.
  • Emacs is a great editor which can be extended via LISP and is one of the most configurable editors.

If you’re new to programming, we recommend giving Atom and Sublime Text a try before you settle on your favorite.

Start a new project with Composer

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage them for you.

Create a new empty directory in your development environment and run composer init. Composer will create a new composer.json file for you when you're done.

$ mkdir twilio-php-app
$ cd twilio-php-app

$ composer init --require=twilio/sdk

Install the Twilio PHP SDK

We’re almost ready to start writing our PHP application, but first we need to install the Twilio PHP SDK.

# Use composer to install the Twilio PHP SDK.
$ composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing twilio/sdk (5.4.2)
    Loading from cache

Writing lock file
Generating autoload files

Create a simple PHP application

We can test that our development environment is configured correctly by creating a simple PHP application.

require_once "vendor/autoload.php";

use Twilio\TwiML\VoiceResponse;

$response = new VoiceResponse;
$response->say("Hello World!");

header("content-type: text/xml");
echo $response;

We can then try running our new PHP web application with the command php -S localhost:3000. You can then open http://localhost:3000 in your browser and after navigating to http://localhost:3000/file_name.php you should see the <Response><Say>Hello World!</Say></Response> response.

Install ngrok

Once you see your sample PHP web application's “<Response><Say>Hello World!</Say></Response>” message, your development environment is ready to go. But for most Twilio projects you’ll want to install one more helpful tool: ngrok.

Most Twilio services use webhooks to communicate with your application. When Twilio receives an incoming phone call, for example, it reaches out to a URL in your application for instructions on how to handle the call.

When you’re working on your PHP web application in your development environment, your app is only reachable by other programs on the same computer, so Twilio won’t be able to talk to it.

Ngrok is our favorite tool for solving this problem. Once started, it provides a unique URL on the domain which will forward incoming requests to your local development environment.

To start, head over to the Ngrok download page and grab the binary for your operating system:

Once downloaded, make sure your PHP web application is running and then start Ngrok using this command: ./ngrok http 3000. You should see output similar to this:

ngrok screen

Look at the “Forwarding” line to see your unique Ngrok domain name (ours is and then point your browser at that domain name.

If everything’s working correctly, you should see your PHP web application’s <Response><Say>Hello World!</Say></Response> message displayed at your new Ngrok URL.

Anytime you’re working on your Twilio application and need a URL for a webhook you should use Ngrok to get a publicly accessible URL like this one.

Where to next?

You’re now ready to build out your PHP web application. Here are a few other resources we like:



David Prothero Kevin Whinnery Kat King Mica Swyers Samuel Mendes Craig Dennis Carly Vanderwert Nahuel Sznajderhaus Andrew Baker Ricky Holtz Sam Harrison Shawn Stern David Baldassari Alberto Mucarsel
Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.

Thank you for your feedback!

Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

Sending your feedback...
🎉 Thank you for your feedback!
Something went wrong. Please try again.

Thanks for your feedback!