Przewodnik administratora > Instalacja systemu na serwerze Windows (Apache + PHP + FastCGI)

  1. Wstęp
  2. Instalacja i Konfiguracja
  3. Konfiguracja SSL (OpenSSL)
  4. Znane problemu

Wstęp

W niniejszym artykule przedstawiono sposób instalacji i konfiguracji systemu eDokumenty na serwerach Windows wykorzystując do tego Apache + PHP w trybie FastCGI.

Sugeruje się aby przed przystąpieniem do instalacji serwera Apache dokonać instalacji serwera baz danych: PostgreSQL, który to proces opisany jest na stronie: http://support.edokumenty.eu/trac/wiki/AdminGuide/Procedures/WindowsPostgreSQL

Powrót do menu

Instalacja

Cały proces składać się będzie z kilku etapów:

  1. Konfiguracja podstawowa
  2. Instalacja serwera kontroli wersji (Subversion)
  3. Pobierania i instalacji Apache+PHP
  4. Konfiguracja serwera
  5. Konfiguracja rozszerzeń PHP
  6. Instalacja i konfiguracja systemu eDokumenty
  7. Instalacja dodatkowych komponentów

0. Konfiguracja podstawowa

Dokumentacja oraz załączona paczka dla php 5.4, php 5.6 lub php 7.2 zakłada instalację systemu eDokumenty w lokalizacji "D:\edokumenty\" Strukturę katalogów nalezy utworzyć w ścieżce: D:\edokumenty\ W tej lokalizacji należy utworzyć strukturę katalogów (lub przenieść z innego serwera):

  • files - katalog dla plików niewersjonowanych
  • maildir - katalog dla poczty email
  • public_ftp (opcjonalny) - publiczne repozytorium plików dostępne w Eksploratorze plików dostępnym w systemie eDokumenty
  • public_html - tu znajdują się pliki programu
  • repos - katalog bazy danych systemu kontroli wersji (Subversion)
  • repository - katalog, który przechowuje pliki wersjonowane
  • users (opcjonalny) - prywatne (użytkownika) repozytorium plików dostępne w Eksploratorze plików dostępnym w systemie eDokumenty

1. Instalacja i konfiguracja serwera kontroli wersji (Subversion)

Przed instalacja Zend Server-a należy zainstalować w systemie serwer systemu kontroli wersji. W tym celu ze strony należy pobrać dwa narzędzia:

Podczas instalacji komponentów SVN należy zwrócić uwagę na numer wersji. Współpracujące ze sobą wersje

W pierwszej kolejności należy zainstalować Subversion, a dopiero potem TortoiseSVN. Po zainstalowaniu serwera i narzędzia należy utworzyć repozytorium. W tym celu należy na katalogu repos kliknąć prawym przyciskeim myszy i kliknąć opcję TortoiseSVN > Create repository here.

Następnie należy prawym klawiszem myszy na katalogu repository kliknąć opcję SVN Checkout. W oknie, które się otworzy należy wybrać ścieżkę do katalogu repos. Uwaga, należy zwrócić uwagę, aby druga ścieżka wskazywała na katalog repository.

Ostatnim krokiem jest konfiguracja ścieżek w pliku config.inc (po skońćzonej instalacji systemu eDokumenty) Plik config.inc znajduje się w katalogu /public_html/apps/edokumenty/:


// Ścieżka do repozytorium plików, na Linux względna, na Windows bezwzględna
define('REPOSITORY_PATH', 'D:/www/eDokumenty/repository/');
define('NOT_VERSIONED_REPOSITORY_PATH', 'D:/www/eDokumenty/files/');

Następnie w pliku httpd-fastcgi.conf (domyślnie C:\Apache24\conf\extra) należy dodać wpis z lokalizacją do pliku SVN. WAŻNE aby ścieżka do pliku SVN znajdował się na początku.

//Przykładowy podgląd wpisu//
FcgidInitialEnv PATH "C:/Program Files (x86)/Subversion/bin;c:/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"

2. Pobieranie i instalacja Apache + PHP

  1. Pobrać i rozpakować paczkę dla php 5.4, php 5.6, php 7.2 lub php 7.4 Paczka instalacyjna zawiera odpowiednio Apache 2.4 oraz w zależności od pobranego pliku inną wersję PHP. W przypadku aktualizacji wystarczy podmienić tylko katalog z PHP.

3. Konfiguracja Apache, PHP

Edycja konfiguracji Apache oraz PHP rozpocząć należy od modyfikacji plików konfiguracyjnych.

  1. Pierwszym z nich jest php.ini w lokalizacji (domyślnie): "C:\php\php.ini"

W podstawowej konfiguracji oraz instalacji w katalogu "c:\php" nie ma potrzeby ingerencji w plik php.ini.

  1. Modyfikacja pliku httpd.conf c:\Apache24\conf\httpd.conf

W podstawowej konfiguracji oraz instalacji Apache w katalogu "c:\Apache24" oraz PHP w "c:\php" należy tylko zmienić ścieżki dotyczące lokalizacji systemu eDokumenty.

  1. Plik httpd-vhosts.conf c:\Apache24\conf\extra\httpd-vhosts.conf

W podstawowej konfiguracji oraz instalacji Apache w katalogu "c:\Apache24" oraz PHP w "c:\php" należy tylko zmienić ścieżki dotyczące lokalizacji systemu eDokumenty.

Przechodzimy do linii komend (uruchamianej z użytkownika Administrator):

cd c:\Apache24\bin - przechodzimy do katalogu

httpd.exe -k install -n "Apache2.4" - instalacja usługi w systemie

Następnie uruchamiamy ApacheMonitor i klikamy START na usłudze Apache2.4

W razie błędów, problemów z uruchomieniem może przydać się komenda deinstalacji usługi:

httpd.exe -k uninstall - odinstalowanie usługi w systemie

Do poprawnej instalacji Apache wymagany jest komponent Visual C++ Redistributable

Powrót do menu

4. Konfiguracja rozszerzeń PHP

W tej części opisano sposób instalacji rozszerzeń na przykładzie sterowników PHP do serwera baz danych Microsoft SQL Server. Pierwszym krokiem jest pobranie sterowników ze strony producenta Microsoft Drivers 3.0 for PHP for SQL Server (instalator zamieszczono również w załącznikach). Podczas instalacji instalator zapyta się, gdzie rozpakować pliki. Należy wskazać domyślny katalog rozszerzeń PHP: czyli: c:\php\ext . Następnym punktem procesu jest dodanie odpowiedniego wpisu do pliku php.ini:

extension=php_mssql.dll

Po zrestartowaniu Apache'a podstawowy sterownik PHP do MS SQL Server będzie dostępny.

Powrót do menu

5. Instalacja i konfiguracja systemu eDokumenty

Ostatnim krokiem instalacji jest wykonanie instalacji przez przeglądarkę.

Konfiguracja SSL (OpenSSL)

Konfigurację SSL w Apache 2.4 należy rozpocząć od pliku: httpd.conf w katalogu C:\Apache24\conf\, w którym zmieniamy następujące linie (odkomentowujemy):

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so

...

# Secure (SSL/TLS) connections

<IfModule ssl_module>
  Include conf/extra/httpd-ssl.conf
  SSLRandomSeed startup builtin
  SSLRandomSeed connect builtin
</IfModule>

Następnie w pliku konfiguracyjnym: httpd-ssl.conf (domyślnie: C:\Apache24\conf\extra\) muszą być odkomentowane następujące linie: (kompletny plik z usuniętymi zbędnymi i zakomentowanymi liniami):

SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

Listen 443

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

SSLPassPhraseDialog  builtin

SSLSessionCache        "shmcb:C:/Apache24/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

<VirtualHost _default_:443>

        DocumentRoot "D:/public_html"
        ServerAdmin you@example.com
        ErrorLog "C:/Apache24/logs/error.log"

        SSLEngine on

        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

        SSLCertificateFile "C:/Apache24/conf/localhost.crt"

        SSLCertificateKeyFile "C:/Apache24/conf/localhost.key"

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory "C:/Apache24/cgi-bin">
                SSLOptions +StdEnvVars
        </Directory>


        BrowserMatch ".*MSIE.*" \
                         nokeepalive ssl-unclean-shutdown \
                         downgrade-1.0 force-response-1.0

        CustomLog "C:/Apache24/logs/ssl_request_log" \
                          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    RewriteEngine on
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

</VirtualHost>                                  

Opcjonalnie w pliku tym może być również konfiguracja aliasów do systemu eDokumenty. Musi się ona znajdować przed frazą </VirtualHost>

        Alias /apps/edokumenty/engine "D:/public_html/apps/edokumenty/engine.php"
        Alias /apps/upgrade/engine "D:/public_html/apps/upgrade/engine.php"
        Alias /sync "D:/public_html/apps/sync/engine.php"
        Alias /vdisk "D:/public_html/apps/edokumenty/webdav.php"                  

Uwaga!!! . Nalezy zwrócić uwagę, że nie ma tutaj opcji SSLMutex. Musi być bezwzględnie usunięta.

W pliku config.inc systemu eDokumenty zmieniamy linię :


define('SELECTED_PROTOCOL', 'http');

na


define('SELECTED_PROTOCOL', 'https');

Powrót do menu

6. Instalacja dodatkowych komponentów:

Aby umożliwić podgląd dokumentów (doc, rft, itd) w systemie eDokumenty na serwerze powinna zostać zainstalowana aplikacja AbiWord. Po instalacji aplikacje AbiWord musimy dodać do zmiennych środowiskowych systemu. A także dokonać zmian w pliku httpd-fastcgi.conf (domyślnie C:\Apache24\conf\extra):

//Przykładowy podgląd wpisu//
FcgidInitialEnv PATH "C:/Program Files (x86)/Subversion/bin;c:/Abiword/bin;c:/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"

w pliku php.ini (domyślnie C:\php) należy od komentować linię:

extension=php_fileinfo.dll

Do zmiennych środowiskowych systemu Windows dodajemy ścieżkę do programu AbiWord

Po wprowadzonych zmianach restartujemy Apache.

Powrót do menu

Pojawiające się problemy:

  • Podczas wysyłania e-maili z załącznikami, Fast-CGI przestaje reagować.

W pliku konfiguracyjnym httpd-fastcgi.conf (domyślnie: C:\Apache24\conf\extra\) w pozycji FcgitIOTimeout zmieniamy wartość na 6000.

  • Podczas wysyłania zeskanowanych plików za pomocą BSScanServera pojawiał się błąd. W logu BSScanServer pojawiał się wpis: ERROR: EIdHTTPProtocolException error raised, with message : HTTP/1.1 500 Internal Server Error

W pliku konfiguracyjnym httpd-fastcgi.conf (domyślnie: C:\Apache24\conf\extra\) w pozycji FcgidMaxRequestLen zmieniamy wartość na 51200000.

Wersja ROBO dla Windows

Powrót do menu