Set up WordPress in the Cloud on Windows Azure

“The Cloud” is a term that we use to describe a way of hosting and running websites and applications where we ship off our files and databases to whomever we choose and have all the worries of managing the details of hardware, operating systems, networks and datacentres managed for us by them. This way, the specialists at the cloud provider can focus on providing a high quality, scalable platform, and the customer can focus on developing and deploying their website or application.

There are many cloud providers and today we will look at the recently-refreshed Windows Azure from Microsoft.

Windows Azure

Azure is Microsoft’s cloud platform and runs on their datacentres all around the world. As a Microsoft product many web developers might shy away from Azure as an option with concerns it might not support non-Microsoft technologies or frameworks such as PHP, Node.js, Python, or Java – actually Azure supports all these and more; any operating system and any language.

Azure Splash Image

You can learn all about what Windows Azure offers on their “What is Windows Azure?” page, so I won’t go into detail here. Instead, we’ll look at a specific example, getting a WordPress website (build in PHP and usually run on Apache with MySQL) up and running on Windows Azure.

The first step is to set up an account on Azure, you’ll need a phone number and a credit/debit card (which will not be charged) to validate your account. They currently have a 3-month free trial, after that their prices seem very reasonable and like most cloud providers you only pay for what you use.

WordPress on Azure

Once you’re logged in, click on the “Manage” option in the navigation at the top of the screen and you’ll be taken to the page shown below.

The Azure manage page

From here, click on the “Sign in to the Management Portal” link on the left and you’ll be taken to the shiny, new Azure management app.

The first time you access it you’ll get a little tour, but eventually you’ll get to your dashboard, which will be empty and look something like this:

Azure dashboard (empty)

Just a side note: When I registered there was a short wait before the “web sites” option (which we will be using below) was available to me; just a couple of hours.

Choose the “web sites” option on the left and click “create a web site”.

Azure new website screen

Choose the “from gallery” option, highlighted above, and then find the WordPress option in the list of apps available.

Add WordPress from the app gallery

Click the “Next” arrow and choose your website’s URL; leave the database setting as “Create a new MySQL database”; and choose the region closest to you (or your audience).

Configure the initial website settings

Click the “Next” arrow again and confirm your new MySQL database settings, then click the final “Next” icon to complete the process and Azure will begin deploying your new site.

Azure deploying the WordPress site

A few moments later and it will inform you that the deployment is complete, and the site is up and running.

Azure deploy successful

That’s it! Your WordPress site is now live and can be accessed at the URL you configured in the setup earlier; you can get there nice and quickly by clicking the “Browse” icon in the toolbar at the bottom of the Azure portal.

Configure WordPress

As this is WordPress, the first time you access it, it will ask you to complete the installation by making a few configuration choices.

WordPress setup

Click the “Install WordPress” button at the bottom to complete the setup and WordPress will show you a “Success!” message with a “Log In” button that will take you to your new WordPress admin login area. Enter your chosen WordPress username and password and log in to see your blog Dashboard.

WordPress dashboard

You’ll want to visit the Settings section using the menu bar on the left to tweak any final settings, but you’re all ready to go!

Configure Azure

With any hosted service you’re likely to want to be able to view usage statistics, configure FTP and publishing access, etc. So let’s switch back to Azure.

Set up FTP access

Click on the name of your new site in the Web Sites list and you’ll see a one-off startup page welcoming you and giving you some options for how to proceed.

Azure website startup screen

First off, let’s set up FTP access so that you can begin customising WordPress further with custom themes and plugins. Click on “Set up deployment credentials” under the “Publish your app” heading (if you’ve dismissed the welcome screen you can access this through the “Reset deployment credentials” option under the “quick glance” heading on the dashboard).

Azure publish credentials

Choose your username and password, click the tick to confirm and you’ll be sent back to the welcome screen with a success message.

Click the “Dashboard” option at the top of the Welcome screen and you’ll see your Azure website dashboard (you can get back to the welcome screen by clicking the cloud with a lightning bolt icon on the left of the dashboard option).

Azure website dashboard

Here you can see a wealth of usage information, as well as plenty of further configuration options. If you scroll down a little, you’ll find your FTP address on the right, under the “FTP hostname” heading. Use this along with the credentials you just set up and you can begin uploading to, and editing your, WordPress installation.

Publishing alternatives

If you use git as your source control you can configure Azure to have its own git repository for your website, which you can push updates to and it’ll build and deploy your changes automatically. Click the “Set up Git publishing” option to be guided through that.

Azure set up git

You also have the option of linking your site to TFS (Team Foundation Server) for publishing via that code-base, or you can download a publishing profile to load into Visual Studio to allow direct publishing from there.

To Conclude…

I’m really impressed with Microsoft’s cloud platform; Azure is beautifully designed with lots of thoughtful options and a clear user experience. Hopefully you’ll agree that setting up WordPress is a breeze, and it’s not the only option, Azure also has off-the-shelf installations of Drupal, Joomla and Umbraco in its gallery and I’m sure the list will continue to grow.

In the future I’ll be writing about deploying a custom .Net web application to Azure so keep an eye out for that!

12 thoughts on “Set up WordPress in the Cloud on Windows Azure

  1. Pingback: Ben Lobaugh Online » Developing for Windows Azure in WordPress

  2. Hi, I have a question. I’m new to WP and found the free trial for azure. Once I install WP, can I upload a WP template instead of using a default? Is this done via the Azure control Panel?

    Can I use a SQL server DB or must I use a MySql DB?
    Thanks

  3. Hi Danny, thanks for your questions!

    Yes, once you have installed WordPress, you can go to the Appearance > Themes section in the WordPress admin area to manage and install custom themes. You don’t need to use the Azure control panel for that.

    As for running WordPress from a SQL Server db, it might be a little fiddly, especially as the new Azure platform is quite new. But take a look at http://wordpress.visitmix.com/ they seem to have some good articles about how you might approach it.

    • Hi Mark, thanks for your question! Yes, once you’ve got your WordPress site set up, you should be able to transfer over your old site fairly smoothly.

      WordPress has an Import/Export feature, under the “Tools” menu in the admin area. If you Export “All content” from your old site and then import that into the new site. The import should give you the option of taking copies of any attached media and importing them into the new site’s library.

      Then all you should need to do is take a copy of the theme (and any widgets you were using) from the old site and copy them to the new site using FTP. They should show up in the new site’s Appearance and Plugins menus ready for you to enable.

  4. Thanks this was interesting since i usually thought windows and wordpress weren’t a good couple! But you cleared that up in the very first part.

    A few queries though: how do you point your domain to this WordPress installation? How does the cost of Azure to Amazon cloud hosting? Also does the Apache instance offer pretty permalinks?

    Would be nice to get a bit more in depth since that is the main advantage of creating your own server.

  5. Hey Luke,

    Thank you for posting this article, i really appreciate your writing.

    i am new to WordPress and Azure and I tried to do what you said about migrating my existing WordPress site to azure and it moved almost every thing but now i am missing most of my menus.

    What should i do? is there a way to restore them in any way? Besides doing it manually?

  6. Hey Luke, nice post. I have a question on pricing. My current site on azure will be designed as a portfolio to show case work. However I cant find any reasonable pricing examples for just the one simple website. I plan to create the front end using asp.net and link to wordpress for the details of my work done. So far it has been a breeze uploading the site to azure using VS2012 but my free trial will run out soon and I am really put off by the pricing… say for example I have maybe 10/50 clicks per month on my site (with no sql database) what kind of costs am I looking at?

    • Hi Garrith, thanks for the comment, I’m glad the post was helpful!

      For small sites, Azure is extremely cheap. You can host up to 10 websites without paying their per-site fee, and if you’re not having an SQL database then all you’ll pay for is bandwidth. If you’re expecting 10-50 visits per month then that should be under 1GB of bandwidth, which their calculator says will cost $0.

      So you should be able to run at pretty close to free even after your trial ends. Let us know how it goes!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>