héberger vos applications php sur plateformes...

36
Héberger vos applications PHP sur plateformes Microsoft William Bories Architecte Infrastructure Junior http://william.danstoncloud.co m/

Upload: others

Post on 06-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Héberger vos applications PHP sur plateformes Microsoft

William Bories Architecte Infrastructure Junior

http://william.danstoncloud.com/

Pierre Couzy Architecte en Système d'information

http://blog.couzy.com/

Page 2: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

• Introduction • Notre travail autour de l'Open Source

• L'Open Source Technology Center

• Quelques projets

• L'infrastructure Web Microsoft pour PHP

• Un travail de fond sur IIS

• FastCGI et PHP

• Web Platform Installer

• Conclusion

Agenda

Page 3: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

• Existe depuis une décennie

• 84% des 6,4 millions de développeurs PHP utilisent Windows comme environnement de développement

Introduction

PHP sur Windows :

Page 4: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

• Introduction

• Notre travail autour de l'Open Source • L'Open Source Technology Center

• Présentation de quelques projets

• L'infrastructure Web Microsoft pour PHP

• Un travail de fond sur IIS

• FastCGI et PHP

• Web Platform Installer

• Conclusion

Agenda

Page 5: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

3 objectifs simples :

I. Impliquer (et s’impliquer dans) les Communautés

II. Garantir le bon fonctionnement des projets sur les OS Windows

III. Proposer des améliorations sur la plateforme Windows

L'Open Source chez Microsoft ?

L'Open Source Technology Center

Page 6: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

OSTC : un peu d'histoire …

Commencé en 2004

2 ordinateurs

une seule personne

Page 7: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

L'OSTC : aujourd'hui

• Hébergé à Redmond

• Composé d’experts en logiciels libres et Linux

• Tests d'interopérabilité des logiciels libres avec des technologies Windows

• Tests de performances de Windows et de la stack des logiciels libres

Page 8: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Redmond Open Source Lab

• Plus de 400 serveurs de différents types (Gumstix, Intel, AMD, Blades, clusters HPC clusters et des machines IBM P6)

• La disponibilité de plus de 340 distributions Linux

• La plus haute densité de calcul de tous les laboratoires de Microsoft Redmond

Page 9: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Des résultats ?

Page 10: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

• En collaboration étroite avec la Communauté.

• Publication du code source sur CodePlex avec une licence OSI approuvée (http://sqlsrvphp.codeplex.com/).

• Lecture et écriture SQL Server depuis tout script PHP et compatible avec SQL Server 2005 et 2008 (et la version express).

• Différents projets PHP qui supportent le driver SQL Server : ADOdb, Web Calendar, etc.

• A terme, un driver PDO.

Un driver SQL Server pour PHP ?!

Page 11: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Et prochainement …

Page 12: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

• Introduction

• Notre travail autour de l'Open Source

• L'Open Source Technology Center

• Présentation de quelques projets

• L'infrastructure Web Microsoft pour PHP • Un travail de fond sur IIS

• FastCGI et PHP

• Web Platform Installer

• Conclusion

Agenda

Page 13: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Plate-forme Web Windows pour PHP

• Application: PHP

• DB: Microsoft® SQL Server® 2008

• Serveur Web: Internet Information Services (IIS) 7.0 / 7.5

• OS: Windows Server® 2008 / 2008 R2

Et c'est possible dans le Cloud avec Windows Azure !

Page 14: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Industrialiser une « distro » PHP

• Certains binaires avaient 12 ans d’âge..

Des librairies hétérogènes

• Certaines librariries n’existaient qu’en format binaire, d’origine ou de licence inconnue.

Code source indisponible

• Les librairies n’avaient pas suivi les bonnes pratiques de sécurité depuis 10 ans pour certaines

Pas de mises à jour de sécurité

• Avec aucune MAJ, générélement les fonctionnalités ne sont pas implémentées sur Windows

Pas de parité fonctionnelle

• Le processus de build est exhaustif et automatisé.

Recompilation de chaque binaire

• Gestion de sécurité et de fonctionnalités à parité stricte avec les autres plateformes, puisqu’on s’appuie sur une souche commune de source

Gestion des dépendances

• On peut désormais exploiter des outils modernes d’optimisation de efaçon transversale puisque tout le source est synchronisé.

Retour au source

Page 15: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

IIS 7.0 / 7.5 et son architecture modulaire

• Une nouvelle architecture modulaire permet d’améliorer la sécurité, la performance et la fiabilité.

• Le serveur Web IIS 7.0 / 7.5 complet contient plus de 45 modules.

0

5,000

10,000

15,000

20,000

25,000

30,000

17,603

20,359

27,829

Requêtes par seconde

Complet

Défaut

Minimal

Page 16: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Fonctionnalités exploitables par PHP

Fonctionnalités IIS 7.0 / 7.5

ISAPI / CGI Oui

FastCGI Oui

Configurer la page d'accueil par défaut Configuration déléguée à un fichier XML

Exécuter plusieurs versions de PHP Oui

Redéfinition des handlers au niveau de l'URL

Oui (possibilité d'exécuter différentes versions de PHP pour différentes applications PHP ou sites Web)

Support de Windows Core Server Oui

Utiliser des modules managés de PHP (tels que le Forms Authentication)

Oui

Page 17: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Windows Server Core

Un serveur Web sur un système d'exploitation épuré • Une option d’installation du serveur qui réduit:

• La maintenance • La gestion du serveur • La surface d’attaque • L’utilisation de l’espace disque

• IIS 7.5 : support de .NET et prise de main à distance à travers le

gestionnaire IIS

• PHP fonctionne sur du Server Core et cela depuis Windows Server 2008!

Page 18: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Architecture du Handler FastCGI

FastCGI process pool for PHP5

IIS Worker Process FastCGI protocol over named pipes or TCP / IP

Request queue

Page 19: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Etapes d'installation de PHP sur IIS

Copy binaries

• Utiliser l’archive d’installation de PHP

• Ou télécharger l’installer PHP

Configure php.ini

• fastcgi.impersonate = 1

• cgi.fix_pathinfo = 1

• open_basedir = “C:\Websites\”

Configure IIS

• Activer CGI

• Configurer le handler mapping de FastCGI pour *.php

• Changer les paramètres de FastCGI

Test that it works

• C:\php\php-cgi.exe –info

• Ou http://localhost/phpinfo.php

Page 20: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Présentation de PHP sur IIS

Page 21: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Configuration recommandée !

App Pool #1 (user1)

Web site #1

FastCGI Process Pool

… …

App Pool #2 (user2)

Web site #2

FastCGI Process Pool

App Pool #N (userN)

Web site #N

FastCGI Process pool

Page 22: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Faites évoluer votre offre pour PHP

• Support des versions PHP 4.X et 5.X

Permettre aux clients de choisir leur version de PHP

• Activer l'hébergement d'applications PHP qui requièrent la modification du php.ini

Fournir à votre client la flexibilité de changer la configuration PHP

• Utilisation du module URL rewrite pour implémenter le support des sous-domaines

Activer facilement les sous-domaines

• Exposer une série d'outils IIS pour créer et tester les règles de "rewrite"

Fournir les fonctionnalités URL rewriting

Page 23: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Multiples version de PHP

App Pool #1 (user1)

Web site #1

Process Pool for PHP 5

App Pool #2 (user2)

Web site #2

Process Pool for PHP 4

C:\PHP526\php-cgi.exe

C:\PHP447\php.exe

Page 24: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Configuration PHP par site

App Pool #1 (user1)

Web site #1

Process Pool #1

App Pool #2 (user2)

Web site #2

Process Pool #2

PHPRC=“C:\inetpub\website1\”

PHPRC=“C:\inetpub\website2”

Page 25: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Configuration PHP par site

<system.webServer> <handlers accessPolicy="Read, Script"> <add name="PHP via FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\PHP\php-cgi.exe|-d my.website=website2" resourceType="Unspecified" requireAccess="Script" /> </handlers> </system.webServer>

Référence au pool du processus FastCGI [CheminComplet]|[Arguments]

Configurer le Handler Mapping

Page 26: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Gérer l'utilisation du CPU

• Windows Server Resource Manager (WSRM)

• Disponible sur toutes les versions de Windows Server 2008

• Assure que le processus a au moins le percentage de CPU configuré

• Eviter les “kicks”, uniquement si la charge de CPU est supérieur à 70%

• L’équipe IIS l’a testé avec 4000 sites web

Page 27: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Présentation de Web PI 2.0

• Un outil permettant d’installer et de personnaliser : • Un serveur Web IIS

• Des Frameworks et des runtimes (.NET / PHP)

• Des bases de données (SQL Server, MySQL)

• Des outils (Visual Web Developper 2008, Silverlight 3 Tools for VS)

• Et des applications Web (disponibles sur le Windows Web App Gallery):

• Blogs (BlogEngine, Word Press, DasBlog, …)

• Wikis, Galleries et des outils (RessourceBlender.NET)

• CMS (DotNetNuke, Drupal, SilverStripe, ...)

Page 28: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Présentation de Web Platform Installer 2.0

Page 29: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Démonstration WebPI

Page 30: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Windows Cache Extension 1.0 for PHP

PHP Connectivity to Windows Azure

Word and Excel reading and writing

Windows Live services

Collaboration étroite avec les Communautés autour des applications populaires

Ce qui arrive prochainement avec PHP

Page 32: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

• Introduction

• Notre travail autour de l'Open Source

• L'Open Source Technology Center

• Présentation de quelques projets

• L'infrastructure Web Microsoft pour PHP

• Un travail de fond sur IIS

• FastCGI et PHP

• Web PI

• Conclusion

Agenda

Page 33: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

• Microsoft a fait les efforts nécessaires pour que la plateforme Windows soit une plateforme solide

• Plate-forme Web unique pour héberger vos applications .NET et PHP

• Web PI, outil pour vous simplifier le déploiement d'une solution complète

Conclusion

Page 34: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Une plateforme, une seule adresse

http://www.microsoft.com/web

Page 35: Héberger vos applications PHP sur plateformes Microsoftdownload.microsoft.com/documents/France/MSDAYS/...Fonctionnalités exploitables par PHP Fonctionnalités IIS 7.0 / 7.5 ISAPI

Quelques liens à retenir :

MSDN : http://msdn.microsoft.com/ TechNet: http://technet.microsoft.com/ Php 5.3 Builds : http://windows.php.net FastCGI : http://iis.net/php SQL Driver natif pour PHP: http://codeplex.com/sql2k5php Web PI : http://www.microsoft.com/web/ Blogs..