Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web...

34
Framework PHP sous IIS Copix Framework (http://www.copix.org) Avertissement Dans le cadre de cet article, nous avons besoin d’un environnement complet de développement (PHP et MySQL sous IIS7). La mise en place de cet environnement est abordée dans deux autres articles : - « Web Platform Installer » pour l’installation de PHP sous IIS7 ; - « Drupal sous IIS » pour l’installation de MySQL sous Windows. Si votre environnement de développement doit posséder à la fois WAMP et IIS, vous pouvez consulter l’article « Faire cohabiter WAMP et IIS ». Préambule Dans cet article, nous allons faire passer vers IIS7 un site Internet développé avec le framework PHP « Copix ». Ce site est initialement hébergé par WAMP, au sein d’un environnement de développement, sur la base de la version 3.0.4 de Copix. Le site que nous avons utilisé présente simplement une liste de news. Création de la base de données Le site Internet développé avec le framework Copix que nous souhaitons migrer a évidemment besoin d’une base de données. Cette base de données s’appelle « copix ». Nous allons la créer en utilisant l’outil d’administration de MySQL (« MySQL Administrator »), normalement installé si vous avez consulté l’article « Drupal sous IIS ». Ajouter la base de données Pour cela, cliquez simplement sur la catégorie « Catalogs », puis faîtes un clic droit au sein de la zone inférieure droite (qui présente la liste des bases de données installées par défaut) et choisissez l’option « Create new schema ». Au sein de la boîte de dialogue qui apparaît, dans le champ « Schema name », nous indiquons Framework PHP sous IIS | Adenova 1 / 34

Transcript of Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web...

Page 1: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Framework PHP sous IISCopix Framework (http://www.copix.org)

AvertissementDans le cadre de cet article, nous avons besoin d’un environnement complet de développement (PHP et MySQL sous IIS7). La mise en place de cet environnement est abordée dans deux autres articles :

- « Web Platform Installer » pour l’installation de PHP sous IIS7 ;- « Drupal sous IIS » pour l’installation de MySQL sous Windows.

Si votre environnement de développement doit posséder à la fois WAMP et IIS, vous pouvez consulter l’article « Faire cohabiter WAMP et IIS ».

PréambuleDans cet article, nous allons faire passer vers IIS7 un site Internet développé avec le framework PHP « Copix ». Ce site est initialement hébergé par WAMP, au sein d’un environnement de développement, sur la base de la version 3.0.4 de Copix. Le site que nous avons utilisé présente simplement une liste de news.

Création de la base de donnéesLe site Internet développé avec le framework Copix que nous souhaitons migrer a évidemment besoin d’une base de données. Cette base de données s’appelle « copix ». Nous allons la créer en utilisant l’outil d’administration de MySQL (« MySQL Administrator »), normalement installé si vous avez consulté l’article « Drupal sous IIS ».

Ajouter la base de donnéesPour cela, cliquez simplement sur la catégorie « Catalogs », puis faîtes un clic droit au sein de la zone inférieure droite (qui présente la liste des bases de données installées par défaut) et choisissez l’option « Create new schema ». Au sein de la boîte de dialogue qui apparaît, dans le champ « Schema name », nous indiquons « copix ». Si le nom de votre base de données est différent, remplacez évidemment « copix » par ce qui convient. Le principal, c’est que le nom de la base de données reste le même que l’original.

Peupler la base de donnéesPour être le plus efficace possible, nous allons effectuer un « dump » de notre base de données originale pour ensuite injecter les contenus dans la base de données de destination, celle qui sera utilisée par IIS. Pour cela, accéder au binaire « mysqldump.exe » présent dans l’arborescence du dossier d’installation de WAMP.

Pour créer le fichier SQL contenant l’ensemble des données à migrer, utilisez la commande :

mysqldump –u root copix > copix.sql

Framework PHP sous IIS | Adenova 1 / 29

Page 2: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Bien sûr, il faut remplacer « copix » par le nom réel de votre base de données. A la suite de cette commande, un fichier « copix.sql » a été généré. Il contient toutes les données utiles au fonctionnement du framework Copix et de notre site.

Nous allons ensuite utiliser « MySQL Administrator » pour injecter les données dans notre nouvelle base de données. Pour cela, sélectionner la catégorie « Restore », cliquez ensuite sur le bouton « Open Backup File », choisissez le fichier SQL que nous venons de générer et activez les options comme ci-dessous.

Framework PHP sous IIS | Adenova 2 / 29

Page 3: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Comme nous avons déjà créé la base de données de destination, il faut vous assurer que l’option « Another schema » est activée et que son nom apparaisse bien.

Comme le fichier SQL n’a pas été généré par « MySQL Administrator », des erreurs pourraient être signalées. Pour ne pas en tenir compte, activez aussi l’option « Ignore Errors ».

Pour vérifier que toutes les données ont correctement été ajoutées, nous allons utiliser « MySQL Query Browser ». Utilisez toujours les mêmes paramètres de connexion et n’oubliez pas de renseigner le champ « Default Schema », en y indiquant le nom de la base de données de destination.

En cliquant, dans la zone latérale droite, sur le nom de notre base de données, nous pouvons vérifier que l’ensemble des tables nécessaires ont bien été créées.

Framework PHP sous IIS | Adenova 3 / 29

Page 4: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Création du site

Création de l’aliasNous allons maintenant procéder à la création de l’espace web. Il faut d’abord créer un dossier qui va contenir l’ensemble des sources de notre site Internet.

Il est possible de créer ce dossier à l’emplacement de votre choix. Dans notre cas, nous allons utiliser le dossier « C:\work\web\news.copix.org ». Pour tester, nous y plaçons un simple fichier index.php qui contient un appel à phpinfo() :

<?phpphpinfo();?>

Pour créer l’alias « copix » au sein d’IIS, nous allons utiliser le « Gestionnaire des Services Internet ». Quand le gestionnaire est initialisé, déplier l’arborescence de la zone latérale gauche jusqu’à voir la liste des sites. Dans la liste des sites, faîtes un clic droit sur « Default Web Site », puis sélectionnez l’option « Ajouter une application ».

Framework PHP sous IIS | Adenova 4 / 29

Page 5: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

La boîte de dialogue ci-dessous apparaît alors :

Indiquez alors l’alias, puis dans le champ « Chemin d’accès physique », le dossier dans lequel nous allons placer notre site Internet. Validez en cliquant sur le bouton « OK ».

Pour visualiser le contenu de ce nouveau site, il suffit de faire un clic droit sur l’application « copix » que nous venons de créer, toujours au sein de la zone latérale gauche du « Gestionnaire de Services Internet ». Choisissez alors l’option « Gérer une application », puis « Parcourir ». Une fenêtre s’ouvre alors au sein de votre navigateur par défaut. Normalement, vous devriez voir l’écran ci-dessous.

Framework PHP sous IIS | Adenova 5 / 29

Page 6: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Installation du siteDans cette étape, nous allons copier les fichiers sources de notre site Internet au sein de notre arborescence web, celle vers laquelle l’application « copix » pointe.

La première chose à faire est de supprimer le fichier « index.php » qui contenait l’appel à phpinfo().

Framework PHP sous IIS | Adenova 6 / 29

Page 7: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Nous récupérons ensuite la totalité de l’arborescence et des fichiers du framework Copix pour en faire une copie au sein du dossier « C:\work\web\news.copix.org ».

L’arborescence du framework Copix place le Front Controller « index.php » dans un dossier « www ». Il faut donc modifier la configuration de notre application « copix » sous le « Gestionnaire des Services Internet ». Pour cela, il faut faire un clic droit sur l’application « copix », sélectionner la commande « Gérer une application » puis « Paramètres avancés… ». Dans la boîte de dialogue qui s’ouvre, modifier l’entrée « Chemin d’accès physique » pour y ajouter « www ».

Framework PHP sous IIS | Adenova 7 / 29

Page 8: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Après avoir validé, il vous suffit d’actualiser le contenu de votre page http://localhost/copix/, au sein de votre navigateur.

Vous devriez voir l’affichage ci-dessous :

Le framework Copix, depuis sa version 3, a obligatoirement besoin de la couche d’abstraction aux bases de données PDO. Nous allons donc maintenant voir comment installer et activer les extensions PDO nécessaires.

Framework PHP sous IIS | Adenova 8 / 29

Page 9: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Installation et activation d’extensions pour la prise en compte de PDO

Récupération des fichiersSous IIS, les extensions PHP sont gérées par des fichiers *.dll. Nous devons donc premièrement récupérer les fichiers *.dll dont nous avons besoins pour activer PDO.

Nous avons plusieurs fichiers *.dll à récupérer : le fichier « php_pdo.dll », qui assure l’abstraction centrale, ainsi qu’un fichier pour chaque base de données à prendre en compte. Comme notre site Internet utilise actuellement MySQL, il nous faut obligatoirement « php_pdo_mysql.dll ». Plus loin dans cet article, nous allons migrer les données vers SQL Server, il nous faut donc aussi récupérer le fichier « php_pdo_mssql.dll ».

Ces fichiers sont inclus dans les distributions de PHP pour Windows que vous pouvez télécharger à l’URL http://windows.php.net/downloads/releases/php-5.2.9-2-nts-Win32-VC6-x86.zip.

Dès que le fichier a été téléchargé, vous pouvez le décompresser au sein d’un dossier temporaire, puis aller dans le dossier « ext », qui contient tous les fichiers *.dll de la distribution. Repérer et sélectionner les fichiers « php_pdo.dll », « php_pdo_mysql.dll » et « php_pdo_mssql.dll » pour les copier dans le dossier d’installation de PHP, au sein du dossier « ext ». Dans notre cas, le chemin complet d’accès à ce dossier est « C:\Programs Files\PHP\ext ».

Framework PHP sous IIS | Adenova 9 / 29

Page 10: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Pour activer la prise en compte de ces nouveaux fichiers *.dll, il faut également éditer en mode administrateur le fichier « php.ini » présent dans le dossier d’installation de PHP. Pour cela, nous allons simplement utiliser le Bloc-notes de Windows. Pour qu’il soit exécuté en mode administrateur, dans la liste des programmes installés, nous effectuons un clic droit sur « Bloc-notes » et nous choisissons l’option « Exécuter en tant qu’administrateur ».

A partir du Bloc-notes, nous ouvrons le fichier « php.ini » contenu dans le dossier « C:\Programs Files\PHP » et nous y ajoutons à la fin les trois lignes ci-dessous :

extension=php_pdo.dllextension=php_pdo_mysql.dllextension=php_pdo_mssql.dll

Nous enregistrons le fichier « php.ini ».

Framework PHP sous IIS | Adenova 10 / 29

Page 11: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Pour que ces modifications soient prises en compte, nous devons redémarrer IIS. Nous utilisons pour cela le « Gestionnaire des Services Internet ». Dans la zone latérale gauche, sélectionnez le nom de votre ordinateur, puis cliquez en haut à droite sur le lien « Redémarrer ».

Pour tester que tout fonctionne correctement, actualisons la page http://localhost/copix au sein de notre navigateur et nous cliquons sur le lien « Actualités ». Nous obtenons le résultat qui suit :

Framework PHP sous IIS | Adenova 11 / 29

Page 12: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Et voilà ! Nous avons migré en quelques étapes notre site Internet réalisé avec le framework Copix, de WAMP vers IIS7, grâce à Web Platform Installer.

Nous allons maintenant procéder à la migration des données sous SQL Server Express 2008.

Migration des données vers SQL Server Express 2008

Installation de SQL Server Express 2008Avec Web Platform Installer, rien de plus facile ! A partir du « Gestionnaire de Services Internet », il faut double cliquer sur l’icône « Web Platform Installer ».

Framework PHP sous IIS | Adenova 12 / 29

Page 13: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Il suffit ensuite d’activer les coches correspondant à « SQL Server Express 2008 » et « SQL Server 2008 Management Studio Express ». Elles se trouvent dans la catégorie « Web Platform », au sein de la zone « Database ». En cliquant sur le lien « customize » de cette zone, vous trouverez les options attendues.

Framework PHP sous IIS | Adenova 13 / 29

Page 14: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Cliquez sur le bouton « Install », puis acceptez les conditions d’utilisation. Web PI demande ensuite un mot de passe pour l’administrateur de SQL Server Express 2008. Renseignez comme ci-dessous.

Framework PHP sous IIS | Adenova 14 / 29

Page 15: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Web PI procède alors au téléchargement des fichiers nécessaires à l’installation de SQL Server Express 2008. Le téléchargement et l’installation prenne plusieurs minutes. A la fin de l’installation, si cela est demandé, redémarrez votre ordinateur.

Création de la base de donnéesNous allons maintenant créer la base de données « copix » au sein de SQL Server Express 2008. Pour cela, nous allons utiliser l’outil de gestion associé : « Microsoft SQL Server Management Studio ». Dans la liste de vos programmes, dans le dossier « Microsoft SQL Server 2008 », il faut sélectionner « Microsoft SQL Management Studio ».

Nous indiquons simplement le mot de passe. Pour éviter de devoir le faire systématiquement, nous cochons l’option « Remember password ».

Dans la zone supérieure gauche, nous faisons un clic droit sur « Databases » puis nous choisissons l’option « New Database… ». Nous renseignons la boîte de dialogue qui s’affiche comme ci-dessous :

Framework PHP sous IIS | Adenova 15 / 29

Page 16: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Pour paramétrer l’encodage de la base de données, il faut cliquer à gauche sur « Options » et choisir dans le menu « Classement » la valeur « SQL_Latin1_General_CP1_CI_AS ».

Nous validons en cliquant sur le bouton « OK ». Notre base de données est maintenant créée, comme nous le montre l’illustration qui suit :

Framework PHP sous IIS | Adenova 16 / 29

Page 17: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Génération d’un fichier SQLPour assurer la création des tables et l’intégration des données au sein de la base de données « copix » que nous venons de créer, nous avons besoin d’un fichier SQL. Nous allons générer ce fichier SQL grâce à l’outil « MySQL Administrator ».

Pour cela, lancez « MySQL Administrator » que vous trouvez normalement dans le dossier « MySQL » de la liste de vos programmes. Indiquez le mot de passe, puis cliquez sur « OK ». Dans la zone supérieure gauche de l’outil, choisissez « Backup » :

Ensuite cliquez en bas à droite sur le bouton « New Project », puis donnez le nom « export » au projet. Sélectionnez ensuite toutes les tables de la base de données « copix » :

Framework PHP sous IIS | Adenova 17 / 29

Page 18: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Dans le panneau « Advanced Options », activez les options comme dans l’illustration ci-dessous puis cliquez sur le bouton « Execute Backup Now ».

Framework PHP sous IIS | Adenova 18 / 29

Page 19: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Pour plus de simplicité, prenez soin de nommer votre fichier SQL « export.sql ». Placez-le dans le dossier de votre choix.

Modification du fichier SQLLes requêtes SQL de MySQL et de SQL Server n’étant pas parfaitement compatibles, nous allons procéder à quelques modifications à l’intérieur de notre fichier SQL généré.

Ouvrez donc le fichier « export.sql » dans votre éditeur préféré pour y apporter les modifications ci-dessous :

- Supprimez toutes les guillemets doubles qui encadrent les noms des tables et des champs ;- Supprimez les deux lignes ci-dessous (elles se trouvent plutôt au début du fichier) :

CREATE DATABASE IF NOT EXISTS copix;USE copix;

- Complétez le chemin d’accès aux tables en ajoutant devant tous les noms des tables l’information ci-dessous (ceci doit être fait pour les requêtes CREATE TABLE et INSERT) :

copix.dbo.nomdematable1

- Supprimer toutes les mentions ci-dessous (elles se trouvent toutes derrière les déclarations de création de table) :

Framework PHP sous IIS | Adenova 19 / 29

Page 20: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

TYPE=MyISAM;

- Supprimer également les mentions (si elles existent, elles suivent toujours la déclaration du type des tables) :

AUTO_INCREMENT=X;

Il est important de vérifier que les fins de déclaration de création de table (CREATE TABLE) se terminent toujours bien par un point-virgule.

- Si des champs sont déclarés en AUTO_INCREMENT, remplacez cette mention par IDENTITY ;- Si des champs sont déclarés en UNIQUE KEY nom (champ), remplacez cette mention par

CONSTRAINT nom UNIQUE(champ) ;- Supprimer toutes les définitions de longueur des champs INT ou TINYINT (par exemple

INT(11) doit devenir simplement INT) ;- Dans les requêtes INSERT, supprimer tous les champs et valeurs associées qui sont définis en

IDENTITY ;- Protéger les champs qui portent des noms réservés pour SQL Server par des crochets. Les

champs concernés sont dans notre cas :o user qui doit devenir [user] ;o file qui doit devenir [file] ;

- Doubler les éventuels guillemets droits simples présents dans les contenus des champs de type TEXT ou VARCHAR (par exemple, si on a comme texte : ‘Le Web 2.0 est l\’extension...’ », alors il doit devenir : ‘Le Web 2.0 est l’’extension...’) ;

- Supprimer les éventuels \r\n présents dans les contenus des champs de type TEXT ou VARCHAR ;

- Supprimer tous les commentaires placés au début du fichier, avant la première requête SQL (les suivantes ne devraient pas poser de problème).

Notre fichier est prêt pour être importé dans SQL Server Express 2008.

Création des tables et des donnéesNous allons maintenant créer les tables et les données dans SQL Server Express 2008 en utilisant notre fichier SQL modifié.

Si l’outil « Microsoft SQL Server Management Studio » n’est pas lancé, lancez-le, indiquez le login « sa » et le mot de passe associé.

Dans la zone latérale gauche, déployez la liste des bases de données, et faîtes un clic droit sur la base de données « copix ». Choisissez l’option « Nouvelle requête », puis faîtes un copier – coller du contenu du fichier « export.sql » que nous venons de modifier dans la partie centrale qui apparaît.

Framework PHP sous IIS | Adenova 20 / 29

Page 21: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Dans le menu « Affichage », « Barres d’outils », vérifiez que « Editeur SQL » soit coché. Pour envoyer les requêtes SQL au serveur, cliquez sur le bouton « Exécuter ».

L’ensemble des tables et des données nécessaires au fonctionnement du framework Copix et à l’affichage de la liste et des détails de nos news sont maintenant placées au sein de notre base de données « copix » sur SQL Server Express 2008.

Il nous reste à configurer le nouveau profil de base de données dans Copix, puis à tester notre site Internet.

Framework PHP sous IIS | Adenova 21 / 29

Page 22: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Configuration de Copix

Création d’un profil de base de donnéesLe framework Copix propose une interface d’administration de profils de bases de données. Nous allons l’utiliser pour ajouter un nouveau profil qui correspondra à l’accès à nos données hébergées dans la base de données « copix », mais sous SQL Server Express 2008.

Si nous accédons à l’interface d’administration de Copix, puis à la configuration des bases de données et que nous essayons d’ajouter notre nouveau profil de base de données, nous observons que Copix ne propose pas pour l’instant le driver « pdo_mssql » dont il a besoin pour accéder à des données positionnées dans un SQL Server.

ASTUCE : SI DES ERREURS PHP DE TYPE « NOTICE » S’AFFICHENT EN ACCÉDANT À LA PAGE DE CONFIGURATION DES PROFILS DE BASES DE DONNÉES, POUR LES MASQUER, IL FAUT S’ASSURER QUE LES DIRECTIVES SUIVANTES SOIENT PARAMÉTRÉES COMME CI-DESSOUS (N’OUBLIEZ PAS DE REDÉMARRER IIS POUR QUE CES MODIFICATIONS SOIENT PRISES EN COMPTE) :

display_errors = Offlog_errors = Off

Rendre active l’extension PDO_MSSQLSi nous affichons à nouveau la page de notre phpinfo(), nous voyons en effet que ni l’extension MSSQL, ni l’extension PDO_MSSQL ne sont présentées. Seul le driver MySQL pour PDO est activé.

Framework PHP sous IIS | Adenova 22 / 29

Page 23: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Pourtant, plus haut dans cet article, nous avons bien récupéré et placer les fichiers .dll nécessaires et activé la prise en compte des extensions souhaitées dans « php.ini ».

Sous IIS, pour que les accès à une base de données MSSQL soient possibles, il faut ajouter un fichier supplémentaire dans le dossier d’installation de PHP. Pour plus d’informations, vous pouvez consulter l’URL http://fr2.php.net/manual/fr/mssql.requirements.php.

Nous allons récupérer ce fichier « ntwdblib.dll » pour le placer dans « C:\Programs Files\PHP ». Ce fichier est présent dans la version « Thread Safe » de la distribution de PHP pour Windows.

IMPORTANT : IL EST ESSENTIEL DE CONSERVER LA VERSION « NON THREAD SAFE » DES FICHIERS .DLL DE NOS EXTENSIONS (COMME NOUS L’AVONS FAIT PLUS HAUT DANS CET ARTICLE). NE REMPLACEZ DONC SURTOUT PAS CES FICHIERS PAR LEUR VERSION « THREAD SAFE » : CELA PROVOQUERAIT UNE ERREUR IIS.

Pour télécharger la version « Thread Safe » de PHP pour Windows, accédez à l’URL http://windows.php.net/downloads/releases/php-5.2.9-2-Win32-VC6-x86.zip, décompressez l’archive dans un dossier temporaire, puis faîtes un copier – coller du fichier « ntwdblib.dll » dans le dossier d’installation de PHP (dans notre cas : « C:\Programs Files\PHP »).

A l’aide du « Gestionnaire des Services Internet », redémarrez le serveur IIS et consultez à nouveau la page du phpinfo().

Framework PHP sous IIS | Adenova 23 / 29

Page 24: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Activation du profil de connexion pour SQL ServerNous allons maintenant pouvoir activer le profil de connexion pour SQL Server. Retournons dans l’administration de Copix, puis dans l’interface de configuration des bases de données. Nous voyons que désormais le driver « pdo_mssql » est disponible.

Nous créons donc le nouveau profil de base de données pour SQL Server avec les informations ci-dessous :

- Nom : « sqlserver » ;- Driver : « pdo_mssql » ;- Chaîne de connexion : « dbname=copix;host=my-pc » (remplacer « my-pc » par le nom réel

de votre ordinateur) ;- Utilisateur : « sa » ;- Mot de passe : « monmotdepasse » (celui que vous avez indiqué à l’installation de SQL Server

Express 2008 avec Web PI).

Cliquez sur le bouton « Tester » pour vérifier que la connexion à la base de données « copix » de SQL Server se fait correctement, indiquez que ce nouveau profil de connexion doit être celui par défaut, puis validez le tout en cliquant sur le bouton « Enregistrer ».

Suppression des requêtes non géréesEn nous connectant à notre site Internet pour consulter la liste des news, nous avons obtenu une première erreur retournée par Copix :

Framework PHP sous IIS | Adenova 24 / 29

Page 25: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Une CopixDBException est levée car une requête n’est pas compatible avec SQL Server. Cette requête est celle qui permettait d’assurer que toutes les transactions avec MySQL se faisaient au format UTF-8. Nous allons simplement la mettre en commentaire. Nous avons donc ouvert le fichier :

default.actiongroup.php

qui se trouve dans le dossier :

project\modules\public\stable\standard\news\

de l’arborescence de Copix.

Et nous mettons en commentaire la L. 21 :

function beforeAction() {CopixHTMLHeader::addCSSLink(_resource('news|css/news.css'));// _doQuery('SET NAMES utf8;');

}

Correction du driver PDO pour SQL ServerSi on teste à nouveau notre liste de news de notre site Internet, le framework Copix nous a retourné l’erreur ci-dessous :

Attribut « name » obligatoire dans une balise « property »

Framework PHP sous IIS | Adenova 25 / 29

Page 26: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Pour corriger ce problème, il a fallu que nous intervenions sur la classe de Copix en charge de la gestion du driver « PDO_MSSQL ». Nous avons donc ouvert le fichier :

CopixDbConnection.pdo_mssql.class.php

qui se trouve dans le dossier :

utils\copix\db\drivers\pdo_mssql\

de l’arborescence de Copix.

Nous y avons apporté les modifications ci-dessous :

- L. 160, ajout du code :

$arTypes = array('text' => 'string', 'int' => 'int', 'varchar' => 'varchar');

Ce code est un array qu’il conviendra sans doute de renseigner davantage dans le cadre d’autres projets, afin que le driver PDO_MSSQL de Copix gère des types de champs supplémentaires.

- Après L. 179, ajout du code :

$p_result_line->name = $result_line->Field;if (isset ($arTypes[$result_line->type])) {

$p_result_line->type = $arTypes[$result_line->type];} else {

throw new CopixDBException ("Le type " . $result_line->type . " n'est pas

Framework PHP sous IIS | Adenova 26 / 29

Page 27: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

reconnu.");}

- Suppression de l’ancienne L. 180 :

$p_result_line->type = $result_line->type;

Correction de la définition des DAOAprès avoir modifié ce fichier, nous avons rencontré une autre erreur, liée à la classe Copix de définition des DAO :

Champs de table étrangère manquants pour la propriété dans la définition de la DAO body

Pour corriger ce problème, il faut modifier un autre fichier :

CopixDAODefinition.class.php

qui se trouve dans le dossier :

utils\copix\dao\

de l’arborescence de Copix.

La modification apportée est celle-ci :

- L. 562, remplacement complet de la ligne par le code :

Framework PHP sous IIS | Adenova 27 / 29

Page 28: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

$this->fkTable = isset ($params['fktable']) && trim($params['fktable']) != '' ? $params['fktable'] : null;

Correction de l’encodageEn testant à nouveau notre site, nous avons observé des problèmes d’encodage des chaînes de caractères. En effet, l’encodage original était « UTF-8 » ; or, nous avons choisi pour SQL Server un encodage de type « Latin1 ». Les pages de notre site Internet continuant de s’afficher en UTF-8, la correspondance n’est donc plus bonne.

Pour corriger rapidement ce problème, nous avons simplement ouvert les templates de notre modules « news » et placé devant les chaînes de texte à afficher l’appel à la fonction utf8_encode().

Ainsi, au sein de notre template « news.list.php » chargé d’afficher la liste des news, la ligne :

<dt <?php echo ($i == 0)?'class="first"':''; ?>><?php print $news->title; ?></dt>

a été remplacée par :

<dt <?php echo ($i == 0)?'class="first"':''; ?>><?php print utf8_encode($news->title); ?></dt>

Le résultatEt voilà le résultat !

Framework PHP sous IIS | Adenova 28 / 29

Page 29: Framework PHP sous IISdownload.microsoft.com › ... › 3.copix-sous-IIS.docx · Web view« Web Platform Installer » pour l’installation de PHP sous IIS7 ; « Drupal sous IIS

Framework PHP sous IIS | Adenova 29 / 29