Własny web server na IIS7.5 cz.2 PHP+MySQL

Dziś zaprezentuję jak zainstalować bazę danych MySQL oraz jak skonfigurować kompilator PHP, aby mógł z niej korzystać.

W pierwszym kroku pobieramy silnik bazy danych ze strony domowej MySQL i rozpoczynamy jego instalację:

msiexec.exe /i c:\mysql-essential-5.1.53-winx64.msi

Na stronie początkowej klikamy Next.

Wybieramy domyślnie zaznaczony tryb instalacji Typical

Przeglądamy wybrane przez nas opcje

i rozpoczynamy instalację.

Po zakończeniu instalacji mamy możliwość zapoznania się z informacjami o bazie MySQL Enterprise. Zawiera ona kilka dodatkowych narzędzi, niestety jednak ta wersja jest już płatna. Przechodzimy przez kolejne karty informacyjne wybierając Next.

Kolejnym ważnym krokiem instalacji jest skonfigurowanie naszego serwera. Wybieram opcję Configure the MySQL Server now i klikamy Next.

Przechodzimy do panelu powitalnego narzędzia MySQL Server Instance Configuration i znów przechodzimy dalej poprzez Next.

Wybieramy opcje szczegółowej konfiguracji w celu wskazania własnych ustawień i przechodzimy dalej.

Dla web serwerów najlepszym rozwiązaniem pod kątem optymalizacji pracy jest opcja Server Machine. Pozwoli ona na przypisanie odpowiedniej ilości pamięci oraz zasobów procesora tak aby również były one dostępne dla roli IIS i kompilatora PHP.

Wybieramy przeznaczenie bazy danych z ukierunkowaniem na InnoDB lub MyISAM. Podstawową różnicą pomiędzy tymi trybami jest szybkość i niezawodność pracy. InnoDB jest skierowane typowo pod prace transakcyjną – duża ilość zapytań modyfikujących dane (INSERT, UPDATE czy DELETE), szczególnie na rozbudowanych bazach zawierających wiele powiązań pomiędzy tabelami. MyISAM natomiast lepiej i szybciej radzi sobie z typową analizą danych (zapytania typu SELECT). Jeżeli nie mamy pewności jaki tryb wybrać najlepiej zostawić domyślny Multifunctional Database, pozwoli to na zoptymalizowanie parametrów serwera gdzieś po środku pomiędzy InnoDB, a MyISAM.

Wskazujemy lokalizację przechowywania plików z danymi baz InnoDB. W przypadku gdy mamy możliwość użycia dysków w macierzy możemy tam przenieść lokalizację w celu zwiększenia niezawodności i wydajności poprzez skrócenia czasu dostępu do danych.

Wskazujemy przybliżoną ilość połączeń do bazy danych. Mamy do wyboru podejście OLAP, OLTP lub zdefiniować własną ilość połączeń. OLTP (On-line Transaction Processing) charakteryzuje się dużą ilością transakcji modyfikujących dane przez co ukierunkowane jest pod kątem zachowania integralności danych. OLAP (On-line Analytical Processing) natomiast skierowane jest pod typową analizę danych i charakteryzuje się złożonymi zapytaniami (Data Mining).

W zależności od wykorzystania bazy wybieramy odpowiednią konfigurację. Dla większości serwisów webowych najlepszym rozwiązaniem jest jednak Online Transaction Processing (OLTP).

Następnie konfigurujemy dostęp z sieci do bazy. Domyślny port MySQL to 3306 dlatego zalecane jest od razu ustawienie wyjątku na firewallu gdy zamierzamy wykorzystywać łączność poprzez sieć TCP/IP. Dodatkowo włączamy opcję Enable Strict Mode która pozwala na sprawdzanie i wymuszanie prawidłowych formatów danych.

Wskazujemy domyślne kodowanie znaków. Jeżeli chcemy bez problemów wykorzystywać np. polskie znaki najlepiej wybrać kodowanie UTF8, czyli opcja Best Support for Multilingualism.

Konfigurujemy pracę bazy danych jako serwis. Dodatkowo możemy doinstalować rozszerzenie przydatne podczas pracy na bazie danych z poziomu linii komend.

Konfigurujemy dostęp do bazy nadanie hasła roota. Mamy również możliwość włączenia logowanie się z innych serwerów na konto roota lub stworzenia konta Gościa, lecz dla zwiększenia bezpieczeństwa bazy nie jest to zalecane.

Po podaniu wszystkich parametrów następuje przygotowanie pliku konfiguracyjnego oraz uruchomienie usługi serwera bazy danych.

Aby sprawdzić poprawność pracy serwera ściągamy oprogramowanie phpMyAdmin. Wgrywamy go na serwer www np. do katalogu C:\inetpub\wwwroot\phpMyAdmin i próbujemy przejść do panelu zarządzanie poprzez przeglądarkę.

Jak widzimy mimo, iż instalacja serwera przebiegła pomyślnie nadal musimy ustawić kilka parametrów w pliku konfiguracyjnym kompilatora PHP – C:\Windows\php.ini.
Podstawowym parametrem jest ustawienie poprawnej ścieżki dostępu do katalogu z rozszerzeniami, czyli extension_dir = „c:\php\ext”.
Następnie, aby korzystać z baz danych MySQL oraz panelu phpMyAdmin musimy włączyć (poprzez usunięcie znaku komentarza „;”) następujące rozszerzenia:

  1. extension=php_mbstring.dll – moduł wyświetlania znaków międzynarodowych, wymagany przez phpMyAdmina
  2. extension=php_mcrypt.dll – moduł wspierający algorytmy szyfrowania. W wersji 5.2 jako osobny dodatek, lecz od wersji 5.3 wbudowany w kompilator, dlatego jest niedostępny na liście rozszerzeń.
  3. extension=php_mysql.dll – moduł obsługi bazy danych MySQL
  4. extension=php_mysqli.dll– rozszerzony moduł obsługi bazy danych MySQL
  5. extension=php_pdo.dll – moduł dostarczający uniwersalny interface do komunikacji z bazami danych. W wersji 5.2 jako osobny dodatek, lecz od wersji 5.3 wbudowany w kompilator, dlatego jest niedostępny na liście rozszerzeń.
  6. extension=php_pdo_mysql.dll – moduł oparty o PDO (PHP Data Objects) dostarczający dedykowany interface do komunikacji z bazami danych MySQL

Po każdej modyfikacji pliku konfiguracji PHP konieczny jest restart usługi IIS:

iisreset

Następnie jeszcze raz przechodzimy do panelu phpMyAdmin i możemy zalogować się na konto root’a.

Uwaga, wersje PHP 5.3 z niewiadomych przyczyn mają problemy z utworzeniem połączenia do bazy danych gdy nazwa hosta podana jest w formie localhost – wersje PHP 5.2 działają poprawnie. Istnieją dwa rozwiązania tego problemu:

1. Rozwiązanie globalne poprzez zmianę w pliku %WINDIR%\System32\drivers\etc\hosts:
W zależności czy korzystamy z protokołu IP4 czy IP6 odblokowujemy wpis localhost poprzez usunięcie znaku # przy odpowiedniej pozycji:

# localhost name resolution is handled within DNS itself.
   127.0.0.1       localhost
# ::1             localhost

2. Rozwiązanie lokalne, np. gdy nie mamy możliwości zmiany konfiguracji w pliku hosts:
Możemy stosować w parametrze host zapis w formie 127.0.0.1.
By wprowadzić tą zmianę w phpMyAdminie, otwieramy plik config.sample.inc.php. Odnajdujemy parametr

$cfg['Servers'][$i]['host'] = 'localhost';

I modyfikujemy go na:

$cfg['Servers'][$i]['host'] = '127.0.0.1';

Całoś zapisujemy jako plik config.inc.php.

Rozwiązanie globalne jest o tyle lepsze, iż dokonujemy zmiany w jednym miejscu dla wielu aplikacji, niemniej jednak nie zawsze możemy mieć uprawnienia do dokonania takiej zmiany – w szczególności gdy pracujemy na obcym serwerze. W takim przypadku pozostaje nam tylko rozwiązanie lokalne.

Źródła:
http://php.net
http://www.mysql.com/
http://www.phpmyadmin.net

Advertisements

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s