Héberger vos applications PHP sur plateformes...
Transcript of Héberger vos applications PHP sur plateformes...
![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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/1.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/2.jpg)
• 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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/3.jpg)
• 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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/4.jpg)
• 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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/7.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/10.jpg)
• 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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/12.jpg)
• 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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/22.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/23.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/24.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/25.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/26.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/27.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/28.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/29.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/30.jpg)
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 31: 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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/31.jpg)
• Vidéo en Smooth HD avec Silverlight
• Et possibilité de streaming (IIS Media Pack)
Pour aller plus loin …
![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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/32.jpg)
• 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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/33.jpg)
• 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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/34.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042408/5f236c0e711a7d527e271a39/html5/thumbnails/35.jpg)
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..