Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

WIMP - Windows Server 2012 IIS MySQL PHP

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 tegophpMyAdminPlik 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
  • LAMP - Linuks Apache MySQL PHP
  • LNMP - Linuks Nginx MySQL PHP
  • Porównanie wydajności serwerów WWW

 

windows serwery

Komentarze

0 nowych
okokok   12 #1 02.12.2012 23:35

Fajnie napisane, lepiej niż poprzedni.

koneton   6 #2 03.12.2012 09:10

Nie przemawia do mnie sens takiej konfiguracji. Po co komuś PHP i MySQL na IIS? Ani komercyjnie, ani wydajnościowo nie ma to sensu.

  #3 03.12.2012 11:55

@Koneton:
Bywa że jest potrzebne.
Popatrz na forum DP - phpBB działa na PHP, a Docent kiedyś pisał, że próbowali na SQL Server, ale wydajność była słaba i użyli MySQL.

Autor edytował komentarz.
koneton   6 #4 03.12.2012 13:45

@lukasamd Ale w takim wypadku po co dodatkowo ograniczać się poprzez Windows? Nie byłoby lepiej umieścić forum na serwerze Linuksowym z Apache? Rozumiem, że powodem takiego stanu rzeczy może być fakt, że pozostałe serwisy działają na Windows i admini mają na nim wolne zasoby (więc nie ma potrzeby stawiania kolejnego serwera). Może problemem było złe skonfigurowanie serwera SQL lub niewłaściwie napisany silnik forum.

underface   14 #5 03.12.2012 16:26

@up wątpię, aby do tak dużej bazy jaką mają dobreprogramy pozwoliły by sobie na złą konfigurację serwera. Poza tym o ile dobrze pamiętam to różnicę pomiędzy mysql a sql były dość spore zarówno w czasie jak i zasobożerności

rm7   5 #6 03.12.2012 17:23

Celem tej serii jest opisanie jak się sprawdza najnowszy Windows Server w typowych zastosowaniach. A co jest bardziej typowe, niż PHP i MySQL?

tfl   8 #7 03.12.2012 17:56

@rm7

bardziej typowe niz php+mysql na win srv? Snieg w lipcu.

rm7   5 #8 03.12.2012 17:57

Nie mam nic przeciwko konstruktywnym informacjom co można opisać względem Windowsa, ew. co co normalnie jest używane na nim.

Autor edytował komentarz.
tfl   8 #9 03.12.2012 19:32

Konstruktywnie... postaram sie. Otoz licencja na system windows server jest droga. Do tego dochodza nie do konca przez wszystkich znane licencje CAL i inne ograniczenia, ktore ze soba niesie. Jesli wiec podobne rezultaty mozna uzyskac z mniejszym kosztem... to robione jest to mniejszym kosztem. To stala kosmiczna, jak pisal Grzedowicz.

  #10 03.04.2013 18:44

a mi to nie działa :(

  #11 15.01.2015 16:13

PHP na Windows serwer sprawdza się choćby w domenie firmy - banalna integracja (SSO) z kontrolą uprawnień przez domene Windows - server IIS przekazuje do aplikacji PHP informacje o loginie użytkownika, który otworzyl stronę WWW.
(nie trzeba instalować innych wtyczek integrujących z kerberos).