Przewodnik administratora > Instalacja systemu na serwerze Windows (Apache + PHP + FastCGI)
Menu
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
Instalacja
Cały proces składać się będzie z kilku etapów:
- Konfiguracja podstawowa
- Instalacja serwera kontroli wersji (Subversion)
- Pobierania i instalacji Apache+PHP
- Konfiguracja serwera
- Konfiguracja rozszerzeń PHP
- Instalacja i konfiguracja systemu eDokumenty
- 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:
- Subversion (Windows)
- TortoiseSVN - interfejs graficzny do systemu zarządzania wersją (przydatny do konfiguracji).
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
- 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.
- 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.
- 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.
- 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
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.
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');
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.
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.