W trakcie wykonywania shell exec po upływie xx sekund dostajemy Interial Server Error 500 (apache ispCPomega)

Z Podręcznik Administratora by OPZ SGU
Przejdź do nawigacji Przejdź do wyszukiwania

Dzisiaj na jednej z maszyn użytkownik wymagał by wykonać przez shell_exec zewnętrzną aplikację backupu...

Standardowo pierwszym krokiem ustawiłem w PHP max_execution_time oraz max_input_time.

Niestety serwer w dalszym ciągu wyrzucał po upływie około 35 sekund Interial Server Error 500.


Okazało się że problemem jest limit czasu fcgi.

Oto rozwiązanie które pomogło w wypadku ispCP.

nano /etc/apache2/ispcp/domainname.conf
  • domainname - podajemy domenę użytkownika


W treści podajemy:

<IfModule mod_fcgid.c>
  AddHandler fcgid-script .php .php5
  SocketPath /var/lib/apache2/fcgid/sock
  IdleTimeout 600
  IdleScanInterval 240
  BusyTimeout 300
  BusyScanInterval 120
  ErrorScanInterval 6
  ZombieScanInterval 3
  ProcessLifeTime 7200
  SpawnScoreUpLimit 10
  SpawnScore 1
  TerminationScore 2
  MaxProcessCount 250
  DefaultMaxClassProcessCount 10
  DefaultMinClassProcessCount 0
  IPCConnectTimeout 600
  IPCCommTimeout 7200
  MaxRequestsPerProcess 500
</IfModule>
  • wszystkie powyższe parametry możemy dowolnie zmodyfikować i dostosować do naszych potrzeb.

A na koniec restartujemy apache

/etc/init.d/apache restart