MSSQL Server

Pobierz dokumentację w formacie pdf

Spis treści

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:

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:

Plik phpinfo

  1. wersja PHP
  2. Miejsce instalacji PHP
    (tam można znaleźć folder ext oraz plik php.ini potrzebny w dalszej części konfiguracji)
  3. Thread Safety (potrzebne w wyborze biblioteki)
    • dla Thread Safety disabled -> php_sqlsrv_X_NTS.dll
    • dla Thread Safety enabled -> php_sqlsrv_X_TS.dll
    Gdzie X to wersja PHP

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

Sterownik

Tworzenie bazy danych

Bazę danych można utworzyć na dwa sposoby:

  1. przez SQL Server Managment Studio
  2. 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.

    Ekran startowy

  • 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.

Migracja danych do MSSQL

Informacje jak przenieść dane z bazy sqlite do MSSQL znajdują się tutaj.