Egy nagyon egyszerű megoldás sok helyzetben, egy nagyon komoly probléma miatt. Abban a szcenárióban, ahol egy olyan weboldalt kell mozgatnunk, amelynek fájlai száma néhány ezer, és a web hosting szolgáltató nem nyújt nekünk a biztonsági rendszer az archiválás vagy más hasonló módszer lehetővé teszi számunkra, ezt, FTP-átvitel Ez egy olyan megoldás, hogy mi lenne, hogy nagyon hosszú.
A weblapot kiszolgáló kiszolgálóra feltöltött PHP-szkript segítene nekünk tar formátum archiválását az összes fájlt egy mappába.
Hogyan archiválhatom a fájlokat és mappákat egy webszerveren a PHP szkript segítségével?
Másolja az alábbi szkriptet, és tegye a .php fájlba a szerveren. Példa: az arhiva.php az alábbi szkriptet tartalmazza:
<?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();
}
?>
Óvatos! A szkriptet abba a mappába kell feltölteni, ahová a mappát és az azokat tartalmazó fájlokat archiválni szeretnénk. Például, ha a wp-content mappa összes tartalmát archiválni akarjuk, al WordPress, az általunk arhiva.php elnevezésű fájl feltöltődik a / wp-content / mappába.
Az archívum az arhiva.php fájl elérésével jön létre a böngészőben. URL: http: ..web_name.tld / wp-content / archive.php, és a művelet végén a szerveren jelen lesz az archive.tar fájl.
Ha nagy mennyiségű fájlja van, módosítsa a végrehajtási idő "timeout" értékét. Ezt megteheti a php.ini vagy a .htaccess fájlból.