What You'll Be Creating This tutorial is part of the Building Your Startup With PHP series on Envato Tuts+. In this series, I'm guiding you through launching a startup from concept to reality using my Meeting Planner app as a real-life example. Every step along the way, I'll release the Meeting Planner code as open-source examples you can learn from. I'll also address startup-related business issues as they arise.
In this tutorial, I'll explore choosing an ideal hosting platform for Meeting Planner and the initial configuration of our server. I'll be guiding you through the process as I migrate the pre-launch website to a better production environment for our upcoming alpha launch.
If you haven't tried out Meeting Planner yet, go ahead and schedule your first meeting . I do participate in the comment threads below, so tell me what you think! I'm especially interested if you want to suggest features or topics for future tutorials.
As a reminder, all of the code for Meeting Planner is written in the Yii2 Framework for PHP. If you'd like to learn more about Yii2, check out our parallel series Programming With Yii2 .
Selecting a Hosting Company
For many companies, Amazon's AWS is the emerging go-to solution. When AWS goes down, so do many of the web's most well-known services. But AWS is also expensive, often overly complex, and run by a company that has a history of hostility towards employees , especially its female and warehouse workers. Additionally, Amazon has single-handedly pressed the rapid over-development of my hometown Seattle in such a way that has fundamentally changed the city forever , but not necessarily for good .
Recently, I wrote a guide to alternatives to Amazon for cloud computing services. There are a lot of competitors, none as vast, but many better, more affordable, and easier to use. As Meeting Planner grows, I may consider AWS again, but for now I want to look elsewhere.
In the near term, at most, I'll need a server or two running web and database services. For this, managed hosting companies such as Rackspace , Linode , and my favorite Digital Ocean work just fine.
For now, Meeting Planner can run on one server, but as it grows, it's possible I'll need multiple web and database servers. Based on my experience, AWS makes it easier to implement this, but experienced system administrators can easily do this with the aforementioned cloud providers.
This tutorial will guide you through launching a web and database server up in the Digital Ocean clouds.
Working With Digital Ocean
I've written a handful of tutorials about Digital Ocean at Envato Tuts+, including how to use their API for server configuration. I also recently wrote about my positive experience with the Digital Ocean affiliate program . Full disclosure: when asked, Digital Ocean provided a small account credit to cover the droplet costs for this startup series for up to six months.
Over the past two years that I've been a user there, they've consistently incrementally improved their quality of service, user experience, support and feature set. For a while now, it's been extremely rare to experience a slowdown or outage, common in the early cloud hosting market.
Let's get started configuring the initial production server for Meeting Planner.
Configuring a New Droplet
Creating a New Droplet
Digital Ocean instances are called droplets. I'm sure they thought of calling them tadpoles or fish, but we developers are often destroying them, so the non-sentient droplet is a better term.
From the Droplets menu, we'll Create a Droplet . First, we choose Ubuntu 14.04 for our image and the $10 per month server option:
Next, I chose the San Francisco region because it's closest to me: