Uma solução muito simples em muitas situações, para um problema bastante sério. No cenário em que temos que mover um site, cujos arquivos são alguns milhares, e o provedor de hospedagem na web não nos fornece um sistema de backup com o arquivamento ou outro método similar para nos permitir isso, Transferência por FTP É uma solução que levaria muito tempo.
Um script PHP enviado para o servidor que hospeda o site nos ajudaria a fazer isso formato tar arquivamento de todos os arquivos em uma pasta.
Como faço para arquivar arquivos e pastas em um servidor web, usando script PHP?
Copie o script abaixo e coloque-o em um arquivo .php no servidor. Exemplo: arhiva.php para conter o script abaixo:
<?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();
}
?>
Cuidadoso! O script deve ser carregado para a pasta onde queremos arquivar a pasta e os arquivos que os contêm. Por exemplo, se quisermos arquivar todo o conteúdo da pasta wp-content, al WordPress, o arquivo que chamamos de arhiva.php será carregado em /wp-content/.
O arquivo é criado acessando o arquivo arhiva.php no navegador. url: http: ..web_name.tld / wp-content / archive.php, e no final da operação no servidor estará presente o arquivo archive.tar.
Se você tiver um grande volume de arquivos, altere o valor de "tempo limite" do tempo de execução. Você pode fazer isso a partir de php.ini ou .htaccess.