Много прост решаване в много ситуации, за доста сериозен проблем. В сценария, в който трябва да преместим уеб сайт, чиито файлове са няколко хиляди, и уеб хостинг доставчикът не ни предоставя система за архивиране с архивиране или друг подобен метод, който ни позволява това, FTP трансфер е решение, което ще отнеме много дълго време.
PHP скрипт, качен на сървъра, който е домакин на уеб сайта, ще ни помогне да го направим катран формат архивиране на всички файлове в дадена папка.
Как да архивирам файлове и папки на уеб сървър, използвайки PHP скрипт?
Копирайте скрипта по-долу и го поставете във .php файл на сървъра. Пример: arhiva.php, за да съдържа скрипта по-долу:
<?php
try {
//make sure the script has enough time to run (300 seconds = 5 minutes)
ini_set('max_execution_time', '300');
ini_set('set_time_limit', '0');
$target = isset($_GET["targetname"]) ? $_GET["targetname"] : 'archive.tar'; //default to archive.tar
$dir = isset($_GET["dir"]) ? $_GET["dir"] : './.'; //defaults to all in current dir
//setup phar
$phar = new PharData($target);
$phar->buildFromDirectory(dirname(__FILE__) . '/'.$dir);
echo 'Compressing all files done, check your server for the file ' .$target;
} catch (Exception $e) {
// handle errors
echo 'An error has occured, details:';
echo $e->getMessage();
}
?>
Внимателен! Скриптът трябва да бъде качен в папката, където искаме да архивираме папката и файловете, които ги съдържат. Например, ако искаме да архивираме цялото съдържание на папката wp-content, ал WordPress, файлът, който нарекохме arhiva.php, ще бъде качен в /wp-content /.
Архивът се създава чрез достъп до файла arhiva.php в браузъра. url: http: ..web.name.tld / wp-content / archive.php и в края на операцията на сървъра ще присъства файл archive.tar.
Ако имате голям обем файлове, променете стойността "timeout" на времето за изпълнение. Можете да направите това от php.ini или .htaccess.