Installer un blog WordPress sur Azure

Dans la lignée des quelques articles “cloud” dédiés à SQL Azure, voici un petit tutorial relativement simple qui permet de déployer un blog de type WordPress sur Azure. De manière plus générale, ce tutorial permet de déployer une solution PHP – SQL Server sur Azure.

Création de la base de donnée sur Azure:

En premier lieu il faut se connecter au portail azure et créer une nouvelle base de données.

imageimage

On va ensuite définir un login, depuis SSMS (Comment se connecter à une base de données SQL Azure depuis SSMS ?) qui sera utilisé pour se connecter à la base de données. D’un point de vue des droits, on va aller à l’essentiel, ceux ci pourraient être affinés : db_ddladmin, db_datareader, db_datawriter.

imageimageimageimage

Si vous souhaitez réaliser ces opérations par script, tenez compte du fait que l’ordre USE pour “changer” de base de donnée n’est pas autorisé ! Il vous faudra donc deux connexions, une vers la base virtuelle master afin de créer le login et ensuite une vers la base WordPress afin de créer et mapper le user.

-- ===============================================
-- Create SQL Login template for SQL Azure Database
-- ===============================================

CREATE LOGIN LoginWP 
	WITH PASSWORD = '' 
GO
-- =================================================
-- Create User as DBO template for SQL Azure Database
-- =================================================
-- For login loginWP, create a user in the database
CREATE USER userWP
	FOR LOGIN loginWP
	WITH DEFAULT_SCHEMA = dbo
GO

-- Add user to the database owner role
EXEC sp_addrolemember N'db_ddladmin', N'userWP'
EXEC sp_addrolemember N'db_datareader', N'userWP'
EXEC sp_addrolemember N'db_datawriter', N'userWP'
GO

Installation du site WordPress en local:

L’étape suivante consiste à déployer le site WordPress sur une machine de développement où IIS est installé. Les module prérequis pour installer WordPress seront automatiquement ajoutés lors de l’installation au travers du Web Installer, où comme ici, au travers de la page web Web App Gallery.

image Le plus simple consiste à se rendre sur la page Windows WebApp Gallery  et de sélectionner WordPress. L’assistant qui s’en suit permet d’installer tous les composants requis, y compris la base de données MySQL que l’on remplacera par MSSQL. Au travers de questions simples l’assistant vous permet de configurer IIS rapidement.
Je passe donc sur ces étapes sans grande importance.
image

Afin de pourvoir travailler avec Microsoft SQL Server, il est nécessaire d’installer une couche d’abstraction qui fera la “traduction” des ordres SQL. Pour cela, on télécharge le package WP Db Abstraction chez WordPress.

image

Dans le répertoire wp_content du site WordPress, créer un répertoire mu-plugings

image

Extraire le fichier Upload wp-db-abstraction.php et le répertoire wp-db-abstraction directory vers wp-content/mu-plugins.
Déplacer le fichier db.php du répertoire wp-db-abstraction.php directory vers wp-content.

image

Il faut aussi penser à installer les drivers d’accès à SQL Server depuis PHP. Le package d’installation se trouve à cette adresse. Extraire les fichiers dans le répertoire des extensions PHP.

image

On va aussi ajouter les références des drivers SQL Server en ajoutant des extensions dans le fichier php.ini.

image

Afin que le site WordPress prenne en compte la nouvelle base de données, on va simplement supprimer le fichier wp-config.php

image

Et aller sur la page
http://localhost/wordpress/wp-content/mu-plugins/wp-db-abstraction/setup-config.php
pour lancer l’assistant de configuration WordPress.
Laissez vous guider !

imageimage

Même s’il y a un problème d’écriture du fichier, il suffit de procéder manuellement comme indiqué.

imageimage

L’opération est terminée, on peut se connecter au portail d’administration et visiter le site en construction.

imageimageimageimage

Maintenant que tout fonctionne en local, il est temps de déployer le site sur une plateforme Azure.

Le déploiement d’une solution PHP sur Azure:

Pour déployer un site sur un serveur Azure, il suffit d’“empaqueter” le site dans un fichier. Nous allons donc créer ce fichier de déploiement.

image

Tout d’abord, il convient de télécharger ici le SDK pour Visual Studio 2010 afin de pouvoir développer des solutions “cloud”. Principalement pour utiliser cspack.exe.  Notez aussi que votre poste de développement doit avoir IIS 7.0 installé.

image

L’installation ne pose pas de problème particulier.
Je en vais pas détailler les écrans de cet assistant.

image

Ensuite, je vais m’appuyer sur la méthode décrite dans le blog de Karsten Januszewski. Je télécharge le fichier root.zip que j’extrait dans un répertoire temporaire.

image

Il est temps de recopier tous (j’ai bien tous) les fichiers présent dans le répertoire racine de votre site web, y compris les fichiers html, jpg et autres. Ne surtout pas essayer de supprimer quoi que ce soit non plus.

image

Afin de déployer un service sur Azure, il est nécessaire d’avoir un fichier de configuration et un fichier package.
En exécutant le fichier PackageCloud.cmd présent dans le répertoire root, le package sera généré. Eventuellement, vous pouvez customiser ce fichier.

image

Si vous le souhaitez, vous pouvez modifier le fichier ServiceConfig.cscfg afin de ne créer qu’une seule instance du site. Dans ce cas, un avertissement vous informe qu’en cas de défaillance du serveur sur lequel réside votre site, il n’y aura plus de tolérance de panne et votre SLA n’est plus garanti.
Par défaut, cette valeur est à 2 dans le modèle fourni.

image

Maintenant, direction le portail Windows Azure afin de créer un nouveau service hébergé.

image

Donnez un nom au service, saisissez l’URL qui vous permettra d’accéder à votre site et nommez votre déploiement.

Utilisez les boutons “Parcourir localement” afin de sélectionner le fichiers package et configuration qui sont présent dans le répertoire root.

Et c’est tout !

image

Enfin presque, il faut ensuite une bonne dose de patience pour attendre que le site soit déployé. Profitez en pour faire une pause café de plusieurs minutes !!!

image

Arghhhhh !

Il semble y avoir un petit soucis sur les chemins, les images sont attendues sur http://localhost/wordpress, mon URL de développement.

image

Un petit SELECT sur la table wp_options nous permet d’espérer que la modification ne soit pas trop compliquée !

image

Un UPDATE sur la colonne option_value pour ajuster les 2 paramètres avec les valeurs correspondant à votre environnement.
Le tour est joué.

image

Les liens fonctionnent, le thème est pris en compte, il ne reste plus qu’à poster des messages.
L’étape suivante consiste à déployer en production. Pensez alors à modifier les valeurs pour les valeurs SiteURL et Home dans la table wp_options.

Bilan:

Je vous l’accorde, cette solution n’est pas parfaite, mais elle permet de déployer rapidement un site web, un blog en l’occurrence, en profitant de ce que nous offre le Cloud, à savoir un service et une base de données hébergés, le tout assorti de la tolérance de panne.

Il est fort probable qu’il existe d’autres méthodes de déploiement encore plus simple. J’ai voulu éviter tout recours à de la programmation, à Visual Studio …

D’un point de vue configuration il reste bien des choses à faire. La configuration WordPress (email, etc…) n’est pas l’objet de cet article, utilisez votre moteur de recherche favori pour trouver de la matière.

Par contre, si vous voulez activer l’upload de documents, je pense qu’une solution élégante consisterait à activer un compte de stockage sur la plateforme Azure.

Bon blogs…

A propos Christophe

Consultant SQL Server Formateur certifié Microsoft MVP SQL Server MCM SQL Server 2008
Cet article, publié dans IIS, SQL Azure, est tagué , , . Ajoutez ce permalien à vos favoris.

Un commentaire pour Installer un blog WordPress sur Azure

  1. Ping : Amazon RDS : premiers pas | Christophe LAPORTE – Consultant SQL Server

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s