php, exec('zip'), Linux
От: marx paul Германия Провести онлайн-опрос
Дата: 22.04.09 20:46
Оценка:
приветствую!


случилось у меня желание создавать время от времени на сайте архивы загруженных пользователями картинок с тем, чтобы польхователи могли в случае чего "забрать" все свои картинки одним махом (в .zip).

делаю архив вот таким незатейливым способом:

system("zip userXXX.zip userXXX/*.jpg")

в результате архив создается, но, скотина, какой-то битый.
при попытки открытия оного при помощи линуксовского mc вижу сообщение "Inconsistent extfs archive".
сам архив при этом имеет правильный размер, но внутри пусто.

если же выполнять туже самую команду непостредственно из шела, то архив получается того же размера, но в нем ЕСТЬ файлы — их видно и их можно "достать". делаю вывод, на результат как-то ылияет факт вызова комманды из php-скрипта.

Вопрос: как устранить этот нехороший побочный эффект. то есть как сделать так, что бы Zip таки не просто создавался и имел размер, но и не гнал бочку вида "Inconsistent extfs archive"?

ЗЫ: на месте system я перепробовал все, что можно exec, shell_execute, passthru — все время один и тот же эффект
ЗЗЫ: php НЕ в safe mode

заранее спасибо за помошь!
Провести онлайн-опрос
Online-Umfrage erstellen
Re: php, exec('zip'), Linux
От: Роман Дубров Украина Я@Blogspot
Дата: 23.04.09 11:29
Оценка: 2 (1)
marx paul пишет:

> сам архив при этом имеет правильный размер, но внутри пусто.


ну... кроме того что пхп запущен от apache, а руками из консоли — от
какого-то нормального юзера, других отличий нет. Права?
Posted via RSDN NNTP Server 2.1 beta
http://www.linkedin.com/in/romandubrov .::. http://roman-dubrov.blogspot.com/ .::. http://www.flickr.com/photos/romandubrov/
Re[2]: php, exec('zip'), Linux
От: marx paul Германия Провести онлайн-опрос
Дата: 27.04.09 21:30
Оценка:
Здравствуйте, Роман Дубров, Вы писали:

РД>marx paul пишет:


>> сам архив при этом имеет правильный размер, но внутри пусто.


РД>ну... кроме того что пхп запущен от apache, а руками из консоли — от

РД>какого-то нормального юзера, других отличий нет. Права?

Спасибо за мотивацию к дальнейшим экспериментам!
Разобрался — во все виноват ключ "-j" и путь от корня серверной машины.
Кто бы мог подумать — при запуске из шела ни ключ, ни подробный путь не обязателены, а при запуске из скрипта надо писать все...

короче, вместо
system("zip userXXX.zip userXXX/*.jpg")
пишим
system("zip -j userXXX.zip /serverroot/homes/userhome/web/somedir/userXXX/*.jpg")

ну как об этом можно знать заранее!? Прям что?где?когда? какой-то этот линукс...
Провести онлайн-опрос
Online-Umfrage erstellen
Re[3]: php, exec('zip'), Linux
От: Роман Дубров Украина Я@Blogspot
Дата: 28.04.09 10:34
Оценка: 5 (1)
marx paul пишет:

> Кто бы мог подумать — при запуске из шела ни ключ, ни подробный путь не

> обязателены, а при запуске из скрипта надо писать все...

при запуске из shell environment юзера с путями и curdir загружается,
при запуске из скрипта — нет
Posted via RSDN NNTP Server 2.1 beta
http://www.linkedin.com/in/romandubrov .::. http://roman-dubrov.blogspot.com/ .::. http://www.flickr.com/photos/romandubrov/
Re[4]: php, exec('zip'), Linux
От: marx paul Германия Провести онлайн-опрос
Дата: 28.04.09 19:48
Оценка:
Здравствуйте, Роман Дубров, Вы писали:

РД>marx paul пишет:


>> Кто бы мог подумать — при запуске из шела ни ключ, ни подробный путь не

>> обязателены, а при запуске из скрипта надо писать все...

РД>при запуске из shell environment юзера с путями и curdir загружается,

РД>при запуске из скрипта — нет

curdir, как не странно, при запуске из скрипта тоже корректно определяется.
Провести онлайн-опрос
Online-Umfrage erstellen
Re[5]: php, exec('zip'), Linux
От: Роман Дубров Украина Я@Blogspot
Дата: 29.04.09 10:57
Оценка: 4 (1)
marx paul пишет:

> curdir, как не странно, при запуске из скрипта тоже корректно определяется.


не совсем так... у скрипта свой curdir, у запущенного из-под него шелла
— свой, у запущенных из этого шелла программ может уже свое быть
Posted via RSDN NNTP Server 2.1 beta
http://www.linkedin.com/in/romandubrov .::. http://roman-dubrov.blogspot.com/ .::. http://www.flickr.com/photos/romandubrov/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.