我有一个 PHP 脚本,我调用它来运行 MySQL 数据库备份到 .sql 文件、TAR/GZip 并将它们通过电子邮件发送给我。其中一个数据库由与提供 Web 服务器的提供商不同的提供商托管。一切都托管在 Linux/Unix 上。当我运行这个命令时:
$results = exec("mysqldump -h $dbhost -u $dbuser -p$dbpass $dbname > $backupfile", $output, $retval);
(仅供参考,我也尝试过使用 system()、passthru() 和 shell_exec()。)
我的浏览器加载页面 15-20 秒,然后停止而不进行处理。当我使用 FTP 客户端查看服务器时,我可以看到生成的文件会在几秒钟后出现,然后文件大小会不断增加,直到数据库被备份。因此,创建了备份文件,但脚本在文件可以被压缩并发送给我之前停止工作。
我检查了max_execution_time
PHP 中的变量,它设置为 30 秒(比页面停止工作所需的时间长),并将set_time_limit
值设置为 200 秒。
有人知道这里发生了什么吗?