Я пытаюсь продублировать всю папку (очень большую) с помощью рекурсивной функции.
class Folder {
static function copy (string $source, string $destination) {
$dir = opendir($source);
if (!is_dir($destination))
mkdir($destination, 0755, true);
while (($file = readdir($dir)) !== false) {
if ($file != '.' && $file != '..') {
if (is_dir($source .'/'. $file)) {
self::copy($source .'/'. $file, $destination .'/'. $file);
}
else {
copy($source .'/'. $file, $destination .'/'. $file);
}
}
}
closedir($dir);
}
}
Этот метод копирует только часть папок/файлов и после этого какое-то время ничего не делает (более 30 секунд) и завершает процесс с ошибкой 503.
Я не знаю, почему он не может скопировать их все. Некоторые файлы слишком велики для PHP?
Изменить:
Я обнаружил, что скрипт не может пройти мимо копирования одного из файлов размером более 100M.
Как увеличить размер файлов, которые может копировать функция copy
?
Изменить:
Я даже пробовал эти настройки, которые не помогли:
ini_set('memory_limit', '-1');
ini_set('max_input_time', '-1');
ini_set('max_input_vars', '10000');
ini_set('max_execution_time', 5000);
ini_set('post_max_size', '300M');
ini_set('upload_max_filesize', '300M');
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
- person ttrasn   schedule 18.12.2019