PHP i Windows - Instalacja środowiska .png)
Autor: Maciej Wilgucki
Opublikowano: 2011-06-28
Jaki serwer kojarzy się z PHP? Oczywiście Apache. A jaka baza danych kojarzy się z PHP? Oczywiście MySQL. Te trzy technologie są ze sobą tak mocno związane, że w zdecydowanej większości przypadków na Windowsie instaluje się stos AMP (Apache + MySQL + PHP) w postaci jednego instalatora. W chwili obecnej na rynku dostępnych jest co najmniej pięć popularnych aplikacji tego typu. Niezauważony w kącie stoi IIS, który wbrew pozorom niczym nie ustępuje wspomnianej wcześniej paczce.
PHP na IIS?
Jak to możliwe, że PHP działa na IIS? Dzięki Common Gateway Interface (CGI), a dokładniej FastCGI. CGI jest publicznie dostępnym interfejsem umożliwiającym komunikację między serwerem a skryptami, a którego implementacja jest niezależna od systemu operacyjnego. Skrypty można pisać w wielu językach, m.in. Perl, Python, Ruby oraz PHP.
Obsługa skryptów CGI łączyła się wcześniej z koniecznością utworzenia nowego procesu dla każdego przychodzącego żądania. Po obsłużeniu żądania (najczęściej występującego po zakończeniu działania skryptu) proces jest usuwany, a serwer czeka na kolejne żądanie. Takie podejście do obsługi interpretowanych języków niestety się nie sprawdziło, ponieważ mocno obciążało serwer.
Rozwiązanie problemu nadeszło razem z FastCGI, który jest oparty na ciągle uruchomionym procesie (lub wielu procesach), oczekującym na żądanie, które należy obsłużyć. W ten sposób zużycie zasobów procesora zostało znacząco ograniczone, a same aplikacje mocno przyspieszyły.
Instalujemy PHP na IIS
Sposobów instalacji PHP na serwerze IIS jest wiele. Najprostszym i zarazem najszybszym jest zainstalowanie go za pomocą narzędzia Web Platform Installer. Aplikację pobieramy ze strony http://www.microsoft.com/web/downloads/platform.aspx, a następnie instalujemy. Po uruchomieniu Web PI (skrót od Web Platform Installer) powinniśmy zobaczyć okno główne programu (rys. 1). Widoczne w oknie głównym aplikacje mogą różnić się od widocznych na rysunku.
Rys. 1. Okno główne programu Web Platform Installer.
Aby zainstalować PHP na serwerze IIS, wystarczy, że wpiszemy w polu wyszukiwania PHP. Na liście wyników, obok dobrze znanych aplikacji stworzonych w PHP, znajdziemy to, czego szukamy – PHP 5.3.5. Oprócz samego języka dobrze jest zainstalować PHP Manager for IIS, będący niezastąpionym pomocnikiem podczas modyfikowania ustawień PHP.
Instalacja PHP sprowadza się do kliknięcia w Dodaj obok nazwy „PHP 5.3.5” i „PHP Manager for IIS” oraz kolejnego kliknięcia w Zainstaluj. Przez kolejne kroki instalacji przeprowadzi nas instalator.
Na tym kończymy instalowanie środowiska i zabieramy się za jego konfigurowanie. W tym celu musimy uruchomić Menedżera internetowych usług informacyjnych (IIS) oraz wybrać opcję PHP Manager (rys. 2).
Rys. 2. Menedżer internetowych usług informacyjnych (IIS).
Po wybraniu PHP Managera uzyskamy dostęp do wszystkich ustawień PHP. Z tego poziomu możemy dodać nową wersję PHP oraz zmienić domyślną wersję (rys. 3):
Rys. 3. Zarządzanie wersją PHP.
Można stąd także uzyskać dostęp do pliku konfiguracyjnego php.ini oraz logów, skonfigurować raportowanie błędów, ustawić limity środowiska (rys. 4):
Rys. 4. Ustawienia PHP.
Można również zainstalować nowe rozszerzenie lub włączyć/wyłączyć już zainstalowane (rys. 5):
Rys. 5. Zarządzanie rozszerzeniami PHP.
Powyższe ustawienia nie różnią się niczym od ustawień PHP zainstalowanego na Apache. Możemy je modyfikować „po staremu” - bezpośrednio w pliku php.ini lub możemy skorzystać z przygotowanych edytorów. Niezależnie od sposobu wprowadzania zmian, będą one widoczne zarówno w pliku php.ini, jak i w PHP Manager.
Na koniec pozostało nam sprawdzenie, czy PHP rzeczywiście działa. W tym celu w katalogu C:\inetpub\wwwroot należy utworzyć plik info.php, a w nim wpisać <?php phpinfo(); ?>. Następnie w przeglądarce wpisujemy adres http://localhost/info.php – powinniśmy zobaczyć standardową stronę z opisem konfiguracji PHP.
Niezbędnik programisty
Zainstalowaliśmy PHP na serwerze oraz sprawdziliśmy czy działa, pora więc przejść do narzędzi. Pierwszym z nich jest edytor oraz IDE. Na rynku znajduje się wiele narzędzi, z których możemy skorzystać i ich wybór w znacznej mierze zależy od naszych przyzwyczajeń.
Spośród dostępnych edytorów oraz IDE na uwagę zasługują:
- PhpStorm, Eclipse, Netbeans – rozbudowane IDE oferujące wiele niezbędnych funkcjonalności, takich jak podpowiadanie składni, debugowanie kodu, obsługę systemów kontroli wersji czy zautomatyzowany deploy projektu na serwer.
- Expression Web – aplikacja stworzona głównie z myślą o frontend developerach. Pozwala pobrać z dowolnego serwera aplikację i pracować na niej lokalnie, oferuje też inne usprawnienia, m.in. podgląd strony na żywo w najpopularniejszych na rynku przeglądarkach (dzięki dodatkowi ExpressionSuperPreview, który można zainstalować oddzielnie). Programiści PHP również odnajdą interesujące funkcjonalności, np. podpowiadanie składni.
- Notepad++, PSPad – proste edytory tekstowe oferujące podstawowe funkcjonalności (np. kolorowanie składni). Niezbędne w przypadku konieczności wprowadzenia szybkich poprawek do kodu.
- VS.PHP – dodatek do Visual Studio (lub, jeśli nie posiadamy VS, instalowany jako osobna aplikacja) będący pełnoprawnym IDE dla programistów PHP. Podobnie jak w przypadku pozostałych IDE, posiada wbudowany debuger oraz podpowiada składnię. Ponadto pozwala na korzystanie z pluginów do Visual Studio, umożliwiających pracę z systemami kontroli wersji. Z jego pomocą można łączyć się do zdalnych serwerów, korzystając z protokołów ftp, sftp, ssl oraz smb.
- Phalanger – projekt umożliwiający kompilowanie PHP do postaci „rozumianej” przez platformę .NET. Dzięki niemu programiści PHP mają możliwość korzystania z typów dostępnych w .NET w taki sam sposób, jak z dowolnych obiektów i klas PHP. Phalanger instaluje się jako dodatek do Visual Studio i pozwala tworzyć projekty PHP kompilowane do postaci MSIL.
Ponieważ w dalszych częściach niniejszej serii artykułów będziemy pracować z bazą SQL Server, niezbędne okaże się SQL Server Management Studio Express, będące zaawansowanym desktopowym odpowiednikiem phpMyAdmin. Aplikację zainstalujemy, korzystając z Web PI.
Programowanie w PHP dość mocno związane jest z frontendem. Obecnie na rynku dostępnych mamy pięć popularnych przeglądarek, działających na trzech systemach operacyjnych. Niestety, nie żyjemy w idealnym świecie i tworzona przez nas aplikacja musi zostać przetestowana w jak największej ilości przeglądarek. Możliwość tę oferuje wspomniany już ExpressionSuperPreview, aplikacja wchodząca w skład Expression Web lub instalowana jako oddzielny produkt. Dzięki ExpressionSuperPreview mamy możliwość podejrzenia wyglądu strony w przeglądarkach IE (od wersji 6 do bieżącej) oraz w takich przeglądarkach, jak Firefox, Chrome czy Safari uruchomione na Mac OS.
Jeśli zależy nam na pełnej kontroli nad przeglądarkami, w których testujemy aplikację, nie obejdzie się bez maszyn wirtualnych. Microsoft wyszedł naprzeciw programistom i przygotował szereg maszyn wirtualnych z zainstalowanymi różnymi wersjami Windowsa oraz Internet Explorera. Maszyny wirtualne można znaleźć pod adresem http://www.microsoft.com/downloads/en/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef.
Kolejną wartą uwagi aplikacją jest WebMatrix, narzędzie przygotowane z myślą o osobach chcących w prosty sposób stworzyć aplikację internetową. Więcej informacji na temat WebMatrix można znaleźć pod adresem http://www.microsoft.com/web/webmatrix/.
Ostatnie narzędzie nie zostało stworzone z myślą o programistach PHP, niemniej może okazać się bardzo pomocne, jeśli zachodzi potrzeba śledzenia zmian z pliku „na żywo”. W środowisku linuksowym mamy do dyspozycji polecenie tail, wyświetlające aktualnie dodawane do śledzonego pliku dane. Windows, a dokładniej PowerShell, oferuje identyczną funkcjonalność – wystarczy w konsoli PowerShell wpisać polecenie Get-Content sciezka\do\pliku\log.txt –Wait.
Podsumowanie
Dzisiejszy artykuł wprowadził nas (i PHP) do świata IIS. Oprócz sposobu instalacji, poznaliśmy również narzędzia ułatwiające tworzenie aplikacji PHP. W następnej części tego cyklu artykułów poznamy moduł URL Rewrite, będący odpowiednikiem Apache’owego modułu mod_rewrite. Dowiemy się, jak tworzyć reguły, aby nasze linki były przyjazne dla użytkowników oraz jak przenieść reguły zapisane w pliku .htaccess do IIS’a.

.png)
.png)