Effortless Web Development Environment Setup with PHP, MySQL and Nginx

It’s no surprise that a good chunk of folks that follow Effective Programmer Facebook page are aspiring programmers that want learn about web development. Whats surprising is that the biggest challenge they face in terms of getting started is setting up a local development environment.

The good news is that learning web development is actually a great way to get in the field. I highly recommend it and have talked about learning web technologies in the past too. In today’s post I want to cover how to setup a local web development environment with PHP programming language so you can start making websites and not worry about all the nitty gritty of installing all the required tools and software. All you need is a computer and a bit of Grit.

Let’s get started.

Step 1: Install Docker

To make it super simple I have created sort of a starter kit that you can download from GitHub and you will be 80% done, but in order for the package to work you need to download and install Docker. The reason behind this requirement is that in order to get everything installed and configured on your computer– from your local web server to PHP engine to database — it is a lot of things to get right. With Docker and using the package I’ve built for you guys it will be take only few minutes and you can then just focus on making your first website.

Simply go to the Docker download page, and download and install docker on your computer.

Step 2: Download the starter package from GitHub

Now that you have Docker running, download the starter kit from GitHub, or if you already know how to use git, simply clone my repository using the git clone command show shown here:

git clone https://github.com/naveed125/docker-lemp-app.git

Alternatively just use the download zip file link and unzip it.

Step 3: Start the local development environment.

Alright, you are almost there. Simply open a command prompt on your computer, cd to the directory where you downloaded the starter package and use “docker-compose” command to startup everything, as I show below.

C:\> cd C:\projects\docker-lemp-app

C:\projects\docker-lemp-app> docker-compose up -d
Creating network "docker-lemp-app_default" with the default driver
Pulling db (mysql:)...
latest: Pulling from library/mysql
8559a31e96f4: Already exists
a6b5dc864b6c: Pull complete
Digest: sha256:8b7b328a7ff6de46ef96bcf83af048cb00a1c86282bfca0cb119c84568b4caf6
Status: Downloaded newer image for mysql:latest
Pulling web (naveed125/nginx-php-fpm:latest)...
latest: Pulling from naveed125/nginx-php-fpm
e423b3f563c7: Pull complete
9644d0860cc7: Pull complete
77f061ce98c3: Pull complete
Digest: sha256:4681feb29917026afde080562ca97a23815571510303604e0ffe1824ddc8d79a
Status: Downloaded newer image for naveed125/nginx-php-fpm:latest
Creating docker-lemp-app_db_1 ... done
Creating docker-lemp-app_web_1 ... done

Step 4: Test your Environemnt

That’s it, you’re done and ready to build your web applications. Try it, open your browser enter http://localhost and you should see something like this.

Accessing Local Website in a Browser

If you are wondering, locahost is just a special name for your computer, you are just telling your browser to connect to the web server running locally.

You’re all set

At this point your local development environment is ready. To make changes to your website just find and change app.php file in the src directory and refresh your browser to see the changes.

Whats next

Look at you, a brand new web developer! Where do you go next? start with the official PHP tutorial and start building your very first website. Feel free to reach out if you need help.

Happy coding

Cheers

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: