How to Setup a WordPress Development Environment for Windows

How to Setup a WordPress Development Environment for Windows

Tutorial Details
  • Program: WordPress
  • Version: Any
  • Difficulty: Easy
  • Estimated Completion Time: 60-80 Minutes

Having a local WordPress test environment is essential for developing themes, plugins, and updating sites. The last thing you want to do is update a live site or install a plugin that completely breaks the site. In this tutorial I’m going to take you through the steps that will give you a local WordPress environment that will allow you to safely and efficiently develop for WordPress.


What You Need

  • Xampp
  • A current version of WordPress
  • A web browser
  • Your favorite text editor

Xampp is a great web server package made by a group called Apache Friends. Xampp combines Apache, MySQL, PHP 5.3.8(current version), OpenSSL, phpMyAdmin, Webalizer, Mercury Mail Transport System, FileZilla FTP Server, and Tomcat. Xampp is a great tool for developing locally on Windows.

You can download the latest version of Xampp here.


Step 1 Installing Xampp

After you’ve downloaded Xampp. Go ahead and start the install.

The first screen will look like this.

Installing Xampp Step 1

Click Next to start the installation process.

Installing Xampp Step 2

Choose the directory you want to install Xampp. I recommend creating a new directory and naming it something like “localhost” or "Web Server" to keep things organized. If you want to just keep the default install directory.

Click Next.

Installing Xampp Step 3

The next screen is the Xampp options.

Choose whether you want a Xampp icon on you desktop and/or the start menu.

The options you really want to consider is whether to install Apache and MySQL as Windows services. Installing Apache and MySql as services will increase the Windows boot time, but having them as services can come in handy. There have been a few times when I booted up my computer, opened the web site I was working on, and getting a browser error. Then I would spend the next hour trying to figure out why my site isn’t loading only to realize that the server wasn’t running. The choice is your though.

Don’t worry about Filzilla unless you plan on having a FTP service on you computer. I really don’t recommend that, so let’s just leave that unchecked for now. You can always change it later.

Installing Xampp Step 4

Now, Xampp will install.

Installing Xampp Step 5

That’s it click Finish and you’re done. Xampp is now installed and ready to go


Step 2 Running Xampp

Now open up the Xampp control panel and turn on Apache and MySQL.

Xampp Control Panel

If you didn’t choose to install Apache and MySQL as a Windows service you can check the “Scv” checkbox’s, and Xampp will install Apache and MySQL as a service.

Xampp Control Panel Started

Click the Start buttons for Apache and MySQL. It may take a minute for them to start. Once the Apache and MySQL servers are running the Xampp control panel will look the screenshot above.

Now point your browser to http://127.0.0.1. This are the default URLs for Apache on your computer. You should see a nifty Xampp splash screen. Choose your language and have a look around. There’s some stuff here to look at and read. The one part you want to pay attention to is the phpMyAdmin link. You might want to bookmark this link for future use, or you can just go to http://127.0.0.1/phpmyadmin/. phpmyAdmin is a GUI for the MySQL database. With phpmyAdmin you can create and manage your MySQL databases.


Step 3 Setting Up Your WordPress Directory

Why Have Multiple WordPress Versions?

Before we start with the setup and installation of WordPress. I just want to take a moment and explain why you should have multiple versions of WordPress installed. When you’re developing a theme or plugin you should be developing it on the latest stable version of WordPress. By developing on the latest stable version it not only keeps you code up to date, but it’ll let you take advantage of any new features. You may be asking yourself “Then, why have multiple versions of WordPress?”. The answer is assuming.

You can’t assume that everyone out there has the latest version of WordPress. Especially if you want to sell you work. If a company spent thousands of dollars for their theme and plugins. They’re not going to want to risk upgrading WordPress and have their site break. They will keep the version they have for as long as they can. There are allot of major corporations out there that still have Internet Explorer 6 as their companies main web browser. If they don’t want to upgrade a free browser then it’s safe to say they won’t upgrade WordPress either.

If you don’t test your work in older versions then you’ll be narrowing you potential sales. It’s just a matter of numbers. Why spend the time developing a theme or plugin that can only be sold for a few versions of WordPress? By testing your work on older versions you can market it for all the versions it works on. Making you work available for a larger consumer group. There by you’ll make more money and we all like more money.


Setting Up Your WordPress Directory

The files for your WordPress and all other web sites are going to be stored in the htdocs folder of you Xampp install directory.

Xampp Install Directory

By default Xampp installs the site you just went to at http://127.0.0.1/. This is just an example site and you don’t need to keep it. Once you get all the information you need from it you can open up the htdocs directory and delete the files within. These file aren’t necessary for you web server to run.

Go ahead and create a directory named wp-vs-version (e.g. wp-vs-321) or whatever you like in the htdocs directory for you WordPress installation. The reason for this naming convention will become clear in Setp 4 when we create the WordPress databse.

Don’t install WordPress yet! There are some more steps we’re going to go through first, so just copy the WordPress files over to the newly created directory to prepare for the WordPress install.


Step 4 Creating The WordPress Database

Now point you browser to your phpmyAdmin page at http://127.0.0.1/phpmyadmin/.

phpmyAdmin

The first thing you want to do is set up admin privileges. On the tabs the right, click on the Privileges tab.

phpmyAdmin Privileges

Click Add a new User

phpmyAdmin New User

Put your user name and password the their perspective fields. Since this is going to be a local setup. You don’t have to be worried about a super secure username and password. Just make sure it’s something you’re going to remember.

Make sure localhost is in the Host field.

In the Global Privileges area check all the options. The Global Privileges are the actions that the user can can access. Unless you plan on letting others working on your local server make sure you have them all checked.

When everything is the way you want it. Click the GO button.

phpmyAdmin Home Button

Now, let’s create a database for your WordPress install. Click the Home button on the left to return to the phpmyAdmin home page.

phpmyAdmin

Name your database in the Create new database field. You can name it whatever you want, but I recommend naming the database wp_vs_version ( e.g. wp_vs_3.2.1 ) to keep with the naming conventions in Step 3. This will keep your different WordPress versions orginized and easy to work with.

Now, you’re all set to install your copy of WordPress.


Step 5 Configuring WordPress

If you’ve installed WordPress before and know what you’re doing. Go ahead and skip to Step 7. For those new to WordPress installing WordPress is easy. I’ll take you through the steps to get you going.

First you need to download a version of WordPress you can download version 3.2.1 here. At the time of writing this tutorial version 3.2.1 was still the current stable version.

Create a folder in your htdocs directory and name it wp-vs-321. Unzip you copy of WordPress and copy it to the your WordPress in the wp-vs-321 folder.

The first thing you need to do is rename the wp-config-sample.php file to wp-config.php. This file is a sample file for you WordPress config file. It has everything you need to get you going on your WordPress install.

After renaming the file open the wp-config.php file in your favorite text editor, and look for this bit of code.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

This part of wp-cofig.php are the configuration settings that allow WordPress to connect to your mySQL database.

  • define(‘DB_USER’, ‘username_here’): Is the username you set up for the database privileges in phpmyAdmin in Part One. The username is case sensitive.
  • define(‘DB_PASSWORD’, ‘password_here’): Is the password you set up for the database privileges in phpmyAdmin in Part One. The password is case sensitive.
  • define(‘DB_HOST’, ‘localhost’): This is the web server host name. Unless you changed the host in the database privileges is should be the default localhost.
  • define(‘DB_CHARSET’, ‘utf8′): This is where you define the the character set. Leave this one alone. You shouldn’t have to change this.
  • define(‘DB_COLLATE’, ”): This is the database’s collate type. Unless you know what you’re doing leave this alone, too.

The code right below that is the authentication unique keys and salts. This is just some addition security WordPress has by default. It looks like this.

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

This is easy to setup. Just go to https://api.wordpress.org/secret-key/1.1/salt/ copy the text there and paste it over the sample text in the wp-config.php file. This link will generate a random set of keys for you to use.

It should look something like this.

define('AUTH_KEY',         'Nsd-]$o7h4 &Y@N345+h@Jn`M#an^|+0]kGtkPqyu|ZI%G|PWoX+&:j{&/_v89-{');
define('SECURE_AUTH_KEY',  'Rf+[4(O5LZ#i&??*n9wIyh^rS4- +3c[DarlPCh[7E&wPE|dY,dZ(mU66uP-FIq,');
define('LOGGED_IN_KEY',    '>48!V^Pc}/uX95r>]ym)ZiA gP7f8}q!H=p-!TA#5M5.]sqm;SqM+`+9qfO_r/y(');
define('NONCE_KEY',        '+8UC!2pD~x/=:d)k;eset5(aP0UYb4B[@Ta UG~C`!IRVDtrGJ3XI2D;QsE#eZ}(');
define('AUTH_SALT',        '0;K-fHe)RpH7_h|KJ1b0jxr#`ke:*GMx|X$ll-z|!;ENt],-y:sUW-D,;-xX )3K');
define('SECURE_AUTH_SALT', 'R6X${@qi/ f|GX**3qp@{Z}_yJ(iB{CFmV%a(:xny!hpM.R*|-53ybq7ILgZCTFH');
define('LOGGED_IN_SALT',   'NcO%Wa|3RHu!-.%(w6YqTc/Rc,S&THdDDA1@Whp4;WUdiCytA{sL0-a} |6MZ1]O');
define('NONCE_SALT',       '0QB9`~!X$X]2#B)ma[KsLtiK#-%{!VoM f-q%eJ%tO+3O]tTrqhC-%rI|.pFPQ[P');

Next, you want to change the database prefix

$table_prefix  = 'wp_';

The default is wp_. I like to keep the the naming convention of wp_vs_version_ (e.g. wp_vs_3.2.1). You can name it anything you want or just keep the default. If you notice there is an underscore at the end of the prefix. This isn’t required, but it does make you database look cleaner.

$table_prefix  = 'wp_vs_3.2.1';

Note – When you install a live version of WordPress you want to change the prefix to something unique. Using random letters and numbers is a good method. This will add another layer of security for your WordPress site. On a local development environment it shouldn’t be necessary.

The last part of the wp-config.php file we’ll configure is the debug mode. This will either be true for debug on, or false for debug off. On a live site this should always be set to false, so your visitor don’t see any errors, but for your local development environment you should have it set to true.

This will help you in your development. Even if your code is working the way you want. You could still have some errors. Especially with depreciated code. Your project will still work with depreciated code, but you want to keep your code up to date. That way if WordPress stops supporting the depreciated code your projects will still work.

Change this code.

define('WP_DEBUG', false);

To This.

define('WP_DEBUG', true);

That’s all we need to configure for your WordPress install. Make sure you save the wp-config.php file and move on to Step 6 to install WordPress.


Step 6 Installing WordPress

Now, point your browser to http://localhost/wp-vs-321/ .

If everything was configured correctly you should see the WordPress install page.

WordPress Install

Enter the Title. Keeping with the naming convention let’s name it WordPress Development Version 3.2.1.

The Username and Password isn’t the same as the username and password you set up for the database. This is what you will use to log into the WordPress admin page. Make sure you use something you’ll remember. If you forget your username or password you’ll have to go into the database to change it or do a fresh install of WordPress. Also, WordPress doesn’t give you an option to change your admin username and password, so make sure it’s something you want to keep.

Finally enter Your email address, uncheck Allow my site to appear in search engines like Google and Technorati, and click Install WordPress.

There you go. WordPress is now installed. To install more versions of WordPress just repeat the instruction above. Remember to change the names for your directory, database, prefix, and site title.


Step 7 Setting Up Apache Virtual Hosts

Now, on to the fun stuff. I’m going to show you how to set up Apache Virtual Hosts.

Apache has a great system in place with Virtual Hosts. Virtual Host allows you to use a unique URL for your web sites on your local web server. That means if you’re developing a site for a client called Big Bob’s Candy. You can set up a URL for your development site like http://wp.bigbobscandy.com. Instead of http://localhost/big-bobs-candy/index.php.

Why would you want to do this? Well, just to make it look good and to keep your projects organized. If you noticed there was wp. before the bigbobscandy.com URL. Using a sub domain like this will keep your site from interfering with a real URL also, it can help you organize your projects. For example you can use wp. for WordPress sites and sws. for static web sites.

First, we’re going to setup the httpd-vhost.conf file. This file is located in your Xampp directory -> apache -> conf -> extra.

apache-conf-extra-vhosts-file

Open up the httpd-vhost.conf file in notepad and you’ll see this.

#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# 
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
##NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any  block.
#
##<VirtualHost *:80>
    ##ServerAdmin postmaster@dummy-host.localhost
    ##DocumentRoot "/xampp/htdocs/dummy-host.localhost"
    ##ServerName dummy-host.localhost
    ##ServerAlias www.dummy-host.localhost
    ##ErrorLog "logs/dummy-host.localhost-error.log"
    ##CustomLog "logs/dummy-host.localhost-access.log" combined
##</VirtualHost>

##<VirtualHost *:80>
    ##ServerAdmin postmaster@dummy-host2.localhost
    ##DocumentRoot "/xampp/htdocs/dummy-host2.localhost"
    ##ServerName dummy-host2.localhost
    ##ServerAlias www.dummy-host2.localhost
    ##ErrorLog "logs/dummy-host2.localhost-error.log"
    ##CustomLog "logs/dummy-host2.localhost-access.log" combined
##</VirtualHost>

Go ahead and delete all this. We’re going to build the Virtual Host file from scratch.

When working with this file. If you want to leave notes you just put a hash symbol at the beginning of any line you leave a not on.

# This line is a note that will be ignored because of the #
This line will be read by Apache because there is no # at the beginning of the line

Here is the code we’ll be using in the httpd-vhost.conf file.

# Main Virtual Host IP Address
NameVirtualHost *

#Main Virtual Host
<VirtualHost *>
    ServerName localhost
    DocumentRoot "C:/localhost/htdocs"
</VirtualHost>

#WordPress vs 3.2.1
<VirtualHost *:80>
    ServerName wp.devsite-321.com
    DocumentRoot "C:/localhost/htdocs/wp-vs-321"
    <Directory "C:/localhost/htdocs/wp-vs-321">
      Order allow,deny
      Allow from all
    </Directory>
</VirtualHost>

The NameVirtualHost * you specify the IP address on which the server will receive requests for the name-based virtual hosts. The * will default to 127.0.0.1.

In the next section, #Main Virtual Host. The ServerName is localhost, and the DocumentRoot is the absolute path to your htdocs folder in the web server’s directory.

ServerName localhost is the URL you’ll use in your browser web server, so if you ever want to go to your root directory in you browser you can just use http://localhost/.

The #WordPress vs 3.2.1 is the Virtual Host configuration for your WordPress install. Again, the ServerName wp.devsite-321.com will be the URL for Your WordPress site. This can be anything you want. If you want your site to have a URL of http://the.evilbunnysquad.com. The ServerName would be the.evilbunnysquad.com

The DocumentRoot and the path in the <Directory> tag, are going to be absolute path to your WordPress’s install.

The Order allow,deny and Allow from all just sets up some basic permissions for viewing your WordPress Virtual Host.

When you start adding other versions of WordPress just copy and paste the #WordPress vs 3.2.1 Virtual Host configuration and change the ServerName, DocumentRoot, and <Directory> to reflect the new install.

When you install additional versions of WordPress just follow the instructions above. Just change it to reflect the newly installed version.

There’s allot more you can do with the virtual hosts like setting up server logs, but all we want to do right now is setup the URL’s. If you’d like to read more on Apache Virtual Host visit the Apache Virtual Host Examples and unix-girl.com.


Step 8 Configuring Your Windows Host File

Now let’s view the WordPress site with the URL we just set up in the previous section. Go ahead and put http://wp.devsite-321.com in your browser. Oh, what happened? The site didn’t come up. Well, that’s because your computer doesn’t recognize the URL yet. That’s what we’re going to do in this last step.

What we need to do is configure your Windows Host file. This file is located in Windows -> System32 -> drives -> etc directory.

windows-system32-drivers-etc-hosts-file

Now, this file can be a little tricky to work with. If you’re still running Windows XP. You won’t have a problem. Just open it in any text editor. If your running Windows Vista or Windows 7 you need to be on a Windows User Account that has administration rights. If you can open the hosts file in a text editor but can’t save it, because you get an error stating you need administration rights. You’ll need to open this in notepad. You need to right click on notepad and click Run as Administrator. Once you do that, you shouldn’t have any problems editing or saving the host file.

When you open the hots file you going to see a bunch of IP addresses and URLs. I’ll look like this.

Window Hosts File

Now, add the IP addresses and URLs we just made in the Virtual Host file. Like this.

127.0.0.1    localhost (if it's not already there)
127.0.0.1    wp.devsite-321.com

Finally, open you Xampp control panel turn off Apache and MySql. Then start them back up, and point your browser to http://wp.devsite-321.com . If Everything went right you should be seeing your WordPress site. You’ll need to do this for every URL you set up in the
httpd-vhost.conf file.


Conclusion

With this tutorial you’ll have everything you need to build a WordPress development environment. Once everything is set up, it’ll only take you minutes to setup URLs for your WordPress and static web sites. Keeping you workspace organized and accessible.

If you want to read more about Xampp, Apache, phpmyadmin, or Virtual Hosts. Check out these links.


Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • Jeff

    Or you could just use InstantWP or Ampps. One click and your done.

  • Brendan

    This is great but personally I love the Microsoft web matrix installer. One click installer! Enter a username, password and site name and you’re Done. And it will install many sites as you want.

  • http://www.ruturaaj.com Ruturaaj

    This tutorial is good for get going, but I feel this is a place for developers and so one important point is missing here: “Sample Database”. In addition to the steps above, I suggest importing Sample Database. If you’re a Theme Developer, then it’s really essential to have a list of Posts, Pages and Menu items with all different variations of HTML content Formatting. This way, you can make ensure proper content formatting in your theme. Here is a quick link to nicely filled Sample Database:

    http://wpcandy.com/made/the-sample-post-collection

    This database was also suggested by a fellow forum member on ThemeForest Forum.
    http://themeforest.net/forums/thread/sample-data-for-wordpress/16027

    Although this sounds like a good start, you may still wish to have more ready with you. Certainly this is not the only way to achieve this task. You can go to a Blogger site or just any WP site and save the RSS of that website to a local File. Then use “WordPress Importer” to import the RSS from locally saved file. It should import just everything referenced in RSS… categories, images… just everything. Once you’re done with it and happy with the database, use phpMyAdmin to export your WordPress database and that’s it! There you are… ready with your very own Sample Database!

    I hope this helps.

  • jimena

    I have found Appsev (http://www.appservnetwork.com) much more better than Xampp, not only for wordPress, but for other cms (Joomla, PrestaShop, OpenCart).

  • http://www.ruturaaj.com Ruturaaj

    One more thing that I forgot to mention in my previous comment… you will need “mod_rewrite” in order to make your WordPress Permalink structure to work properly. Make sure “mod_rewrite” is enabled in your XAMPP installation. It’s simple. After you finish installation of XAMPP and WordPress, go to following folder:

    [xampp-directory]\apache\conf

    Here, [xampp-directory] is the directory where you installed your XAMPP. You will find a file named “httpd.conf” in this directory. First create a backup of this File and then open the original one in your Notepad or any plain text editor. Find following line in this file:
    #LoadModule rewrite_module modules/mod_rewrite.so

    Remove the first “#” to uncomment this line. This will set your mod_rewrite to load. Next, find following config setting:

    AllowOverride None

    Change it to…

    AllowOverride All

    Restart Apache Service and your mod_rewrite should be set in action. Login to your WordPress Admin Dashboard, change permalink structure and see if your .htaccess is working properly or not.

    I hope this helps. I’m not on XAMPP at the moment, so please correct my typos (if any) as and where necessary. :-)

    • Jason Witt

      That shouldn’t be necessary. The “mod_rewrite” should already be uncommented. It doesn’t hurt to check, but with every install I’ve done it’s go to go.

      If you choose another install method other that the windows installer you may have to uncomment “mod_rewrite”. I’m not sure about the other install methods.

  • Jason Witt

    Those are all great web servers to suggest, but they do lack in features compared to Xammp. It’s just the web server package I prefer to use.

    It doesn’t really matter when it comes down to it because they all (except Microsoft Web Matrix) have what you would get on a paid hosting service windows server. Apache server, php, mySQL, and phpmyadmin. It just depends on what features you want to explore while developing. This tutorial can be applied to any of those apache based servers. Just skip Steps 1 and 2. The rest would be the same.

    • http://kovshenin.com Konstantin

      I’d argue. If you’re going for shared hosting you usually don’t have access to the Apache configuration file, moreover, they may be no Apache at all. If you’re in for the virtual server you’ll probably have an admin panel (often cPanel) to configure hosts and directories. Some may even lack phpMyAdmin but that doesn’t mean WordPress will not work.

      I like to set up my development environment as close to production as possible, which can easily be done with some virtualization software like VirtualBox (free) or VMWare (commercial) and perhaps NFS to your host machine. It usually takes more time than simply installing XAMPP ar another “all in one” package but in the long run it works out much better.

      Just thinking out loud here ;) Cheers!

      • Jas

        Well, when it comes to hosting you basically have two choices. Windows hosting and Unix/Linux hosting. Windows hosting will have two choices, Apache and ISS servers. Unix/Linux will have Apache. Apache was basically made for Unix/Linux servers. If you have a Unix/Linux Operating System, chances are Apache is already installed, configured and running in the background without you having to install anything.

        About 60% of web hosts use Apache. ISS is the next popular server, but that’s going out of style along with ASP. If you sign up with a host and don’t choose specifically for an IIS server, you’ll be on an Apache server. The easiest way to tell is your server is Apache is to look for .htaccess files. .htaccess files are just for Apache.

        Setting up a virtual box is way more complicated than just installing an Apache package. The only thing I use a virtual boxfor, is for testing web pages in older version of Internet Explorer. Not to mention it’s a pain getting virtual boxes to work right. They also use up way too much of your RAM, which just make them totally impractical for web design.

  • http://www.fxbxd.com Ben

    n00b questions…

    1. I have a current copy of WAMP installed. Will that suffice in place of XAMPP?

    2. How would you config/test multiple WP sites using the same environment?

    Thx.

  • http://designoob.wordpress.com mojo706

    Thanks for the very detailed tutorial. Only one question can the above be done using WAMP? Otherwise thanks!

  • Andrew

    This is helpful but needs a follow-up soon with instructions for moving to a live site on the Internet.

  • Aryan

    Why WP community is still a kid?

    I don’t see any serious(adavced programming) tutorial for WP.

    Drupal is way ahead of WP in this regard.

  • http://kovshenin.com Konstantin

    Hey Jason, quick note. You write XAMPP as Xampp, but XAMPP is actually an abbreviation. The AMPP part stands for Apache, MySQL, PHP and Perl and the X probably means any operating system. It’s derived from the original LAMP (Linux) software stack where the last P is PHP, Perl or Python.

    Also, 60-80 minutes is way too much to get WordPress up and running ;)

    Cheers and happy holidays!
    ~ Konstantin

  • dj

    Several people have questioned about WAMP – actually, that was the first thing I thought of after the initial paragraphs when it became obvious that you weren’t going to mention it. Please at least comment about XAMPPs place/comparison/position in the world of local servers. Will it interfere with an established installation of WAMP, replace it? Do you feel it is better and worth changing? If so, why and how.

    And parenthetically, what happened to many of the word: “your” in the post – it looks as though a whole lot of them have been changed to “you” – problem with your spell-checker?

  • Ben

    Here is another trick that can go along with this article that I posted on ParishablePress.com.
    http://perishablepress.com/wordpress-multisite-subdomains-mamp/#comment-1246

    Read the instructions over there or feel free to add them to the article. Basically, it allows you to work in a local environment as if you were working live.

    Say for example you were developing a site called “widget.com”. You wouldn’t want to develop as “dev.widget.com” or some other name. You’d want to develop as “widget.com”.

    What I would do, is to create my database on the server. Next, create the same database locally. Then, setup my host file trick. Then, develop the site.

    By doing this, you will be developing as if you were already on “widget.com”. When you are finished, you should be able to transfer the site over to the live domain and only have to edit the username and password in the wp-config file.

    Without this trick, you will have to do “find and replace” throughout the database to fix the things you could have prevented in the first place. All your files, templates, links, everything should be correct.

    What do you guys think? Good idea or no?

  • Jason Witt

    OK, Let me set the record straight. Xampp, AMPP, InstantWP, etc, are just packages of software. Meaning they are not individual programs. These packages contain open source software. Mainly, Apache Server, PHP. MySQL, and phpmyadmin. All these packages do is copy the software on to your computer. They do some minor configuration, like setting up the DIR paths and permission, but that’s about it.

    It doesn’t matter what package you use. They’re all basically the same. If you want, you can “install” the software individually. The packages just “installs” them all for you. The only diffrence between them are any extras they include beyond the basics (Apache Server, PHP. MySQL, and phpmyadmin) and the actual install. I use Xammp because I think it has the most “Bang for your Buck”.

    It’s a choice of aesthetics not functionality. They all function the exact same way. Use any package you want just skip Steps 1 and 2, and follow your package’s install directions.

    I haven’t used all the different packages that have been listed here in the comments, but from what I understand. They’re all just point and click installs.

  • Rob Heath

    Cool. But what’s a good solution for Mac users?

  • Pingback: How to Setup a WordPress Development Environment for Windows | Wptuts+ | TechRetriever

  • Steveorevo

    ServerPress.com’s spin on XAMPP does Mac and Windows and automates all of this in just a few clicks. And it’s free. And you can copy entire WordPress sites, complete with plugins, themes, and their configurations in just a click.

    http://serverpress.com/products/desktopserver

    • http://www.howtostartablog.com Steven Chang

      Steve, I’ve checked out ServerPress.com and it’s s[l]ick! Install was simple, and Netbean seems to like it. Thanks!

  • Bella101uk

    I personally use MOWES for my test enviroment. Recommend you check it out

  • http://www.youtube.com/user/izvarzone AntoxaGray

    I’m using Denwer currently but wanna switch to xampp. I heard people said it’s better alternative.

  • Pingback: Debugging WordPress Themes and Plugins With Eclipse and Xdebug | Wptuts+

  • Pingback: Debugging WordPress Themes and Plugins With Eclipse and Xdebug | Wordpress Webdesigner

  • Pingback: Debugging WordPress Themes and Plugins With Eclipse and Xdebug | Shadowtek | Hosting and Design Solutions

  • Pingback: My Stream | Debugging WordPress Themes and Plugins With Eclipse and Xdebug | My Stream

  • Pingback: Debugging WordPress Themes and Plugins With Eclipse and Xdebug | How to Web

  • http://techiesindiainc.com/ Wordpress Development

    Just a question, Do this setup runs under all upgraded Windows versions. ?

    Thanks
    Bobby

  • Phil

    After running the Apache Virtual Hosts exactly like you have in your tutorial, everything shut down. My localhost was initially denied, but now it is just a bad request. What gives?

  • Yahia

    Great tutorial – Just adding a samll tips here:
    if you find error on “Step 6 Installing WordPress” on “wp-cofig.php” file change the define(‘DB_USER’, to root and keep the password blank.

  • http://www.howtostartablog.com Steven Chang

    Any suggestion as to what editor to use to facilitate debugging? I’m considering Eclipse.

  • Pingback: So it begins.. again! | FrameCounters.com

  • Pingback: Frame Counters

  • Pingback: Web Dev 101 | FC News

  • http://www.facebook.com/bcloring Robert Loring

    I have successfully installed XAMPP but the Apache Server will not start it is telling me that Port 80 is in use? I’ve tried everything to free up that port but nothing is working? Please help if you can?