W trakcie wykonywania shell exec po upływie xx sekund dostajemy Interial Server Error 500 (apache ispCPomega)
Wersja z dnia 04:00, 18 lut 2010 autorstwa 192.168.0.1 (dyskusja)
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