Wymagania dla serwera WWW

01 server www2

YetiForce CRM stawia pewne wymagania serwerom WWW, dostosowanie serwera jest kluczowe dla prawidłowej instalacji, jak również stabilnej pracy systemu. Większość profesjonalnych serwerów WWW spełnia wymagania jakie podajemy poniżej. Jeżeli jednak zdarzy się, że Twój serwer nie spełnia wszystkich wymagań, poproś swojego administratora, aby poprawił konfiguracje i podaj mu link do tego artykułu. Jeżeli Twój administrator nie chce zmienić konfiguracji, to czas najwyższy przejść na inny serwer, ponieważ to serwer powinien dostosować się do Ciebie, a nie Ty do serwera.

Podczas instalacji system weryfikuje aktualną konfiguracje serwera i pokazuje elementy, które są niepoprawne i należy im zmienić parametr. Należy pamiętać, że przedstawiane wymagania poniżej, nie są idealne dla każdego, a więc w przypadku bardziej wymagających klientów, wymagania te powinny zostać zweryfikowane i zoptymalizowane.

Oprogramowanie bazowe dla serwera

  • Mint, CentOS, Debian, Ubuntu - działa na większości dystrybucji linuksowych. Nie zalecamy systemu operacyjnego MS Windows, jak również MS Windows Server. Pomimo, że nasz system dobrze sobie radzi na serwerach Windows, to nie jest ono optymalne pod kątem działania aplikacji WWW.
  • Apache 2.4 - poprawnie działa również na wcześniejszych wersjach tj. 2.1, 2.2, 2.3, jednakże preferujemy najnowsze stabilne wersje oprogramowania. Możesz również używać oprogramowania alternatywnego, ale kompatybilnego z tym oprogramowaniem.
  • MySQL 5.6 - poprawnie działa również na wcześniejszych wersjach tj. 5.5, 5.1, jednakże preferujemy najnowsze stabilne wersje oprogramowania. Możesz również używać oprogramowania alternatywnego, ale kompatybilnego z tym oprogramowaniem.
  • PHP 7.1  (zalecane) ; PHP 7.2 (wstępna kompatybilność).

Wymagania dla silnika baz danych [MySQL]

  • SQL_MODE nie powinno zawierać STRICT_TRANS_TABLE i ONLY_FULL_GROUP_BY
  • ENGINE=InnoDB powinno być dostępne i domyślnie włączone. (wyłącz --skip-innodb)
  • System opcjonalnie współpracuje z modułem MySQLi.

Wymagania dla php.ini i .htaccess

Konfiguracja główna

  • display_errorsWyłączony
  • file_uploads: Włączony
  • output_buffering: Włączony
  • max_execution_time: 600 - im więcej tym lepiej.
  • max_input_time: 600 - im więcej tym lepiej.
  • default_socket_timeout: 600
  • mysql.connect_timeout: 600
  • memory_limit: 512M - im więcej tym lepiej.
  • error_reporting: E_ALL & ~E_NOTICE
  • log_errors: Wyłączony
  • max_input_vars: 10000
  • post_max_size: 50M
  • upload_max_filesize: 100M
  • max_allowed_packet: 10 MB
  • zlib.output_compression: Wyłączony
  • expose_php: Wyłączony
  • session.auto_start: Wyłączony
  • session.gc_maxlifetime: 21600
  • session.gc_divisor: 500
  • session.gc_probability: 1
  • session.cookie_secure: zalecamy włączenie dla tych, którzy używają https
  • suhosin.session.encrypt: Wyłączony
  • mbstring.func_overload: Wyłączony
  • innodb_lock_wait_timeout: 600
  • wait_timeout: 600
  • interactive_timeout: 600

Włączone parametry

  • allow_url_fopen
  • date.timezone

Konfiguracja bibliotek zewnętrznych

  • PDO Obowiązkowy
  • GD Obowiązkowy
  • IMAP Obowiązkowy
  • Zlib Obowiązkowy
  • OpenSSL Obowiązkowy
  • Curl Obowiązkowy
  • LDAP Nie wymagany
  • PCRE Obowiązkowy
  • XML Obowiązkowy
  • JSON Obowiązkowy
  • SESSION Obowiązkowy
  • DOM Obowiązkowy
  • ZIP Archive Obowiązkowy
  • MBSTRING Obowiązkowy
  • SOAP Obowiązkowy
  • MySQL Native Driver (mysqlnd) Obowiązkowy
  • APCU Niewymagany
  • OPCACHE Niewymagany
Poprawna konfiguracja ścieżek do bibliotek zewnętrznych
  • PEAR
  • Net_SMTP
  • Net_IDNA2
  • Mail_mime

Uprawnienia do folderów i plików

Uprawnienia do folderów i plików często są głównym źródłem problemów dla osób instalujących aplikacje na swoich serwerach VPS i serwerach dedykowanych. Preferujemy taką konfiguracje plików [644] i folderów [755], aby wgrane pliki bez zmiany uprawnień na folderach i plikach miały z poziomu przeglądarki pełen dostęp do odczytu i zapisu (aby przeglądarka miała takie uprawnienia). Należy pamiętać, że sama aplikacja podczas pracy wykonuje różne operacje takie jak odczyt, zapis, jak również tworzenie i usuwanie plików. Jeżeli nie wiesz jak prawidłowo skonfigurować uprawnienia, poproś o to swojego administratora wysyłając mu link do tego artykułu.
  • Configuration directory config
  • Configuration File config/config.inc.php
  • User privileges directory user_privileges
  • Tabdata File user_privileges/tabdata.php
  • Menu file user_privileges/menu_0.php
  • User privileges file user_privileges/user_privileges_1.php
  • Parent Tabdata File config/parent_tabdata.php
  • Cache Directory cache/
  • Address book directory cache/addressBook/
  • Cache backup directory cache/backup/
  • Image Cache Directory cache/images/
  • Import Cache Directory cache/import/
  • Logs directory cache/logs/
  • Session directory cache/session/
  • Cache templates directory cache/templates_c/
  • Cache upload directory cache/upload/
  • Cron modules directory cron/modules/
  • Vtlib test directory cache/vtlib/
  • Vtlib Test HTML Directory cache/vtlib/HTML
  • Modules Directory modules/
  • Storage Directory storage/
  • Product Image Directory storage/product/
  • User Image Directory storage/user/
  • Contact Image Directory storage/contact/
  • Logo Directory storage/logo/
  • MailView attachments directory storage/OSSMailView/

Wspierane przeglądarki

Użytkownik powinien mieć zawsze najnowszą wersję przeglądarki, ponieważ tylko najnowsze wersje wspierają najnowsze technologię webowe. Poniżej umieściliśmy przeglądarki w kolejności w jakiej użytkownik powinien dokonywać wyboru. Oznacza to, że np. przeglądarka Safari jest gorszą przeglądarką dla aplikacji YetiForce niż jest Google Chrome.
  1. Google Chrome
  2. Firefox
  3. Opera
  4. Internet Explorer 
  5. Safari
  6. Inne

Dodatkowa konfiguracja z użyciem .htaccess

Część serwerów umożliwiają zmianę konfiguracji za pomocą pliku .htaccess, poniżej pokazujemy kilka przykładów.

Apache module (dział jak ustawiono w httpd.conf "AllowOverride Options" lub"AllowOverride All")

<IfModule mod_php5.c>
	php_flag	log_errors		On
	php_flag	display_errors		Off
	php_value	error_log		cache/logs/phpError.log
	php_value	memory_limit		512M
	php_flag	output_buffering	On
	php_flag	zlib.output_compression	Off
	php_flag	file_uploads		On
	php_value	upload_max_filesize	100M
	php_value	post_max_size		50M
</IfModule>
<IfModule mod_php4.c>
	php_flag	log_error		On
	php_flag	display_errors		Off
	php_value	error_log		cache/logs/phpError.log
	php_value	memory_limit		512M
	php_flag	output_buffering	On
	php_flag	zlib.output_compression	Off
	php_flag	file_uploads		On
	php_value	upload_max_filesize	100M
	php_value	post_max_size		50M
</IfModule>

FastCGI module

<IfModule fcgid_module.c>
	FcgidIOTimeout		600
	FcgidConnectTimeout	600
	FcgidBusyTimeout	600
	FcgidIdleTimeout	600
</IfModule>
<IfModule mod_fcgid.c> IdleTimeout 600 ProcessLifeTime 600 IPCConnectTimeout 600 IPCCommTimeout 600 BusyTimeout 600 </IfModule>

Dodatkowa konfiguracja z użyciem user.ini

Istnieje możliwość szybkiej zmiany konfiguracji PHP przez utworzenie pliku user.ini w głównym katalogu ($_SERVER['DOCUMENT_ROOT']),  aktualnie wspiera to CGI/FastCGI. Więcej informacji znajduje się na stronie: https://secure.php.net/manual/en/configuration.file.per-user.php

Szyfrowanie HTTPS

Zalecamy aby połączenie z serwerem na którym znajduje się nasz CRM było zawsze szyfrowane. Jeśli połączenie z serwerem nie zostało nawiązane za pomocą protokołu HTTPS komunikacja może zostać podsłuchana lub zmieniona przez osoby postronne.

  • poniedziałek, 07 sierpień 2017