Héberger vos applications PHP sur plateformes...
Transcript of Héberger vos applications PHP sur plateformes...
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/
• 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
• 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 :
• 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
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
OSTC : un peu d'histoire …
Commencé en 2004
2 ordinateurs
une seule personne
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
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
Des résultats ?
• 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 ?!
Et prochainement …
• 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
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 !
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
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
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
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!
Architecture du Handler FastCGI
FastCGI process pool for PHP5
IIS Worker Process FastCGI protocol over named pipes or TCP / IP
Request queue
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
Présentation de PHP sur IIS
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
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
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
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”
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
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
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, ...)
Présentation de Web Platform Installer 2.0
Démonstration WebPI
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
• Vidéo en Smooth HD avec Silverlight
• Et possibilité de streaming (IIS Media Pack)
Pour aller plus loin …
• 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
• 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
Une plateforme, une seule adresse
http://www.microsoft.com/web
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..