I can not create a zip in Debian even with the folder with 777 permission, and the worst is that it does not return any error.
Code that I use to create the zip:
function Compress($source_path, $chave)
{
// Normaliza o caminho do diretório a ser compactado
$source_path = realpath($source_path);
// Caminho com nome completo do arquivo compactado
// Nesse exemplo, será criado no mesmo diretório de onde está executando o script
$zip_file = DIR_ARQUIVOS.$chave.'.zip';
// Inicializa o objeto ZipArchive
$zip = new ZipArchive();
$zip->open($zip_file, ZipArchive::CREATE | ZipArchive::OVERWRITE);
// Iterador de diretório recursivo
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($source_path),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file) {
// Pula os diretórios. O motivo é que serão inclusos automaticamente
if (!$file->isDir()) {
// Obtém o caminho normalizado da iteração corrente
$file_path = $file->getRealPath();
// Obtém o caminho relativo do mesmo.
$relative_path = substr($file_path, strlen($source_path) + 1);
// Adiciona-o ao objeto para compressão
$zip->addFile($file_path, $relative_path);
}
}
// Fecha o objeto. Necessário para gerar o arquivo zip final.
$zip->close();
// Retorna o caminho completo do arquivo gerado
return $zip_file;
}