Я пытаюсь распаковать Zip-архив на PHP, используя extractTo
. Скрипт PHP запускается через веб-браузер, т.е. как «nobody».
Логика и поток:
создает новый подкаталог (например, «abc») с разрешениями 0777 и владельцем «nobody» под корнем документа (то есть на один уровень выше public_html)
копирует Zip-файл (из входящего каталога FTP в public_html) в подкаталог abc. Разрешения для этого Zip-файла установлены на 0777, владелец "nobody".
создает «разархивированный» подкаталог в разделе abc, права доступа 0777 / nobody
вызывает extractTo
, чтобы разархивировать ZIP-файл в разархивированный подкаталог.
Код:
if ($zip->extractTo('$abc_unzipped_path') === TRUE)
{
[more code]
}
Шаг 4 приводит к тому, что скрипт php возвращает следующую ошибку:
ZipArchive :: extractTo () [ziparchive.extractto]: Отказано в доступе в [пути и имени скрипта] в строке [номер строки извлечения для вызова]
Может кто-нибудь увидеть, где может быть проблема с разрешениями?
- PHP версия 5.2.9
- Zlib 1.2.3