Spis treści
- Wstęp
- Aktualizacja
- Wymagania sprzętowe
- Instalacja i konfiguracja IIS - Windows Server
- Instalacja i konfiguracja serwera Apache
- Sterownik sqlsrv
- Tworzenie bazy danych
- Migracja danych do MSSQL
Wstęp
Na tej stronie można znaleźć informację jak zainstalować skrypty PHP, które są niezbędne do komunikacji z bazą danych MS SQL. Skrypty można zainstalować na dwa sposoby: przez instalator oraz manualnie. Wybór serwera jest dowolny, aplikację testowaliśmy zarówno na serwerze Apache jak i IIS. Dla systemu Windows Server polecamy IIS z uwagi na mniej skomplikowany proces instalacji.
Z uwagi na uproszczone mechanizmy autoryzacji skrypty PHP nie nadają się do pełnej publikacji online. Dostęp do nich powinien być realizowany jedynie z poziomu sieci wewnętrznej lub przez bezpieczne połączenie VPN.
Skrypt nie jest dedykowany do publikacji online.
Aktualizacja
Porady dotyczące aktualizacji można znaleźć klikając tutaj.
Wymagania sprzętowe
Podczas przygotowania maszyny należy się zapoznać z wymaganiami sprzętowymi systemu operacyjnego oraz MS SQL Server i dodać około 2GB RAM na potrzeby PHP.
Windows Server 2012
- Procesor:
- minimum: 64-bit; 1,4 GHz
- zalecane: 2GHz lub szybszy
- Pamięć RAM minimum: 512 MB
- HDD minimum: 32 GB
Windows 10
- Procesor 1GHz lub szybszy
- Pamięć RAM:
- minimum 1 GB dla wersji 32-bitowej
- minimum 2 GB dla wersji 64-bitowej
- HDD:
- minimum 16 GB dla wersji 32-bitowej
- minimum 20 GB dla wersji 64-bitowej
MS SQL Server
- Procesor:
- minimum 1,4 GHz
- zalecane 2,0 GHz lub szybszy
- Pamięć RAM:
- minimum 1 GB
- zalecane 4 GB lub więcej
Podsumowanie - zalecany serwer
- Procesor: 64-bitowy 2 GHz
- Pamięć RAM: 8 GB
- HDD: 60 GB
Uwaga!
Domyślna konfiguracja serwera IIS przydziela około 120 MB pamięci RAM interpreterowi PHP.
Testowana przez nas baza danych zawierająca 50 000 formularzy wymagała przydzielenia 768 megabajtów RAM do jednorazowego załadowania pełnych danych wszystkich formularzy. Domyślnie program przy starcie ładuje jedynie nagłówki formularzy, więc 768 megabajtów zawiera spory zapas wolnej pamięci w przypadku normalnego użytkowania programu.
W przypadku błędu połączenia z bazą danych zalecamy sprawdzenie pliku z logami PHP, który na serwerze IIS znajduje się w następującej lokalizacji C:\Windows\temp. Dla PHP w wersji 5.6 będzie to plik PHP56_errors.log. Pełna ścieżka do plików logów PHP znajduje się w pliku php.ini.
Aby zmienić wielkość przydzielonej interpreterowi PHP pamięci RAM, w pliku php.ini należy ustawić parametr memory_limit. Przy większych bazach danych zalecamy zmienić także wartość parametru max_execution_time do minimum 3600
Zalecamy ustawić memory_limit=2048M oraz max_execution_time=3600
Instalacja i konfiguracja IIS - Windows Server
Instalację w systemie Windows Server można przeprowadzić za pomocą domyślnie zainstalowanego oprogramowania Server Manager (Menadżer serwera) oraz oprogramowania, które trzeba pobrać.
Żeby uruchomić program należy:
-
Zainstalować Server IIS - LINK
W funkcjach dodać również
Funkcje programu .NET Framework 3.5 oraz 4.0 - Zainstalować MS SQL Server
- Pobrac pliki PHP ręcznie ze strony : https://learn.microsoft.com/en-us/iis/application-frameworks/scenario-build-a-php-website-on-iis/configuring-step-1-install-iis-and-php wg punktu 1.3 (ostatnia wspierana wersja PHP 7.3.33)
Instalowanie skryptów za pomocą instalatora
- Uruchomić Instalator - połączenie z MS SQL
- Zapoznać się z umową licencyjną oraz zaakceptować ją
- Wybrać ścieżkę, w której mają być wypakowane pliki
(w przypadku pierwszej instalacji zalecamy pozostawienie domyślnej ścieżki, którą proponuje instalator) - W przypadku, kiedy pliki zostały wypakowane w proponowanej przez instalator ścieżce, po zakończeniu użytkownik zostanie przekierowany na stronę konfiguracyjną.
- Ustawić prawa zapisu dla użytkowników
(Prawym przyciskiem wywołać menu w folderze ze skryptami, wybrać właściwości a następnie zakładkę zabezpieczenia). - Zainstalować sterowniki dla połączenia z bazą MS SQL - LINK
Ważne!
Dla katalogu C:\windows\temp należy ustawić prawa zapisu dla użytkowników. W przeciwnym wypadku pojawi się błąd zapisu plików sesji.
Instalacja skryptów manualnie
- Rozpakować fillUp_install.zip i umieścić katalog efile w katalogu www serwera
(domyślnie C:\inetpub\wwwroot) - Ustawić prawa zapisu dla użytkowników
(Prawym przyciskiem wywołać menu w folderze ze skryptami, wybrać właściwości a następnie zakładkę zabezpieczenia) - Zainstalować sterowniki dla połączenia z bazą MS SQL - LINK
Ważne!
Dla katalogu C:\windows\temp należy ustawić prawa zapisu dla użytkowników. W przeciwnym wypadku pojawi się błąd zapisu plików sesji.
Instalacja i konfiguracja serwera Apache
- Zainstalować MS SQLServer
- Zainstalować Server Apache
- Zainstalować PHP w wersji conajmniej 5.4
- Otworzyć port 80 (dodać regułę) i odblokować Apache’a w firewallu windows
- Rozpakować fillUp_install.zip i umieścić katalog efile w katalogu www serwera Apache
- Zainstalować sterowniki dla połączenia z bazą MS SQL - LINK
Sterownik sqlsrv
Dla PHP 5.4 - 5.6 wejść pod link i pobrać SQLSRV32.EXE
Po pobraniu kliknąć dwa razy na plik i podać ścieżkę, gdzie mają zostać wypakowane pliki.
Dla PHP 7.0 - 7.1 sterowniki znajdują się pod tym linkiem.
Po wypakowaniu należy wybrać odpowiednią bibliotekę i skopiować do katalogu rozszerzeń w miejscu instalacji PHP - folder ext.
Po uruchomieniu pliku phpinfo.php w przeglądarce (lub wybraniu php info z menu home.php) powinien się pokazać podobny ekran:
- wersja PHP
- Miejsce instalacji PHP
(tam można znaleźć folder ext oraz plik php.ini potrzebny w dalszej części konfiguracji) - Thread Safety (potrzebne w wyborze biblioteki)
- dla Thread Safety disabled -> php_sqlsrv_X_NTS.dll
- dla Thread Safety enabled -> php_sqlsrv_X_TS.dll
Po wybraniu odpowiedniej biblioteki i skopiowaniu do folderu ext należy otworzyć plik php.ini i dopisać następującą linię:
extension=nazwa_biblioteki
dla przykładu, kiedy skopiujemy bibliotekę dla PHP 5.6 gdzie phpinfo pokazuje Thread Safety disabled:
extension=php_sqlsrv_56_nts.dll
Ważne!
Jeżeli memory_limit nie zostało ustawione wcześniej w pliku php.ini, należy ustawić:
memory_limit=2048M
Po zapisaniu pliku php.ini należy zresetować serwer.
Poprawnie zainstalowany sterownik będzie widoczny w phpinfo.php
Tworzenie bazy danych
Bazę danych można utworzyć na dwa sposoby:
- przez SQL Server Managment Studio
- wpisać nazwę bazy w skrypcie - wtedy skrypt utworzy bazę o podanej nazwie.
Ważne!
Jeżeli użytkownik sam tworzy bazę danych ważne jest, żeby w zakładce Options w Collation ustawić Polish_100_CI_AS
Zapis do bazy danych
Żeby program mógł zapisywać dane w bazie danych MS SQL należy:
-
Jeżeli instalator nie przekierował użytkownika do przeglądarki lub użytkownik wybrał instalację manualną należy w przeglądarce uruchomić adres:
http://[adres_serwera]/efile/home.php
w większości przypadków adres będzie wyglądał następująco:
http://127.0.0.1/efile/home.php
Powinna wyświetlić się strona, na której wyświetlane są podstawowe informacje na temat sterownika sqlsrv, wersji php oraz prawa zapisu.
-
Jeżeli wszystkie warunki zostały spełnione z menu Akcje wybrać opcję instalacja
Pojawi się strona, gdzie należy podać nazwę serwera MS SQL, nazwę bazy danych, która będzie lub została utworzona przez użytkownika oraz nazwę i hasło administratora serwera MS SQL.
Po wprowadzeniu tych danych i zatwierdzeniu formularza, uruchomiona zostanie próba połączenia z serwerem, tworzenie bazy danych (jeżeli nie została utworzona przez użytkownika), definiowanie struktury tabel oraz dodanie podstawowego użytkownika w programie - Administrator z domyślnym hasłem admin.
Ważne!
Zalecamy zmianę domyślnego hasła na swoje po pierwszym uruchomieniu programu. -
Po bezbłędnym zakończeniu instalacji bazy, na dole strony zostanie wyświetlony link, który należy podać w programie.
Przykładowy link: http://127.0.0.1/efile/
Ważne!
Należy pamiętać o umieszczeniu znaku / na końcu linku. -
Żeby wprowadzić link należy uruchomić program, z prawego menu wybrać:
Narzędzia -> Ustawienia -> Dane aplikacji z sekcji Miejsce zapisu danych wybrać Zapisuj na serwerze i zatwierdzić przyciskiem Zmień miejsce zapisu danych
Następnie w oknie, które się pojawi należy podać link do połączenia z serwerem (link z dołu strony instalacji).
Dodatkowe informacje
Istnieje możliwość utworzenia dwóch kopii katalogu zawierającego skrypt PHP, tworząc w ten sposób dwie niezależne konfiguracje połączenia z bazami danych. Należy tylko pamiętać o usunięciu pliku config.php po wykonaniu kopii.
Przykład:
Na serwerze znajdują się dwie kopie skryptów w katalogach:
- c:\inetpub\wwwroot\efile_1
- c:\inetpub\wwwroot\efile_2
Dla każdej kopii ustawiono inną nazwę bazy danych (mogą być na tym samym serwerze MS SQL). W ten sposób część pracowników może w programie pracować na (fizycznie) innej bazie danych.
Domyślną nazwę katalogu efile można zmienić, natomiast odradzamy zmianę struktury plików i katalogów wewnątrz.