PHP na Managed Serverech¶
Na Managed serverech jsou aktuálně podporovány tyto verze PHP:
- PHP 8.0
- PHP 8.1
- PHP 8.2
V případě M1 a M2 managed serverů je PHP vždy jako FPM a je možné provozovat více verzí současně.
Pro PHP instalujeme pouze moduly, které jsou součástí nainstalované distribuce. Prvotní konfigurace PHP je připravená dle specifikace klienta při objednávce serveru.
Je možné upravovat nastavení těchto proměnných:
- max_execution_time - nastavení maximální doby běhu PHP skriptu, nedoporučujeme nastavovat více než 5 minut
- max_file_uploads - maximální počet souběžně nahrávaných souborů
- max_input_time - určuje dobu, kterou má skript strávit přijímáním nějakého vstupu, nedoporučujeme nastavovat více než 5 minut
- max_input_vars - maximální počet proměnných, které jsou přijmuty v GET, POST a COOKIE
- memory_limit - velikost paměti, kterou si skript může alokovat, bezpečné je nastavení 256MB
- post_max_size - velikost všech odesílaných formulářových dat, musí být stejná či větší než upload_max_filesize
- upload_max_filesize - maximální velikost nahrávaných souborů
- opcache.enable - zapnutí opcache
- open_basedir - slouží k zamezení přístupu mimo zadaný adresář
- error_reporting - nastavení úrovně logování chyb
- display_errors - zapnutí zobrazování chyb, pro produkci doporučujeme ponechat vypnuté
- log_errors - zapnutí logování chyb do error logu webserveru
- allow_url_fopen - povolení načtení externího obsahu přes funkci fopen
- file_uploads - povolení nahrávání souborů
- short_open_tag - povolení zkrácených php tagů <?
- session.save_path - adresář pro ukládání sessions
- session.cache_expire - doba vypršení platnosti cache, pokud se s ní nepracuje
- session.cookie_lifetime - doba životnosti cookie identifikátoru session, při nastavení na 0 cookie identifikátoru, session zanikne v okamžiku zavření prohlížeče
- session.gc_maxlifetime - doba platnosti session, než je serverem určena ke smazání
Nastavení pro PHP FPM:
- pm (static/ondemand/dynamic)
- static: počet child procesů je daný hodnotou pm.max_children
- ondemand: procesy jsou spuštěny na vyžádání
- dynamic: počet child procesů je nastaven dynamicky na základě pm.max_children,
- pm.start_servers, pm.min_spare_servers a pm.max_spare_servers
- pm.max_children - počet child procesů, který je vytvořen při nastavení pm na static a maximální počet child procesů při nastavení pm na dynamic
- pm.max_requests - počet requestů, které může každý child proces spustit
- pm.start_servers - počet child procesů vytvořených po spuštění, používá se pouze pro pm = dynamic
- pm.min_spare_servers - požadovaný minimální počet nečinných procesů, používá se pouze pro pm = dynamic
- pm.max_spare_servers - požadovaný maximální počet nečinných procesů, používá se pouze pro pm = dynamic
Pro zatíženější weby doporučujeme nastavit pm na static a pm.max_children na 10. Pro běžné weby pm na ondemand a pm.max_children maximálně na 20.
Při výběru control panelu PLESK má zákazník možnost sám nastavovat tyto hodnoty:
- memory_limit
- max_execution_time
- max_input_time
- post_max_size
- upload_max_filesize
- opcache.enable
- include_path
- session.save_path
- mail.force_extra_parameters
- open_basedir
- error_reporting
- display_errors
- log_errors
- allow_url_fopen
- file_uploads
- short_open_tag
- pm (static/ondemand/dynamic)
- pm.max_children
- pm.max_requests
Pro úpravu dalších hodnot je třeba kontaktovat podporu.
V PHP jsou zakázány tyto funkce:
pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,
pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,
pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,
pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals