Как распаковать ZIP архив на FTP-сервере

Если Вам приходится достаточно часто копировать на FTP-сервер скрипты, содержащие большое количество файлов (например, системы управления сайтом, блоги), то можно применить гораздо более удобный способ их закачки – первоначально упаковать в ZIP архив и в последствии распаковать прямо на сервере.

Согласитесь, что процесс закачки проходит значительно быстрее, если заливаешь всего один файл, нежели все файлы по отдельности, при условии одинакового размера в том и другом случае. Когда закачивается туча файлов, происходит множественное обращение FTP-клиента к серверу после каждого файла, на что уходит определенное время.

Более того, например, при использовании SOCKS или прокси, во время закачки множества маленьких файлов может произойти разрыв соединения с FTP-сервером (именно так у меня часто случается при коннекте через SOCKS), а это сулит еще большее количество потраченного времени, чего не случается, когда заливаешь всего один файл.

При частом повторении одних и тех же действий любой стремится упростить выполняемую задачу. Поэтому я, недавно столкнувшись с необходимостью частой установки движка WordPress, стал искать более простой и удобный способ его закачки на FTP-сервер.

Раздобыл полезную тулзу, называется PHP Unzipper – скрипт, который за считанные секунды распакует закачанный на сервер zip архив. Вот его предназначение:

  • Незаменимый инструмент для веб-мастера, которому часто приходится закачивать на сайт много файлов и папок.
  • Позволяет значительно сэкономить время и трафик (архив занимает гораздо меньший размер, кроме того при закачке большого количества файлов, исходящий трафик создает значительно большую долю входящего трафика, как раз за счет частого обращения к серверу) – достаточно закачать архив и скрипт распакует его мгновенно.
  • Дополнительной функцией тулзы является возможность просмотра структуры директорий на сайте, а также возможность просмотра содержимого zip архивов на сервере без их распаковки.
  • Скрипт очень прост в установке, использует авторизацию по логину и паролю.

PHP Unzipper

Загрузок: 15639 | Размер: 38 Кб

Как устанавливается:

  1. Закидываем находящиеся в архиве файлы index.php и pclzip.lib.php на сервер в ту папку, куда будем устанавливать движок (возможно потребуется переименовать index.php в любой другой, поскольку закачиваемый скрипт движка может иметь файл с таким же названием).
  2. Устанавливаем CHMOD для файла index.php на 777 (примечание — не знаю, почему, но в инструкции к скрипту написано именно так, а практика показала, что 777 нужно ставить для папки, в которую будет распаковываться архив).
  3. Открываем index.php в браузере, скрипт попросит зарегистрироваться – указываем логин и пароль (если после регистрации снова появилась эта же форма, устанавливаем для папки, в которую закачан PHP Unzipper, CHMOD на 777).
  4. Авторизуемся для работы с zip архивом.

При архивировании скрипта движка прошу обратить внимание на тот момент, что архивировать нужно не саму папку, в которой лежит этот скрипт, а то, что в ней находится, поскольку в каком виде вы запакуете движок, в таком виде его и разархивирует PHP Unzipper.

Используя данный инструмент, заметил, что на некоторых серверах может возникнуть ситуация, когда файлы, распакованные таким образом становятся залоченными, т.е. их невозможно перезаписать или сменить им права доступа вручную.

В таком случае нужно установить им права доступа PHP-средствами.

Для смены CHMOD файлам и папкам следует запустить php-файл со следующим кодом:

[cc lang=»php»]chmod ("file1.php", 0666);
chmod ("file2.php", 0666);
chmod ("directory1", 0777);
chmod ("directory2", 0777);
?>[/cc]

что устанавливает права доступа 666 к файлам file1.php и file2.php и права доступа 777 папкам directory1 и directory2.

Нашел также варианты PHP-кода для смены чмода сразу всем вложенным файлам и папкам, но, к сожалению, ни один не сработал. Поделитесь инфой, если знаете, как это делается.

Update 28.04.09: Сергей Предводителев предложил скрипт, который массово меняет права доступа — Рекурсивная смена прав доступа на PHP.

* * *

Студия «МастерВеб» специализируется на предоставлению услуг по размещению рекламы в Интернете (как медийной, так и контекстной) с целью привлечения целевой аудитории на продвигаемый сайт, и, как следствие, увеличения продаж товаров и услугу.

Теги: , , автор: Dimox | рубрика Веб-мастеринг

Комментарии (82) »

  1. 69
    Николай

    Почему распаковывается не в Ту папку, где лежит скрипт, а создает папку и в нее кидает файлы?

  2. Спасибо. А я тут скриптик нашел на PHP)). Вот тут ссылочка http://is.gd/GF6flJ

    @
  3. Крутая штука) Задолбался по ftp кидать фреймворки

  4. Отличный скрипт (первый). Простое решение простых задач. Вместо длинных и нудных скриптов с большим количеством настроек и всякой хренью… В общем спасибо!

  5. Тру статья, огромное спасибо.

  6. Хорошо расписали, молодец! Только Вы забыли сказать, что по ФТП, папки, созданные (или разархивированные) каким-либо скриптом РНР, сложно удаляются. Точней, созданные вроде вообще не удаляются а разархивированные удалить можно но хитро: нужно удалить сначала файлы в ней, а потом лишь саму папку. Если попытаетесь удалить папку с файлами, потом она будет там видна (по ФТП) но при каком-либо действии с ней менеджер ФТП будет отвечать что папка удалена. :)
    Я данный скрипт давно пользую, только покромсал его: удалил коды для логина/пароля, т.к. имею свою рабочую папку на сервере. А второй вариант сделал для товарища попроще — для разового использования, склеил все в один файл. Описал и выложил здесь — Распаковка архива ZIP на сервере по FTP

  7. Работает лихо, конечно…..Только на все распакованные папки ставит чмоды 777 и не дает изменить..

  8. Открыл скрипт, как сказано в корневой папке и… что?? Как заархивировать файлы? Он просто показывает мне список директорий и все…

  9. Спасибо большое, как раз то, что искал.

  • Похожие статьи
  • Предыдущие из рубрики