PHP i Microsoft Michał Żyliński Kto się lubi, ten się czubi
May 26, 2015
PHP i Microsoft
Michał Żyliński
Kto się lubi, ten się czubi
Agenda
• OSS i/vs Microsoft - historia i kontekst
• Dlaczego lubimy PHP?
• Oznaki miłości
Społeczności Partnerstwo
Możliwość wyboru Wkład
Port 25• Centrum informacji
dotyczących działań open source wokół technologii Microsoft
• 14 mln wizyt, 20% przeglądarek to Linux/Unix
http://port25.technet.com
InteroperabilityBridges
Katalog wszystkich projektów Microsoft, które dotyczą „zewnętrznych” technologii (PHP, Java, C, Objective C, Ruby itd.)
http://www.interoperabilitybridges.com/
• Przecież 50% projektów na SourceForge działa na Windows, a 1/3 tylko na Windows ;)
• Lepsza kontrola nad platformą– Utrzymuje również
„komercyjne” projekty MS– Team Foundation Server w tle
http://www.codeplex.com
CodePlex
Open Source Technology Center
OSTC – garść faktów
• Założone w 2004 roku (1 osoba, 2 komputery)• 2 ośrodki: Open Source Software Lab w Redmond
oraz Joint Interoperability Lab w Cambridge• Ponad 500 serwerów i obsługujących ponad 300
systemów operacyjnych (głównie dystrybucji Linuxa)– Największe zagęszczenie CPU ze wszystkich naszych labów
• Zatrudnia ekspertów od *nixa i OSS (JIL współtworzy Novell)
OSTC – cele i efekty
• Techniczna analiza rozwiązań OSS• Zwiększenie liczby projektów OSS
współpracujących (dobrze) z platformą Windows
• Zarządzanie tożsamością, wirtualizacja, bezpieczeństwo
• Dialog i współpraca ze środowiskiem OSS
Dotychczasowe projekty
Sterowniki SQL Servera dla Javy i PHP
Silverlight/Moonlight w Firefoxie
Windows Media Player 11 w Firefoxie
Firefox na Windows Vista
Fast CGI – Java/PHP/Python
Aktualne praceHyper-V a Linux
ADODB w PHP PEAR
Wsparcie CardSpace w Javie/Ruby/Pythonie/C
Poprawki do
linuxowego
kernela w lipcu
2009
Szatański plan
Windows = najlepsza platforma dla rozwiązań Open Source
I PHP też!
PHP a Microsoft
• PHP działa na Windows od ponad dekady• Windows jest wciąż dominującą platformą wśród
developerów PHP• Kompleksowe podejście:– Ułatwienie instalacji– Aktywna praca nad ulepszeniem działania PHP na Win– Benefity dla programistów PHP związane z platformą– Zaangażowanie się w już istniejące, najpopularniejsze
projekty wykorzystujące PHP
Web Platform Installerhttp://www.microsoft.com/web/downloads/platform.aspx
DemoWPI
Expression Web 3• Profesjonalny edytor
HTML• Bardzo mocny nacisk
na kompatybilność i standardy
• Pełne wsparcie dla PHP i ASP.NET
PHP w Expression Web 3• Kolorowanie kodu, intellisense,
snippety• Wbudowany serwer WWW (nie
musisz uruchamiać Apache lub IIS)• Wsparcie dla PHP 5.2.5 i FastCGI• Snapshot Preview – wierny podgląd
wyglądu strony w samym narzędziu• SuperPreview – weryfikacja
poprawności renderowania strony w różnych przeglądarkach (IE6/7/8, Firefox) – idealne do debugowania
• Integracja z TFS, Expression Design i Expression Encoderem
DemoExpression Web w praktyce
Dlaczego Windows kocha PHP
• Od wersji 5.3 uczestniczymy aktywnie w dostosowywaniu PHP do platformy Windows
• Win32API zamiast wywołań POSIXowych• Optymalizacja wydajności pod kątem FastCGI
w IIS• Usunięcie ponad 60 błędów dotyczących Win• Więcej na: http://windows.php.net
PHP w IIS 7
Mam przecież Apache…Konfiguracja poprzez GUI
lub XML
Modułowa architektura
Łatwe, zdalne
zarządzanie
Zaawansowana diagnostyka
Bardzo wiele
dodatków (np. media)
Możliwość tworzenia własnych
rozszerzeń w .NET
PHP w IIS 7 1/2
• FastCGI – jedyny słuszny wybór– Otwarty standard– Wykorzystywany przez wiele frameworków
(Django, RoR)– Bardziej stabilne niż filtr ISAPI– Znacznie szybszy niż standardowe CGI– Gwarancja stabilności i wydajności– Łatwa konfiguracja i deployment (szczegóły na
http://php.iis.net)
PHP w IIS 7 2/2• Łatwa migracja:
– Najpopularniejsze aplikacje zostały już przetestowane i udokumentowane– Kreatory do migracji z mod_rewrite na Url Rewrite
• Elastyczność:– Możliwość uruchomienia różnych środowisk (w tym wersji PHP) na tym
samym serwerze– Zarządzanie poprzez IIS Managera, PowerShell lub API– Rozszerzanie aplikacji PHP o funkcjonalność .NET (ASP.NET intergrated
pipeline)– Integracja z windows authentication– Wdrażanie przez x-copy
• Dopalacze:– Output Caching– Kompresja
Parę słów o wydajności
• Windows Cache Extension 1.0 – podobne do APC tylko na Windows – Licencja BSD– Dostępne w ramach PECL– 3-poziomowy cache:
• Kompilowanie stron i przechowywanie bajtkodu w pamięci• Dostęp do plików• Względne ścieżki do plików• Sesje przechowywane we współdzielonej pamięci (v.1.1)
– Kompatybilny z PHP 5.2 i 5.3– Kompatybilny z Joomlą, Drupalem i Sugar CRM
PHP a SQL Server
• Microsoft SQL Server Driver • Darmowy, Gotowy sterownik kompatybilny z SQL
Server 2005 i 2008 i R2 (m.in. nowe typy danych)• Ponieważ korzysta z ODBC działa tylko na Windows• Otwarty kod źródłowy• Kompatybilny z SQL Azure• Wspiera PDO
http://www.codeplex.com/SQLSRVPHP
Reporting Services
Report Server
Autentykacja
Report Manager
Przetwarzanie w tle
Web Service API
Własny serwer WWW
Źródła danych(ODBC, SQL, XML/A, inne)
Formaty wyjściowe
(HTML, Excel, Word, PDF, inne)
Metadane
Report Builder
Report Designer
Scheduling
DemoReporting Services
SSRS SDK for PHP
• Dostęp do silnika Reporting Services z kodu PHP
• Łatwa integracja z istniejącymi aplikacjami (dowolne źródło danych)
http://ssrsphp.codeplex.com/
Windows
Windows Server
ArchitekturaPHP Runtime (dowolny OS)
Report ManagerWeb Service API
Źródła danych
BI Development Studio
SQL Server Reporting Services SDK for PHP
Zarządzanie raportami
Parametryzacja raportów
Integracja z silnikiem renderującym
Dowolna aplikacja PHP
SOAPReport Formats
HTML
Przetwarzanie danych
Linked Server
Import
SQL Server, OLE DB, ODBC
MySQL, Oracle, etc.
with Advanced Services
SSRS PHP SDK w praktyce
SugarCRM
Windows Server
Report ManagerWeb Service API
Data Retrieval
Linked Serverwith Advanced Services
SurgarCRM Module
Report Templates
SugarCRMMySQL
Database
SQL Server Reporting Services SDK for PHP
SOAP
Windows
BI Development Studio
Designing and Building Reports
Platforma Windows Azure
SQL Azure Data
Sync=cool
Np. sesje PHP
Łał! Naprawdę
wystarczy tylko
zmienić
connection
string?
Materializacja chmury
PHP a Windows Azure
• Windows w chmurze– Wysoce skalowalny– Automatycznie zarządzany– Elastyczny Skoro taki
elastyczny, to
może wrzucić tam
np. PHP?
Pewnie, i dorzuć do tego jeszcze
MySQLa i memcached .
Aaaa, i zamiast
Visual Studio
chcemy Eclipse!
Windows Azure daje radę 1/3• Gotowa paczka do Eclipse:
http://windowsazure4e.org – Kompletne IDE dla PHP– Tworzenie i zarządzanie projektem– Storage Explorer– Testy w ramach WA Development Fabric– Łatwy deployment „w chmurę”
Windows Azure daje radę 2/3
• Windows Azure SDK for PHP (http://phpazure.codeplex.com/)
• Głównie skoncentrowany na obsłudze Windows Azure Storage
Windows Azure daje radę 3/3• Co z MySQL?– Przekopiuj pliki binarne– Przekopiuj dane– Zmień konfigurację (IP,
port itd.)– Zaawanse scenariusze
też działają (np. replikacja, backupy)
Web
Rol
e
VIP
Load Balancer
Wor
ker R
ole
MySQL
Windows Azure MySQL PHP Solution Accelerator (http://code.msdn.microsoft.com/winazuremysqlphp)
Eee, to z memcached
pewnie też się da…
Z Javą i Ruby także!
Azure dla wygodnych• Gotowe skrypty pozwalające na
łatwy deployment aplikacji w PHP bezpośrednio do chmury
• Obsługa z linii komend• Generuje gotową paczkę
instalacyjną (*.cspkg) oraz plik konfiguracyjny (*.cscfg)
• Deployment w chmurze lub w środowisku testowym (Local Development Fabric)
http://azurephptools.codeplex.com
Local (Development Fabric) or Cloud
Windows Azure Command-line Tools for PHP
Gotowy projekt PHPInterpret
erKod
źródłowyRozszerze
nia
1
2
3
Inne ciekawostki
• PHPExcel – Tworzenie i odczyt arkuszy z Office 2007– Jeden z najbardziej popularnych projektów na CP– http://phpexcel.codeplex.com/– PHPWord i PHPPowerPoint
• Phalanger – kompilator PHP do .NET (również Mono) - http://phalanger.codeplex.com/
• PHPLinq, OData SDK, Virtual Earth SDK, BING API, Live Messenger…
DemoPhalanger
Ufff… czas na podsumowanie
• PHP na Windows? Da się – przynajmniej równie dobrze
• Masz wszystko co potrzebne – doskonale znany OS, narzędzia programistyczne, rozwiązania serwerowe, wsparcie
• Zacznij od [email protected] lub
Program BizSpark
• Oferta dla młodych przedsiębiorców (nie tylko
przedsiębiorstw!)
• Formalne kryteria:
• Działalność software’owa
• Mniej niż 3 lata
• Poniżej 0,5 mln $ przychodu
• Oferta: komplet narzędzi + licencje serwerowe
http://www.microsoft.com/BizSpark
WebsiteSpark
• Agencje interaktywne/osoby zajmujące się
tworzeniem komercyjnych serwisów WWW
• Maksymalnie 10 pracowników
• Oferta: komplet narzędzi + licencje serwerowe
http://www.websitespark.com