This article explains how to setup a Microsoft Windows machine to develop a website. This is for the times you don't have access to a Mac or Linux machine. This strategy will use what I call a WAMP (Windows Apache MySQL PHP) server to install a open source PHP CMS.

This aritcle will explain the install and use of XAMPP portable, a bundle of software you can install in one install. This article explains how to configure the software in order to get a website up and running on your Windows development machine.

Download and Install XAMPP

Step 1:

Download xampp to your comptuer

Step 2:

Run the installer. I didn't install any of the services as services (to keep things portable).

Step 3:

Start XAMPP. Choose "XAMPP Control Panel" from your start menu (or open it from the folder you installed it to). Start Apache & MySQL. At this point if you are running Windows 7, the firewall will ask for your permission to let Apache and MySQL through.

Install A CMS

For the interest of keep this article short, I'm not going to specifically touch on any one CMS, instead I'll generically tell you what to do. This strategy will work for most PHP web based software including: Joomla, WordPress, Drupal, OpenCart, MediaWiki, etc because they all work the same way.

Create a database

Open http://localhost/phpmyadmin/ in your browser. Choose Databases > New database. This will create a database for your CMS to use. The database is where the CMS stores its information.

Next create a new database user for Joomla to access the database.

Privileges > Add a new user

XAMPP allows a conection from any user by default, as it's meant for development not a live server. Theoretically we don't need to setup a special user, but we are creating one to mirror our live server. This will allow us to upload our finished work without having to change the database user.

If you are on shared hosting and require a connection to something other than "localhost", for example: "internaldb.nickyeoman.com" you can just edit your etc/hosts file so that url points to your local database.

Install CMS Files

Next download the files you need for your CMS and extract them to your local public directory. I installed my xmapp to
C:\xampp\
so my public directory is:
C:\xampp\htdocs

If you are working on multiple domains, you can create subdirectories in the public directory. For example, if you create a nickyeoman.com directory in
C:\xampp\htdocs\nickyeoman.com
you can access this directory by typing in
http://localhost/nickyeoman.com/ to your browser.

Once you have the CMS files in the public directory, and your database setup, you should be ready to start development. If you are moving an existing site here, be sure to change any configuration options and import the database. Here are some configuation options to consider, when trouble shooting: base path, url path, file system path, database user, host, password.

Please note that PHP, MySQL and Apache can act differently on a Windows server than a Linux server, this is something to consider when you upload to a live server and you encounter problems (or vise versa). I highly recommend developing on a Mac or Linux OS so you have more control over the software, and a command line interface to speed up work.

Final Word

The ability to develop on your local machine improves the speed you can implement and test new features. You can make a change to your template/app/system and see the changes instantly without effecting your live site. This is just the base software you need for a proper workflow, I highly recommend learning and using git to backup and deploy your websites as a next step to this tutorial.