ほとんどの場合、php を実行しているユーザー (www-data
デフォルトでは debian で) は、ディレクトリへの書き込み権限を持っていません。次のようなさまざまな関数の結果を確認します。
<?php
$zip = new ZipArchive();
$res = $zip->open('test.zip', ZipArchive::CREATE);
if (!$res){
echo 'Error while creating zip file: ' . $zip->getStatusString();
exit();
}
if (! $zip->addFile('Banner1.png', 'Banner1.png')) {
echo 'Error while adding Banner1: ' . $zip->getStatusString();
exit();
}
if (! $zip->close()) {
echo 'Error while closing: ' . $zip->getStatusString();
exit();
}
デフォルト設定の debian では、 chownとchmodでパーミッションを設定できます。たとえば、Web サーバーがそのディレクトリに書き込めるようにするには、次のようにします。
sudo chown www-data /path/to/directory/with/php/file
sudo chmod u+rwx /path/to/directory/with/php/file