WIMP - Windows Server 2012 IIS MySQL PHP
02.12.2012 | aktual.: 29.12.2012 15:11
Zgodnie z obietnicą kontynuacja serii. W tym odcinku instalacja IIS, PHP i MySQL.Co prawda IIS i PHP zostało już omówione przez inne osoby, ale obiecałem o tym napisać więc część instrukcji pewnie się powtórzy.
IIS
Trzykrotnie "Next"
Zaznaczamy "Web Server (IIS)",
potwierdzamy chęć instalacji dodatku i ponownie "Next"'y. Należy także zainstalować .NET 2.0
W "Application Development" należy zaznaczyć "CGI". "Next", a następnie "Install". Po paru minutach można zamknąć okno. Przykładowa strona jest już dostępna (wystarczy w przeglądarce wpisać adres IP serwera). Tu wychodzi interesująca kwestia DNS i hostname. W momencie, kiedy doszedłem do tego miejsca przy pisaniu, zacząłem szukać na blogu dobreprogramy.pl wpisu, na którym ktoś tłumaczy działanie DNS. Bardzo mnie zdziwił brak jakiegokolwiek opisu, czy to samego DNS, czy też instalacja/konfiguracji. Taki ciekawy i użyteczny temat... W dużym skrócie, o ile kiedy nasz komputer poprosi ISP o przesłanie czegoś do jakiegoś IP, może to się stać dzięki routerom i BGP, o tyle nazwa w rodzaju facebook.com jest dla nich niezrozumiała. Abyśmy mogli wejść na konkretną stronę przy użyciu łatwej do zapamiętania nazwy został stworzony Domain Name System, który tłumaczy naszemu komputerowi nazwę na IP. Skąd komputer wie jak się skontaktować z serwerem DNS? Albo adres IP serwera jest przesyłany razem z adresem IP naszego komputera przez DHCP, albo jest wpisywany przy konfiguracji połączenia z internetem. Jeżeli w komentarzach ktoś napisze, że instnieje taka potrzeba, mogę napisać o działaniu/konfiguracji DNS. Chciałbym przy okazji wspomnieć, że obecnie powszechnie używany system jest w rękach ICANN, którzy mają nad nim całkowitą władzę. Cytat z wikipedii "Formalnie ICANN jest prywatną organizacją non‑profit, o statusie firmy zarejestrowanej w stanie Kalifornia, której rząd USA przekazał czasowo prawo nadzoru nad systemem DNS, przydziałem puli adresów IPv4 oraz IPv6 dla tzw. Regional Internet Registries RIR oraz rejestracją numerów portów." Czasowo? Osobiście poleciłbym projekt Namecoin, w którym dzięki kryptografii tylko właściciel domeny może cokolwiek zmieniać i nie da się odebrać domeny. Wracając do tematu, komputer ma IP i nazwę. Tym niemniej, liczba IP nie jest nieograniczona (dokładnie jest ich 2^32, a nie wszystkie można użyć). Powoduje to, że zwyczajnie kosztują. W OVH kilka zł/szt/mies, w większości polskich serwerowni kilkanaśnie zł/szt/mies. Mimo to istnieją tysiące darmowych i płatnych hostingów. Rozsądek może w tym momencie podpowiadać, że da się jakoś umieścić na jednym IP więcej niż jedną stronę. Jak? Komputer wysyła do serwera prośbę o konkretną stronę, a serwer jeżeli zna taką, wyśle odpowiednią. Jeżeli nie, zazwyczaj wyświetli po prostu stronę domyślną dla serwera. Mechanizm ten to virtualhost.
Każda strona IIS może byc powiązana z wieloma adresami, jak również z *, która w tym przypadku oznacza - wszystkie nieznane adresy. Można zmieniać ustawienia niezależnie dla każdej strony, w tym ograniczyć np. maksymalne zużycie procesora dla konkretnej strony. Oczywiście nie spowoduje to magicznie zwiększenia możliwości serwera - po prostu dana strona będzie czasami niedostępna i wolniej działać.
PHP
Użyłem PHP Manager w wersji x64 i PHP 5.4 x86 Thread Safe Zip. Najpierw PHP Manager. Uruchamiamy, "Next", "I Agree", "Next", czekamy, "Close". Zawartość pliku Zip z PHP wypakowujemy gdziekolwiek, np. na C:\PHP
W IIS Manager wybieramy nasz serwer, a następnie PHP Manager i "Register new PHP version".
Podaje ścieżkę do php‑cgi.exe z pliku zip który wypakowaliśmy.
Wersja powinna zostać automatycznie rozpoznana.
MySQL
Do MySQL wykorzystałem Windows (x86, 64‑bit) MSI Installer. Niczym PHP :) "Next", "I accept the terms...", "Next", "Typical", "Install". W nowym oknie "Next", "Next. W starym "Finish". Nastepnie konfigurujemy MySQL. "Next" :) "Next". Nasz wybór zależy od przeznaczenia maszyny. Zostawiłem na razie domyślną opcję i "Next". Następne 6 tak samo. Podajemy dwukrotnie hasło, "Next", "Execute", po chwili "Finish".
Gratulacje
Jeżeli postępowałeś zgodnie z instrukcjami masz działający serwer IIS+PHP+MySQL. Co można na takim postawić? Większość używanych obecnie serwisów, dla przykładu - Wordpress. Niestety, najpierw musimy stworzyć dla niego bazę. Przyda się do tego phpMyAdmin Plik zip rozpakowałem do C:\inetpub\wwwroot\phpma Dzięki temu mogę się połączyć z phpMyAdmin wpisują do Internet Explorera adres localhost/phpma
Należy wpisać "root" i hasło podane podczas instalacji MySQL.
Możemy stworzyć użytkownika dla Wordpressa i bazę dla niego mogącego używać tej bazy. Ktoś mógłby spytać, po co użytkownik. Czyż root nie ma możliwości edytowania dowolnej bazy? Otóż to co jest jego zaletą, jest też wadą. Wyobraźmy sobie, że ktoś nam się włamie do Wordpressa. Dzięki stworzeniu osobnego użytkownika MySQL haker może usunąć jedynie Wordpressa, a inne strony na danym serwerze zostaną bezpieczne (w miarę).
Można się wylogować.
Wordpress
A więc wreszcie to po co przygotowujemy od dłuższego czasu serwer :) Rozpakowałem archiwum w C:\inetpub\wwwroot\word Zmieniłem nazwę pliku wp‑config-sample.php na wp‑config.php i notatnikiem zmieniłem w nim pola DB_name, DB_USER i DB_PASSWORD na zgodne ze stworzonym użytkownikiem MySQL.
Następnie w Internet Explorer localhost/word i konfiguracja użytkownika.
Gotowe
W następnym odcinku [list] [item]LAMP - Linuks Apache MySQL PHP[/item][item]LNMP - Linuks Nginx MySQL PHP[/item][item]Porównanie wydajności serwerów WWW[/item][/list]