MySQLデータベースの.sqlファイルへのバックアップを実行するために呼び出すPHPスクリプトがあり、それらをTAR / GZipして、電子メールで送信します。データベースの1つは、Webサーバーを提供するプロバイダーとは異なるプロバイダーによってホストされています。すべてがLinux/Unixでホストされています。このコマンドを実行すると:
$results = exec("mysqldump -h $dbhost -u $dbuser -p$dbpass $dbname > $backupfile", $output, $retval);
(参考までに、system()、passthru()、shell_exec()でもこれを試しました。)
私のブラウザは15〜20秒間ページをロードしてから、処理せずに停止します。FTPクライアントを使用してサーバーを見ると、結果のファイルが数秒後に表示され、データベースがバックアップされるまでファイルサイズが増加することがわかります。そのため、バックアップファイルは作成されますが、ファイルを圧縮して送信する前に、スクリプトは機能しなくなります。
PHPで変数を確認しましたが、max_execution_time
30秒(ページが機能しなくなるまでにかかる時間よりも長い)に設定されており、set_time_limit
値は最大200秒に設定されています。
誰かがここで何が起こっているのか分かりますか?