PHP on Windows
PHP on WindowsMaarten Balliauw – RealDolmenE-mail: maarten.balliauw@realdolmen.comBlog: http://blog.maartenballiauw.beTwitter: @maartenballiauw
Who am I?Maarten BalliauwAntwerp, Belgiumwww.realdolmen.comFocus on webASP.NET, ASP.NET MVC, PHP, Azure, VSTS, …MVP ASP.NETInterested in interoperabilityPHPExcel, PHPLinq, Windows Azure SDK for PHP, ...http://blog.maartenballiauw.behttp://twitter.com/maartenballiauw
AgendaWhy PHP matters…An overview of initiativesPHP core developmentFastCGIWinCache extensionSQL Server driver for PHPMicrosoft Web Platform InstallerSDK’sToolingSEO Optimization ToolResourcesQ&A
Why PHP matters…Web applicationsWordpressDrupalJoomlaphpBBMediaWikiSugarCRMGallery2Commercial entitiesYahoo!FlickrDiggFacebookYouTubeWikipedia Hard to ignore!
PHP on WindowsIf PHP matters, better make it a first-class citizen…
Microsoft and the PHP CommunityBeforeNow
http://windows.php.net
PHP 5.3 on WindowsIs the most significant update to PHP on Windows!All libraries updated to latest versions(in some cases newer versions that used on Linux)Re-write of the build system from scratchTop PHP Windows community programmer working for Microsoft (Pierre Joye)Build with VS 2008Available in 32 and 64 bit versionCreated windows.php.net99% of all POSIX calls changed to native Windows calls
By the numbers: Running PHPBench looped 5xBoth computers are a HP 8 core (2 procs x Quad core) 16gb ram.Linux (Centos 5.2) vs. Windows Server 2008 x86NOTE: phpbench onlytests internal PHP engineperformance. It doesnot do IO of any kind.
FastCGI on IISHow and where will my application run?
PHP on Windows – HistoryIIS support has been there for a long timeApache runs on Windows as wellBut…IIS gives best performance on WindowsUnfortunately the choice was always between stability and performance…
Allow me to explain…
And along came improvement!
FastCGI
DemoFastCGI on IIS
IIS execution pipelineSince your PHP app is part of the IIS execution pipeline……you can use IIS URL rewriting…you can use IIS as a load balancer (ARR)www.viprive.com…you can use any HttpModule out thereASP.NET membership / authenticationOutput caching…
WinCache extensionMaking it even faster…
Windows Cache Extension (“WinCache”)PHP module for 5.2 and 5.3IIS specific PHP acceleratorSo only works in IIS!No code modifications needed in your applicationCache layers:Bytecode cache – Caches compiled PHP scriptsScript cache – Cache script sources in memory to reduce I/O access and UNC file share accessRelative file path cache – Caches relative file pathSession cache – Sessions stored in shared memoryPHP functions to obtain information about the cache statushttp://www.iis.net/download/WinCacheForPhp
DemoWinCache extension
SQL Server Driver for PHPData access should be fast as well!
SQL Server Driver for PHP v1.1PHP extension for WindowsSo only works on Windows!Reliable, scalable and fast integration with SQL Server for PHPRelies on the Microsoft SQL Server Native Client to communicate with SQL Server.http://bit.ly/cwDLR1
“Did you just forgetto mention PDO support?”
No, there is no PDO support. Oh, wait!Unless you want the new CTP bits!SQL Server Driver for PHP v2.0 CTPSupport for PHP Data Objects (PDO)Better UTF-8 supportExample: Drupal 7 on SQL Serverhttp://www.commerceguys.com/about/news/drupal-7-sql-server-previewhttp://bit.ly/cjGvO3
Here are your options!
DemoSQL Server Driver for PHP
Microsoft Web Platform Installer“Yum for Windows”?
Easy installation of YOUR environmentEasy installer providingPlatform installation (IIS, extra modules, configuration, …)Both ASP.NET and PHPApplication installationBoth ASP.NET and PHPhttp://microsoft.com/web
DemoWeb Platform Installer
SDK’sWhat else is out there?
Microsoft and PHP = LOTS of goodiesSome highlights…SQL Server Reporting Services SDK for PHPOData SDK for PHPWindows Azure Tools for EclipseWindows Azure SDK for PHPAppFabric SDK for PHPWindows Azure Command-Line Tools for PHPEclipse Tools for SilverlightInformation Cards for PHPInternet Explorer Webslices and Accelerators for PHPPHP and SilverlightSQL CRUD ApplicationWizard for PHP Toolkit for PHP and Bing MapsOverview: http://www.interoperabilitybridges.com/
SQL Server Reporting Services SDK for PHPSSRS?Reporting tool in SQL ServerVery powerful!Various output formatsCan be linked to MySQL, PostgreSQL, …API to interoperate with SQL Server Reporting ServicesList available reports within a PHP applications,Provide custom parameters from a PHP web form,Manage the rendering of the reports within a PHP applicationhttp://ssrsphp.codeplex.com
OData SDK for PHPOData?Open Data ProtocolUnlock your data and free it from silos that exist in applications todayBuilds on HTTP, AtomPub and JSONRESTful interfaceWay data is delivered in MS CN “Dallas”API to ODataGenerate proxy classes to OData feedsCRUD on OData feedshttp://odataphp.codeplex.com/
OData SDK for PHP/* connect to the OData service  */   $svc = new NorthwindEntities(NORTHWIND_SERVICE_URL);/* get the list of Customers in the USA +the list of Orders */    $query = $svc->Customers()                 ->filter("Country eq 'USA'")                 ->Expand('Orders');    $customerResponse = $query->Execute();/* get only CustomerID and CustomerName */    $query = $svc->Customers()                 ->filter("Country eq 'USA'")                 ->Select('CustomerID, CustomerName');    $customerResponse = $query->Execute();/* create a new customer */    $customer = Customers::CreateCustomers('channel9', 'CHAN9');    $proxy->AddToCustomers($customer); /* commit the change on the server */            $proxy->SaveChanges();
Windows AzureMicrosoft’s Cloud Computing offeringWeb/worker role (= virtual machine)Blobs, tables, queues, drives (= storage)SQL Azure (= +/- SQL Server)AppFabric (= access control & firewall punching)“Dallas” (= Data-as-a-Service)Working with PHPWindows Azure Tools for EclipseWindows Azure SDK for PHPAppFabric SDK for PHPWindows Azure Command-Line Tools for PHPZend Framework contribution
ToolingHow do I use all this?
Microsoft Expression Web
Windows Azure Tools for Eclipse
Silverlight Tools for Eclipse
SEO Optimization Tool
What’s in the cloud?ResourcesWhere can I learn more?
ResourcesMicrosoft Windows Azure Interophttp://www.microsoft.com/windowsazure/interop/InteropBridgeshttp://www.interoperabilitybridges.com/
SummaryPHP on Windows is a priority for MicrosoftFull range of PHP support Products and ServicesAttract more customers to the MS platform through world-class support and resources Microsoft wants you to succeed
QuestionsPossibly Answers

More Related Content

PPTX
Php On Windows
PDF
Joe Staner Zend Con 2008
PPT
Php Asp Net Interoperability Rc Jao
PPTX
PHP konferencija - Microsoft
PDF
Costruire applicazioni multi-tenant e piattaforme SaaS in PHP con Innomatic
PPTX
PDF
Refactoring to a Single Page Application
PDF
POX to HATEOAS: Our Company's Journey Building a Hypermedia API
Php On Windows
Joe Staner Zend Con 2008
Php Asp Net Interoperability Rc Jao
PHP konferencija - Microsoft
Costruire applicazioni multi-tenant e piattaforme SaaS in PHP con Innomatic
Refactoring to a Single Page Application
POX to HATEOAS: Our Company's Journey Building a Hypermedia API

What's hot (20)

PDF
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
PDF
WordPress REST API v2: Overview & Exploring
PPTX
Php & mysqli in urdu
PPTX
Introduction to ASP.NET
PDF
The web - What it has, what it lacks and where it must go - Istanbul
PPTX
Presentation php
PDF
Rapid Development With CakePHP
PDF
WordCamp Finland 2015 - WordPress Security
PPSX
Advanced PHP Web Development Tools in 2015
PPT
PHP Project PPT
PPT
Developing Java Web Applications
PPTX
Integrate any Angular Project into WebSphere Portal
PDF
Low-Code Testing Tool
PDF
Tech talk live alfresco web editor [compatibility mode]
PDF
Alfresco Tech Talk Live-Web Editor - 3.3
PPTX
WordPress Structure and Best Practices
PDF
URL Design
PDF
Modern Web Application Development Workflow - EclipseCon US 2014
PPT
Java script Tutorial - QaTrainingHub
PPT
Introduction to Alfresco Surf Platform
WordCamp Birmingham 2016 - WP API, What is it good for? Absolutely Everything!
WordPress REST API v2: Overview & Exploring
Php & mysqli in urdu
Introduction to ASP.NET
The web - What it has, what it lacks and where it must go - Istanbul
Presentation php
Rapid Development With CakePHP
WordCamp Finland 2015 - WordPress Security
Advanced PHP Web Development Tools in 2015
PHP Project PPT
Developing Java Web Applications
Integrate any Angular Project into WebSphere Portal
Low-Code Testing Tool
Tech talk live alfresco web editor [compatibility mode]
Alfresco Tech Talk Live-Web Editor - 3.3
WordPress Structure and Best Practices
URL Design
Modern Web Application Development Workflow - EclipseCon US 2014
Java script Tutorial - QaTrainingHub
Introduction to Alfresco Surf Platform

Viewers also liked (12)

PPT
Twitter
PDF
Booster 2016 - How to Conduct a Design Critique - Ram Yoga and Tor Anders Dybing
PDF
Paper - New opportunities in lightweight spread tow fabrics (STF)
PPTX
Jessica Atkinson’S Illustration Portfolio 1
PDF
Use Crowdsourcing to Develop and Enhance Your Content [Slide Show]
PPTX
Piedmont parent education series dion lim
PPTX
Progetto "Facebook & Salute" - Informazioni sull'alcool
PPTX
African wild dog
PPT
Davidoff бриф доп
PDF
Presentatie LSV Joeri van Steenhoven
PDF
OkiTracki(Distribution Logistics)
PPTX
Tweer Education
Twitter
Booster 2016 - How to Conduct a Design Critique - Ram Yoga and Tor Anders Dybing
Paper - New opportunities in lightweight spread tow fabrics (STF)
Jessica Atkinson’S Illustration Portfolio 1
Use Crowdsourcing to Develop and Enhance Your Content [Slide Show]
Piedmont parent education series dion lim
Progetto "Facebook & Salute" - Informazioni sull'alcool
African wild dog
Davidoff бриф доп
Presentatie LSV Joeri van Steenhoven
OkiTracki(Distribution Logistics)
Tweer Education

Similar to PHP on Windows (20)

PPTX
PHP on Windows and on Azure
PPTX
Wordpress on Windows
PPTX
phpbenelux - Microsoft & PHP (Web Platform Installer, Bridges and Azure)
PPTX
Rev it up with php on windows
PDF
Windows Loves Drupal
PPTX
Microsoft WebsiteSpark & Windows Platform Installer
PPTX
Developing Php Applications Using Microsoft Software And Services
PPTX
Windows Server and Fast CGI Technologies For PHP
PPTX
Windows Loves drupal
PPTX
Microsoft+PHP: Make Web Not War
PPTX
Running PHP In The Cloud
PDF
Webfest 2011 PHP on Windows by Rama Yurindra
PPT
Wordpress On Windows
PPTX
Just another Wordpress weblog, but more cloudy
PPT
PHP on Windows - What's New
PDF
Integrating PHP With System-i using Web Services
PPT
PHP and MySQL
PPTX
PHP Enhancement with Windows Server 2008
PPTX
PHP and FastCGI Performance Optimizations
PDF
Php Performance On Windows
PHP on Windows and on Azure
Wordpress on Windows
phpbenelux - Microsoft & PHP (Web Platform Installer, Bridges and Azure)
Rev it up with php on windows
Windows Loves Drupal
Microsoft WebsiteSpark & Windows Platform Installer
Developing Php Applications Using Microsoft Software And Services
Windows Server and Fast CGI Technologies For PHP
Windows Loves drupal
Microsoft+PHP: Make Web Not War
Running PHP In The Cloud
Webfest 2011 PHP on Windows by Rama Yurindra
Wordpress On Windows
Just another Wordpress weblog, but more cloudy
PHP on Windows - What's New
Integrating PHP With System-i using Web Services
PHP and MySQL
PHP Enhancement with Windows Server 2008
PHP and FastCGI Performance Optimizations
Php Performance On Windows

Recently uploaded (20)

PDF
Build Real-Time ML Apps with Python, Feast & NoSQL
PPTX
AQUEEL MUSHTAQUE FAKIH COMPUTER CENTER .
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PDF
Identification of potential depression in social media posts
PDF
The AI Revolution in Customer Service - 2025
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PPTX
Information-Technology-in-Human-Society.pptx
PDF
Decision Optimization - From Theory to Practice
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
EIS-Webinar-Regulated-Industries-2025-08.pdf
PDF
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PPTX
Blending method and technology for hydrogen.pptx
PDF
Connector Corner: Transform Unstructured Documents with Agentic Automation
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
PDF
substrate PowerPoint Presentation basic one
Build Real-Time ML Apps with Python, Feast & NoSQL
AQUEEL MUSHTAQUE FAKIH COMPUTER CENTER .
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
Identification of potential depression in social media posts
The AI Revolution in Customer Service - 2025
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
Information-Technology-in-Human-Society.pptx
Decision Optimization - From Theory to Practice
Lung cancer patients survival prediction using outlier detection and optimize...
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
Co-training pseudo-labeling for text classification with support vector machi...
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
EIS-Webinar-Regulated-Industries-2025-08.pdf
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
Blending method and technology for hydrogen.pptx
Connector Corner: Transform Unstructured Documents with Agentic Automation
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
substrate PowerPoint Presentation basic one

PHP on Windows

  • 2. PHP on WindowsMaarten Balliauw – RealDolmenE-mail: [email protected]: http://blog.maartenballiauw.beTwitter: @maartenballiauw
  • 3. Who am I?Maarten BalliauwAntwerp, Belgiumwww.realdolmen.comFocus on webASP.NET, ASP.NET MVC, PHP, Azure, VSTS, …MVP ASP.NETInterested in interoperabilityPHPExcel, PHPLinq, Windows Azure SDK for PHP, ...http://blog.maartenballiauw.behttp://twitter.com/maartenballiauw
  • 4. AgendaWhy PHP matters…An overview of initiativesPHP core developmentFastCGIWinCache extensionSQL Server driver for PHPMicrosoft Web Platform InstallerSDK’sToolingSEO Optimization ToolResourcesQ&A
  • 5. Why PHP matters…Web applicationsWordpressDrupalJoomlaphpBBMediaWikiSugarCRMGallery2Commercial entitiesYahoo!FlickrDiggFacebookYouTubeWikipedia Hard to ignore!
  • 6. PHP on WindowsIf PHP matters, better make it a first-class citizen…
  • 7. Microsoft and the PHP CommunityBeforeNow
  • 9. PHP 5.3 on WindowsIs the most significant update to PHP on Windows!All libraries updated to latest versions(in some cases newer versions that used on Linux)Re-write of the build system from scratchTop PHP Windows community programmer working for Microsoft (Pierre Joye)Build with VS 2008Available in 32 and 64 bit versionCreated windows.php.net99% of all POSIX calls changed to native Windows calls
  • 10. By the numbers: Running PHPBench looped 5xBoth computers are a HP 8 core (2 procs x Quad core) 16gb ram.Linux (Centos 5.2) vs. Windows Server 2008 x86NOTE: phpbench onlytests internal PHP engineperformance. It doesnot do IO of any kind.
  • 11. FastCGI on IISHow and where will my application run?
  • 12. PHP on Windows – HistoryIIS support has been there for a long timeApache runs on Windows as wellBut…IIS gives best performance on WindowsUnfortunately the choice was always between stability and performance…
  • 13. Allow me to explain…
  • 14. And along came improvement!
  • 17. IIS execution pipelineSince your PHP app is part of the IIS execution pipeline……you can use IIS URL rewriting…you can use IIS as a load balancer (ARR)www.viprive.com…you can use any HttpModule out thereASP.NET membership / authenticationOutput caching…
  • 19. Windows Cache Extension (“WinCache”)PHP module for 5.2 and 5.3IIS specific PHP acceleratorSo only works in IIS!No code modifications needed in your applicationCache layers:Bytecode cache – Caches compiled PHP scriptsScript cache – Cache script sources in memory to reduce I/O access and UNC file share accessRelative file path cache – Caches relative file pathSession cache – Sessions stored in shared memoryPHP functions to obtain information about the cache statushttp://www.iis.net/download/WinCacheForPhp
  • 21. SQL Server Driver for PHPData access should be fast as well!
  • 22. SQL Server Driver for PHP v1.1PHP extension for WindowsSo only works on Windows!Reliable, scalable and fast integration with SQL Server for PHPRelies on the Microsoft SQL Server Native Client to communicate with SQL Server.http://bit.ly/cwDLR1
  • 23. “Did you just forgetto mention PDO support?”
  • 24. No, there is no PDO support. Oh, wait!Unless you want the new CTP bits!SQL Server Driver for PHP v2.0 CTPSupport for PHP Data Objects (PDO)Better UTF-8 supportExample: Drupal 7 on SQL Serverhttp://www.commerceguys.com/about/news/drupal-7-sql-server-previewhttp://bit.ly/cjGvO3
  • 25. Here are your options!
  • 27. Microsoft Web Platform Installer“Yum for Windows”?
  • 28. Easy installation of YOUR environmentEasy installer providingPlatform installation (IIS, extra modules, configuration, …)Both ASP.NET and PHPApplication installationBoth ASP.NET and PHPhttp://microsoft.com/web
  • 30. SDK’sWhat else is out there?
  • 31. Microsoft and PHP = LOTS of goodiesSome highlights…SQL Server Reporting Services SDK for PHPOData SDK for PHPWindows Azure Tools for EclipseWindows Azure SDK for PHPAppFabric SDK for PHPWindows Azure Command-Line Tools for PHPEclipse Tools for SilverlightInformation Cards for PHPInternet Explorer Webslices and Accelerators for PHPPHP and SilverlightSQL CRUD ApplicationWizard for PHP Toolkit for PHP and Bing MapsOverview: http://www.interoperabilitybridges.com/
  • 32. SQL Server Reporting Services SDK for PHPSSRS?Reporting tool in SQL ServerVery powerful!Various output formatsCan be linked to MySQL, PostgreSQL, …API to interoperate with SQL Server Reporting ServicesList available reports within a PHP applications,Provide custom parameters from a PHP web form,Manage the rendering of the reports within a PHP applicationhttp://ssrsphp.codeplex.com
  • 33. OData SDK for PHPOData?Open Data ProtocolUnlock your data and free it from silos that exist in applications todayBuilds on HTTP, AtomPub and JSONRESTful interfaceWay data is delivered in MS CN “Dallas”API to ODataGenerate proxy classes to OData feedsCRUD on OData feedshttp://odataphp.codeplex.com/
  • 34. OData SDK for PHP/* connect to the OData service */ $svc = new NorthwindEntities(NORTHWIND_SERVICE_URL);/* get the list of Customers in the USA +the list of Orders */ $query = $svc->Customers() ->filter("Country eq 'USA'") ->Expand('Orders'); $customerResponse = $query->Execute();/* get only CustomerID and CustomerName */ $query = $svc->Customers() ->filter("Country eq 'USA'") ->Select('CustomerID, CustomerName'); $customerResponse = $query->Execute();/* create a new customer */ $customer = Customers::CreateCustomers('channel9', 'CHAN9'); $proxy->AddToCustomers($customer); /* commit the change on the server */ $proxy->SaveChanges();
  • 35. Windows AzureMicrosoft’s Cloud Computing offeringWeb/worker role (= virtual machine)Blobs, tables, queues, drives (= storage)SQL Azure (= +/- SQL Server)AppFabric (= access control & firewall punching)“Dallas” (= Data-as-a-Service)Working with PHPWindows Azure Tools for EclipseWindows Azure SDK for PHPAppFabric SDK for PHPWindows Azure Command-Line Tools for PHPZend Framework contribution
  • 36. ToolingHow do I use all this?
  • 38. Windows Azure Tools for Eclipse
  • 41. What’s in the cloud?ResourcesWhere can I learn more?
  • 42. ResourcesMicrosoft Windows Azure Interophttp://www.microsoft.com/windowsazure/interop/InteropBridgeshttp://www.interoperabilitybridges.com/
  • 43. SummaryPHP on Windows is a priority for MicrosoftFull range of PHP support Products and ServicesAttract more customers to the MS platform through world-class support and resources Microsoft wants you to succeed