Ich habe ein PHP-Skript, das ich aufrufe, um MySQL-Datenbank-Backups in .sql-Dateien zu erstellen, sie zu TAR/GZipen und per E-Mail an mich zu senden. Eine der Datenbanken wird von einem anderen Anbieter gehostet als der, der den Webserver bereitstellt. Alles wird auf Linux/Unix gehostet. Wenn ich diesen Befehl ausführe:
$results = exec("mysqldump -h $dbhost -u $dbuser -p$dbpass $dbname > $backupfile", $output, $retval);
(Zu Ihrer Information: Ich habe dies auch mit system(), passthru() und shell_exec() versucht).
Mein Browser lädt die Seite 15-20 Sekunden lang und bleibt dann ohne Bearbeitung stehen. Wenn ich mit einem FTP-Client auf den Server zugreife, sehe ich, dass die resultierende Datei ein paar Sekunden später angezeigt wird, und die Dateigröße nimmt zu, bis die Datenbank gesichert ist. Die Sicherungsdatei wird also erstellt, aber das Skript hört auf zu arbeiten, bevor die Datei komprimiert und an mich gesendet werden kann.
Ich habe die max_execution_time
in PHP auf 30 Sekunden gesetzt (länger als es dauert, bis die Seite aufhört zu funktionieren) und haben die set_time_limit
Wert auf bis zu 200 Sekunden.
Hat jemand eine Ahnung, was hier vor sich geht?