PHP Zip extractTo - проблема с разрешениями - PullRequest
2 голосов
/ 18 мая 2009

Я пытаюсь распаковать Zip-архив на PHP, используя extractTo. Скрипт PHP запускается через веб-браузер, т.е. как «nobody».

Логика и поток:

  1. создает новый подкаталог (например, «abc») с разрешениями 0777 и владельцем «nobody» под корнем документа (то есть на один уровень выше public_html)

  2. копирует Zip-файл (из входящего каталога FTP в public_html) в подкаталог abc. Разрешения для этого Zip-файла установлены на 0777, владелец "nobody".

  3. создает «разархивированный» подкаталог в разделе abc, права доступа 0777 / nobody

  4. вызывает 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

1 Ответ

0 голосов
/ 23 мая 2009

... выясняется, что проблема была с самим файлом zip, который по-разному вызывал вышеуказанные ошибки, или вообще отсутствовал сообщение об ошибке (сбой скрипта)

...