YetiForce CRM stawia pewne wymagania serwerom WWW - dostosowanie serwera jest kluczowe dla prawidłowej instalacji, jak również stabilnej pracy systemu. Nieprawidłowa konfiguracja serwera jest najczęstszą przyczyną problemów pojawiających się w YetiForce CRM.
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.
Zawsze aktualna i pełna konfiguracja znajduje się na github i w module Weryfikacja konfiguracji serwera CRM-a wersji deweloperskiej:
Wymagania są zależne od wersji systemu, zalecana konfiguracja:
Wymagania są zależne od wersji systemu, zalecana konfiguracja php.ini:
Poprawna konfiguracja ścieżek do bibliotek zewnętrznych
Wymagania są zależne od wersji systemu, zalecana konfiguracja https://github.com/YetiForceCompany/YetiForceCRM/blob/stable/tests/setup/fpm/www.conf
Apache: https://github.com/YetiForceCompany/YetiForceCRM/blob/stable/tests/setup/apache/.htaccess
Nginx: https://github.com/YetiForceCompany/YetiForceCRM/blob/stable/tests/setup/nginx
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. Wszystkie pliki i foldery CRM powinny mieć tego samego właściciela. 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.
Gdy na serwerze jest zainstalowany SELinux w trybie enforcing często występują problemy z uprawnieniami.
Należy zwrócić uwagę na parametry konfiguracyjne:
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.
Część serwerów umożliwiają zmianę konfiguracji za pomocą pliku .htaccess, poniżej pokazujemy kilka przykładów.
<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 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>
Istnieje możliwość szybkiej zmiany konfiguracji PHP przez utworzenie pliku user.ini w głównym katalogu ($_SERVER['DOCUMENT_ROOT']), aktualnie wspiera to CGI/FastCGI. Jednak należy uważać bo nie wszystkie parametry można w ten sposób konfigurować (https://www.php.net/manual/en/configuration.changes.modes.php).
Więcej informacji znajduje się na stronie: https://secure.php.net/manual/en/configuration.file.per-user.php
Przykładowy plik: https://github.com/YetiForceCompany/YetiForceCRM/blob/stable/.user.ini
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.
connect_timeout = 3600 connect_timeout = 3600 net_read_timeout = 3600 net_write_timeout = 3600 wait_timeout = 3600 wait_timeout = 3600 innodb_lock_wait_timeout = 3600
max_execution_time = 3600 max_input_time = 3600 default_socket_timeout = 3600
pm.process_idle_timeout = 3600s
request_terminate_timeout = 3600
server { ... client_body_timeout 3600; send_timeout 3600; location ~ \.php$ { ... fastcgi_send_timeout 3600; fastcgi_read_timeout 3600; keepalive_timeout 3600; proxy_connect_timeout 3600; proxy_send_timeout 3600; proxy_read_timeout 3600; } location ~ ^(.+\.php)(.*)$ { ... fastcgi_send_timeout 3600; fastcgi_read_timeout 3600; keepalive_timeout 3600; proxy_connect_timeout 3600; proxy_send_timeout 3600; proxy_read_timeout 3600; } }