Deploying Joomla! to the cloud using the Windows Azure Companion

Author: Jas Sandhu

Date: Friday, February 11, 2011, 12:00:00 AM

Tags:

Table of Contents

IMPORTANT NOTE - July 13, 2011

The Windows Azure Companion was an experimental tool to provide a simple experience installing and configuring platform-elements (PHP runtime, extensions) and web applications on Windows Azure. Preliminary feedback on this tool has informed the creation of a new set of tools to deploy applications to Windows Azure - available at http://azurephp.interopbridges.com/downloads

-----------------------------------------------------------------------------------------------------
THE FOLLOWING CONTENT IS NO LONGER CURRENT. REFER TO THE LINK IN NOTE ABOVE

Recommended pre-read

clip_image001+clip_image002

Joomla! 1.6 recently released and I thought it would be a good idea to install in on our cloud services platform using the Windows Azure Companion to get a Joomla! instance out to the cloud in a few easy steps and give an overview on the features available with this great Content Management tool and the Windows Azure platform

Downloading the Windows Azure Companion

The Window Azure Companion is hosted on the MSDN Code Gallery, and when you visit the project site, and click the Downloads tab, you'll see the download options shown below (as of the December 2010 CTP)

clip_image003

There are different Virtual Machines (VMs) of a Windows Azure cloud service which you can quickly upload within a provisioned Azure account. If you don't have an Azure account, you can find the current availableoffers here . ; In the current (December 2010 CTP) downloads there are two small sized VMs with and without security (https). There is also the companion source so that you can assemble your own VM if you need a larger size or need to modify the underlying plumbing.

We will be using the VM prepackaged option (WindowsAzureCompanion-SmallVM-Dec2010CTP.zip). Click on the link and you will be given the following windows for you to accept the license and download.
Click on "I agree"
clip_image004

You will then get a "File Download" window, Click "Open"
clip_image005

You will then get a window with the status of the file download and you will see the "Internet Explorer Security" window asking you for permission to open the file. Click on "Allow"
clip_image006

A window showing the contents of a temporary folder, similar to the one below will open. In this window you may see the following files. The first is ServiceConfiguration.cscfg file which contains a service configuration XML document for the service and compiled code, in the WindowsAzureCompanion.cspkg file. There is also a .txt document with the License for the code. Click on "Extract all files"

clip_image007

You will then get the following window and enter in a path to a directory you will drop the files in. Enter in the path, in my case the default downloads directory on Windows 7 for my account, in the text field labeled "Files will be extracted to this folder", make sure the checkbox "Show extracted files when complete" is selected and click the "Extract" button
clip_image008

You'll then see the folder you picked open up in a new window with the files you saw earlier,
clip_image009

You will then want to provision a storage account configured on Windows Azure. If you do not have one, then you will need to set one up and the article "How to Create a Storage Account" on MSDN will help you get started.

Before you deploy the service to Windows Azure, a few modifications to the ServiceConfiguration.cscfg file are required to be done.

You will want to specify the your Windows Azure storage account, I have named mine "wacompanion" and I copy and pasted the key that I set up when I created the storage account from above. I have redacted it for security and left it as ****** below, please use your own. You will find this in the "Windows Azure Storage Account Details" section

<!-- Windows Azure Storage Account Details. -->

<Setting name="WindowsAzureStorageAccountName" value="wacompanion" />

<Setting name="WindowsAzureStorageAccountKey" value="******" />

You will also have to set up an admin account for accessing the Windows Azure Companion once it's running. You will find this in the section labeled "Admin user name, password and e-mail". We'll just a simple username "root" and a strong password (something that contains, letters, numbers and symbols on your keyboard) of your own choosing. Replace ***** with yours

<!-- Admin user name, password and e-mail. Please use a good username and strong password -->

<Setting name="AdminUserName" value="root" />

<Setting name="AdminPassword" value="*******" />

Next we will be specifying a feed that indicates what applications are available to be installed. ; For this example, we will be using a feed that Maarten Balliauw has made available, but you can generate your own following the Windows Azure Companion Feed Schema. You will find the appropriate to do this in the "Atom Feed for Product items to be installed" section as per below.

<!-- Atom Feed for Product items to be installed. This URL should be internet addressable -->

<Setting name="ProductListXmlFeed" value="http://wazstorage.blob.core.windows.net/azurecompanion/default/WindowsAzureCompanionFeed.xml" />

Next, deploy your application to a new hosted service on your Azure account. ; If you need a refresher for this part, refer to the "To select a project and create a compute service" section of this walkthrough on MSDN, using the .cspkg we downloaded and the .cscfg file we just updated. ; Once it's deployed you can browse to it at port 8080 of whatever URL you specified when you set up the Azure hosted service (computing) instance. Make sure that the service is running too Jfor this tutorial the link may not work for you as I may have suspended or deleted the service. The diagram below is a good visual indicator that your service is running, namely that your "AdminWebSite" is "Ready" (It's green, rather than Yellow or Red).
clip_image010

Browse to your deployment, http://[yourservicename].cloudapp.net:8080. You'll be greeted with a welcome message via an ASP.NET MVC application; that message, by the way, is configurable via the ApplicationDescription setting in the ServiceConfiguration.cscfg. Upon logging in (via the link in the upper right), you'll have access to the other functionality of the Windows Azure Companion as well.

clip_image011

Click on the "Log On" button on the top right corner of the webpage where you will be prompted for the "User name" that you chose earlier and the "Password" too
clip_image012

Installing Joomla 1.6, PHP and some other open source applications!

Next we will be installing Joomla 1.6 and since it runs on PHP, the companion is aware of that prerequisite and will pick it up too unless however the feed we use does not have it in the product list (ProductListXmlFeed). Click on to the Applications tab, which here includes Joomla along with some other popular Open Source PHP packages. Click on the "Joomla 1.6" checkbox and you'll also notice that "phpMyAdmin" (an open source management tool) will also get automatically checked. Click on the "Next" button to continue
clip_image013

The next screen prompts for some versioning information for Joomla along with similar requests for other prerequisites. ; I will be using Joomla version 1.6 (older versions may also be available), using the default paths and I will do so also for phpMyAdmin. Since this feed also requires the PHP runtime, and the MySQL database, those prerequisites also come along. Keep all the defaults and click on the "Accept" button to continue (you will be accepting all the licenses of the product)
clip_image014

While the applications are installing, you'll see progress messages appear on the Admin tab of the Windows Azure Companion site. ; Those messages, by the way, are also recorded to the Windows Azure Storage account you configured in the .cscfg file.

clip_image015

clip_image016

Upon completion, the applications will show as installed (check box, greyed out) and ready to launch.

Configuring MySQL for use with Joomla

We will now want to configure a database in MySQL, We will use the phpMyAdmin tool. Click on the "Launch" button. clip_image017

On the next screen, leave "Server" blank, "root" for the Username and "adminadmin" for the Password.

clip_image018

You'll next see the dashboard. We'll first change the password for security. Click on "Change password"
clip_image019

I recommend a strong password (something that contains letters, numbers and keyboard symbols) but somewhat easy to remember

clip_image020

You will get a message, "The profile has been updated". Click on the "Back" link to continue

clip_image021

You will need to login again using your new password. In the dash, in "Create new database", enter in the name of your preferred database, I am calling mine "Joomla". Next click the "Create" button.

clip_image022

You will receive a message that the "Database Joomla has been created" with a green check mark next to it

clip_image023

Configuring Joomla

From the Windows Azure Companion Application Tab, click on the "Launch" button for Joomla!
clip_image024

You will then be presented with an option to "Select Language", then click "Next"

clip_image025

For the "Pre-Installation Check", accept the defaults and not the recommended settings, and then click "Next"

clip_image026

Accept the "License" by clicking "Next"

clip_image027

You may enter in your "Username", we used "root" and the "Password" you chose earlier. For the "Database Name" enter "Joomla", accept the defaults and click on the "Next" button.

clip_image028

We will skip the "FTP Configuration" by clicking the "Next" button

clip_image029
You can then set a "Site Name" of your preference and include additional information for the Admin of the site, including setting the "Admin Username", "Admin Password" and the "Admin Email" to help you reset your password in case you forget and not have to reconfigure later.

clip_image030

You now have an active Joomla 1.6 usable installation

clip_image031

Removing the Joomla Installation Directory

A security feature of Joomla! as you may have already noted, is to have you cleanup your "Installation Directory" before your site is useful. For that we will launch the "eXtplorer" File Manager from the Windows Azure "Applications" tab.
clip_image032

We'll login using the defaults, use "admin" for "Username" and "Password"
clip_image033

Since these are the defaults you will be prodded to change it. Click on "OK" to continue
clip_image034

Enter "admin" for the old password and set a "New password" of your own. Click the "Change" button to continue
clip_image035

We will now see a list of directories for the applications you have installed. Double-click on "joomla"
clip_image036

Next we will want to right-click on "installation" and select "Delete" to remove it.
clip_image037

Click on "Yes" to delete it
clip_image038

Now launch the Joomla! application from the Windows Azure Companion "Applications" tab or enter the URL in your web browser, http://[yourservicename].cloudapp.net/joomla. You should no longer see the security message that asks to remove the Installation folder.
clip_image039

Congratulations you're running Joomla! 1.6 on Windows Azure! For more information on Joomla please visit, http://joomla.org

Wrap Up

Joomla! and Window Azure work really well together and now it's easy to get it deployed. ;
You also have the opportunity of getting other of your favorite open source applications out on the cloud service. Please take some time to try them out and other content on

Please also check out the source code for the Windows Azure Companion, so check it out, add your own features, or contribute to the discussion on the MSDN Code Gallery.

What's next

 
blog comments powered by Disqus

Related Content

No related content was found