PHP ZipArchive 600
PHP ZipArchive chmod 600 проблема доступа к файлу.
Создается темповый (временный) архив, с правами 600 (-rw-------) из-за чего не может с ним работать.
Вот как выглядит архив: archive_19-05-2020_18-33-51.zip.GIKCH2
Локально все отрабатывается и темповый файл я даже не вижу в процессе работы. При переносе на сервер (linux), появляется проблема с доступом к архиву.
Собственно сам код, тут все стандартно.
$zip = new \ZipArchive();
if ($zip->open('upload/archive_19-05-2020_18-33-51.zip', \ZipArchive::CREATE) !== TRUE) {
throw new \Exception('Cannot create a zip file');
}
$zip->addFile('upload/file.txt', 'file.txt');
$zip->close();
При генерации других файлов, того же csv, файл получает права 644 и с ним можно спокойно работать.
Не могу понять в чем проблема, почему архив создается с ограниченными правами, хотя локально на (windows) все работает без проблем.
Ответы (1 шт):
Если процесс не может создать файл в директории, значит у него нет на это прав. Это не ошибка кода, а настроек доступа к директории для пользователя, под которым запускается скрипт. Так же, скорее всего, если директории не существует, то она не будет создана и тоже будет ошибка.
Можете использовать getStatusString функцию для получения информации об ошибке.