×

First time here?

You are looking at the most recent posts. You may also want to check out older archives. Please leave a comment, ask a question and consider subscribing to the latest posts via RSS or email. Thank you for visiting!

A few days ago, I saw someone posted on Twitter a question about running WordPress on Windows Server.  Since I had done this for a few sites, I responded with my thoughts and tips.  Another suggested that I post those here, and so here I go.

WordPress is a blogging/content-management platform that has been around for a while.  It has been gaining more in popularity for general purpose content sites over the past year I’d say, but is primarily seen as a blogging platform by most.  Even though I use Subtext for my platform, I have to admit that if I hadn’t already started using Subtext, it would be really hard to sway me away from WordPress.  It’s just the killer app for blogging.  Why?  Because of the immense ecosystem of people using it, there is pretty much a plethora of plugins, themes and tools for it.

WordPress is a PHP application and mostly used on Linux environments.  But guess what—PHP has been running on Windows for years.  In fact, our IIS team created a FastCGI implementation for IIS to make PHP applications even run better on Windows.  So here’s how I got started…

Install WordPress

First you obviously need to install the pieces.  I’m assuming here you have access to the actual server.  WordPress requires PHP, MySQL and the WordPress bits themselves.  You can certainly hunt around for those yourself, or you can use the Web Platform Installer from Microsoft and install WordPress on your box in about 15 minutes including download time.  No hunting for the right bits, no tinkering for the right configs.  Just install WebPI, select WordPress and go.  Honestly, this is the best way to get it started on Windows.

After installing you should be up and running with a starting site.  Login to complete the process.

Decide on your permalinks or ‘pretty/clean URLs’

Here’s the main issue with WordPress on Windows.  By default Windows 2003 is still using ISAPI filters to process requests.  What this means is that it needs something to trigger the subsystem it will use to render.  In this case it’s .php for the php files of WordPress – IIS then knows to use PHP to render the files/logic.

However because of this the default pattern of WordPress URLs on Windows 2003 will be <domain>/?page_id=12345.  For everything.  That isn’t very clean or friendly according to the SEO experts. 

Now if you are installing WordPress on Windows 2008 and IIS7 the following does not apply to you.  IIS7 actually has built-in support for this and WordPress current versions recognize IIS7 installs and do the appropriate configuration for you!!!

If you want your URLs to be like <domain>/my-cool-page-title-name then you’ll have to do some hacking.  You can do a ton of high-tech stuff including actual new ISAPI filters to do some URL rewriting.  I chose the low-tech way: 404 handler.  You see if someone requests <domain>/some-page-name IIS won’t be able to find it and will generate a 404 message.  Luckily YOU control that 404 message.  I use a very simple 404 handler that I found online and modified ever-so-slightly.  You can download mine here: wp-404-handler.renametophp.  Simply put this in your WordPress root folder with all the other PHP pages.  Now in IIS Manager you’ll want to configure the IIS site to use your new custom 404 handler. 

WordPress 404 Handler Config

Just click the current one, choose URL and then type /wp-404-handler.php in there and you’re good to go.  Now you can go to the Permalinks section of the WordPress admin and choose “friendly” URLs.  Here’s what I typically use:

WordPress Permalink Config

Now anytime someone requests a friendly URL it will actually hit your 404 handler first, determine the right place and render the content – but keep the friendly URL in tact to the user!

At this point you can close your remote server session – all other routine tasks can be done via the web admin console.

Find Awesome Plugins

Finding plugins is VERY easy in WordPress – it’s in the administrative console of the app:

WordPress Plugin Search

Search for what you want and you can install right from the admin console – no need for FTP and unzip, etc.  Here is a list of my default plug-ins that I install (all of which you can search via your WordPress installation for more details and to directly install):

  • Akismet – comment spam tool
  • All-in-One SEO pack – tools for enhancing your SEO metadata for your posts/pages
  • Contact Form 7 – a typical contact form engine
  • Google XML Sitemaps – an auto generator of sitemap.xml files for search engine indexing
  • Internet Explorer 6 Upgrade warning – you know, to support the death to IE6 cause :-)
  • Really Simple Captcha – for contact forms to prevent robots.
  • WPTouch iPhone Theme – if you want an iPhone friendly theme
  • Silverlight for WordPress – to embed any Silverlight XAP in a post/page
  • Silverlight Media Player for WordPress – uses the Silverlight Media Framework for embedding video or IIS Smooth Streaming content.

There are TONS more, but these are my default that I always put on every site first.  If you want Twitter and other types of integration, they are there…just search for them.  There are currently over 9,500 plugins to choose from…amazing!

Find Awesome Themes

Whatever you do, don’t skip this step.  Don’t keep the default WordPress theme – it’s like any other default user interface thing on any software…it sucks.  Like plugins, there are a plethora of places to get awesome themes.  Here’s my default go-to list:

  • WooThemes – these guys are sweet.  Their menu system is actually going to be a part of WordPress 3.  Most of their themes are premium paid themes, but they do have a few free.  If you want high quality, check out these guys.
  • Themeforest.net – a larger selection of theme from various user-contributed designers and developers.  These aren’t free either, but for < $40 you can have a great quality looking theme.
  • wpsnap.com – these are free themes with community licenses.  There are some gems in here, but most are lower quality compared to the previous two recommendations.
  • WordPress theme gallery – explorable from the WordPress admin page in your installation there are a few in here (some repeats from wpsnap.com).  Usually aren’t the best to be honest.  My favorite for a cleaner default look is Journalist – it’s very basic, but clean looking and professional.

There is no excuse to have a crappy looking WordPress site no matter if you have no money, doing a blog, doing a content-managed site, etc. No excuse.  Spend 30 minutes and find a good template.  Guess what, it installs from the web admin console as well!!!

Author Content

While WordPress uses a web-based interface for authoring content, it isn’t required.  Windows Live Writer understands the WordPress API for both posts and pages and can be used as a rich client tool for authoring content.  It’s awesome together and I use it exclusively to author content for my WordPress sites.

Gotchas for running on Windows 2003

Ok, while I’m sure there are others, I really only found one big gotcha while running WordPress on Windows 2003 (that shouldn’t apply to the IIS7/Windows 2008 installations).  This involves plugins that do form posting.  A good example is a PayPal plugin that is a complete shopping-cart for PayPal (yes it’s in the plugin gallery and free).  Most plugin developers assume your installation is likely Linux.  If this assumption is made, postbacks for some plugins might not work if you use the clean/friendly URL 404 handler I talk about above.

Each plugin is going to be different, but you’ll likely have to modify the post action of that plugin to point more directly to that index.php?page_id=XXXX where your content page is.  I’ve only had to do this twice and It’s relatively painless.  One thing to keep in mind though is that as plugins update (you are alerted in your web console if a new version exists), your changes will likely be overwritten, so document them!

Extend WordPress yourself!

Since I’m a Silverlight guy, I wanted to make sure there were some good Silverlight plugins in the gallery.  The plugin developer process is very PHP driven so if you don’t know that, follow the CASE methodology (Copy Always Steal Everything).  You can learn from others.  I created my WordPress plugins for Silverlight very quickly.

Microsoft is also doing more with WordPress through the MIX labs team.  Check out their information on http://wordpress.visitmix.com for other tips and how, if you want, to run WordPress on SQL Server as well!

Summary

WordPress is awesome.  WordPress on Windows is also awesome.  Windows 2003 takes an additional tweak, but other than that it is very simple to get running and take advantage of this ecosystem.  What other WordPress on Windows tips do you have?

Hope this helps!



This work is licensed under a Creative Commons Attribution By license.


5/12/2010 3:16 AM | # re: Running WordPress on Windows Server
Did you had any problems with file permissions after installed Wordpress via Web Platform Installer ?
5/12/2010 6:42 AM | # re: Running WordPress on Windows Server
Here is an interesting article about that publisherblog.automattic.com/.../wordpress-and-...
5/12/2010 9:26 AM | # re: Running WordPress on Windows Server
Aaron - wow...not sure what it could be. I'm not on Win2008 so I don't know for sure. I assume that you have the FastCGI implementation installed?

On my Win2003 my instances of PHP-CGI.exe aren't consuming CPU process at all really.
5/12/2010 11:11 AM | # re: Running WordPress on Windows Server
Aaron -- that sounds odd for sure. See if the folks on the IIS forums (iis.net) or wordpress.visitmix.com might have some pointers. Or ping @tommylee on twitter
6/14/2010 11:00 PM | # re: Running WordPress on Windows Server
Nice, but missing one important piece. Let's say I have the farm of 2 PHP server, with the same web site. If I upload image to one of them, it will not show up on another. I can't figure out how I can map one shared drive for the images, so both servers see them. Any input on this would be great!
12/5/2010 8:11 PM | # re: Running WordPress on Windows Server
+1 to James Collett's response. I have been trying endlessly to get my Contact Form 7 to work with SMTP plugin and keep getting a weird error. My test emails won't send and there so far hasn't been much support. I wish my client had a linux server!
Any tips on what to do for this error Tim?:

SMTP Error: The following SMTP Error: Data not accepted.
12/30/2010 3:19 PM | # re: Running WordPress on Windows Server
Thanks for the post. It provided the knowledge I needed to steer our company blog to Wordpress even though we're running in a WS 2003 .NET shop. Thanks!
1/23/2011 3:08 PM | # re: Running WordPress on Windows Server
Thank You!! :)
1/26/2011 10:50 PM | # re: Running WordPress on Windows Server
thanks!! thank you very much...
great post
2/1/2011 3:18 PM | # re: Running WordPress on Windows Server
Thanks, this page is what I needed to find to fix my "404" error after migrating from network solutions (terrible) a new provider, whom I like a lot, but only offers wordpress on a windows platform.
Gravatar
2/4/2011 11:43 PM | # re: Running WordPress on Windows Server
I installed everything just fine using the web platform installer, however whenever the install finishes and I click the link to open the word press page in IE, I get an HTTP 500 error.

What gives?

I've been trying and trying and trying to install this POS with both MySQL and SQL Server and I get nowehere every single time. I'm running Windows Server 2003 and have PHP 5.3 installed and configured correctly.

How the hell can I fix thsi POS software and just get it running?
Gravatar
2/9/2011 7:59 PM | # re: Running WordPress on Windows Server
Tim, installed the php file...Works ok except for my index.php. The homepage does not display and still gives me a 404...Changed 404 .2.3 to your code.

Any suggestions..What have I done wrong.
Gravatar
2/10/2011 8:52 PM | # re: Running WordPress on Windows Server
I look for such article along time,today i find it finally.this postgive me lots of advise it is very useful for me .i will pay more attention to you
seroquel online
zanaprin online
zovirax online
zyban online
asacol online
3/12/2011 5:59 AM | # re: Running WordPress on Windows Server
simple enough workaround. thx for sharing it. IMO allowing String.Format in data binding--instead 70-293 test of requiring an explicit converter 70-401 test class--is one of the elegant touches Microsoft added in SL4. I don't generally think 70-236 test about localizing apps created for my own learning/enjoyment/amusement but 70-450 test I will be more aware and culturally-sensitive from now on.
3/22/2011 4:48 PM | # re: Running WordPress on Windows Server
Tim, is there a way to contract you to install this on our windows 2003 server? thanks.
Gravatar
4/14/2011 5:22 AM | # re: Running WordPress on Windows Server
That looks pretty easy. Thank you for such detailed explanation. If you ever need <a href=:"http://www.bestessayhelp.com">custom essay, you can get a 7 % discount.
4/20/2011 12:28 AM | # re: Running WordPress on Windows Server
Search for what you want and you can install right from the admin console – no need for FTP and unzip, etc. k visit ad visit am visit u visit
4/24/2011 12:29 AM | # re: Running WordPress on Windows Server
high-tech stuff including actual new ISAPI filters to do some URL rewriting. I chose the low-tech way: 404 handler. You see if someone requests w visit
Gravatar
7/18/2011 6:54 PM | # re: Running WordPress on Windows Server
# People have greatly differing reasons for play, and styles of relationship. Don’t assume that anyone is poly, a swinger, or kinky.http://www.cardsnds.co.uk/24-r4-sdhc # Animal play (pony play, dog play, http://www.cardsnds.com/r4i-gold-3ds-card.html
etc.) is mainly about becoming the animal, in spirit. It is also about the power exchange with the trainer(s) and http://www.cardsnds.com/cyclods
other animals.
2/5/2012 1:05 AM | # re: Running WordPress on Windows Server
Can you please tell me what permissions and what users/groups should inherit them? I have a really big problem with the WordPress dashboard on Windows 2008 R2. I saw on WordPress Codex that I have to set permissions to 755, but what that means on Windows? Can you explain to me? I would greatly appreciate your help!
Gravatar
4/13/2012 5:29 AM | # re: Running WordPress on Windows Server
Hello,

Great post. One problem though. I did everything according to this post, but then Wordpress gave me this:

"If your .htaccess file were writable, we could do this automatically, but it isn’t so these are the mod_rewrite rules you should have in your .htaccess file. Click in the field and press CTRL + a to select all.

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>

I am not surte what should I do? I am running 2003 Windows server and instead of htaccess I have a web.config in my root folder. Has anyone had a similar problem?
5/11/2012 4:40 PM | # re: Running WordPress on Windows Server
This was SO helpful. Thank you so much. That 404 trick saved the day on a working Friday night!!
5/24/2012 9:26 AM | # re: Running WordPress on Windows Server
WordPress runs like crap on Windows, so why even bother?
9/6/2012 12:50 PM | # re: Running WordPress on Windows Server
It doesn't always run like crap. It can be a little trickier than a Linux set up, but it's certainly not impossible.

 
Please add 5 and 6 and type the answer here:

DISCLAIMER:

The opinions/content expressed on this blog are provided "ASIS" with no warranties and are my own personal opinions/content (unless otherwise noted) and do not represent my employer's view in any way.