Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Автоматическое обновление кода
 
 автор: Loki   (14.05.2009 в 12:06)   письмо автору
 
 

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

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

3. скрипт скачивает файл, а затем консольными командами разворачивает поверх старого кода.
плюсы - быстро, просто. Минусы - почти та же чехарда с правами что и в первом варианте. Плюс ко всему, необходим доступ к exec, а он не везде есть...

в общем, вот такие я придумал варианты... может у кого есть идеи или обкатанные решения как эту задачу можно реализовать?

  Ответить  
 
 автор: SeletSKY   (14.05.2009 в 12:13)   письмо автору
 
   для: Loki   (14.05.2009 в 12:06)
 

Точно не понял что Вы хотите, но по любому придется "играть" с правами, пишите один скрипт который будет выполнять эту работу, а потом в процессе обновления, после успешной замены (копирования) файла ставите на него права.

  Ответить  
 
 автор: Loki   (14.05.2009 в 12:37)   письмо автору
 
   для: SeletSKY   (14.05.2009 в 12:13)
 

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

  Ответить  
 
 автор: SeletSKY   (14.05.2009 в 15:35)   письмо автору
 
   для: Loki   (14.05.2009 в 12:37)
 

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

  Ответить  
 
 автор: Loki   (14.05.2009 в 16:02)   письмо автору
 
   для: SeletSKY   (14.05.2009 в 15:35)
 

Типичная ситуация:
Скрипт залитый по фтп имеет права 644 и владельца user
запускается он апачем, запущенным из под www-data. Так что все чмоды и прочие човны, равно как и попытки редактирования этого файла тут же идут лесом. Как минимум до тех пор, пока его права не станут 666 или не сменится пользователь.
Так понятнее?

  Ответить  
 
 автор: GeorgeIV   (14.05.2009 в 15:21)   письмо автору
 
   для: Loki   (14.05.2009 в 12:06)
 

Может попробовать на основе CVS. По крону раз в сутки запускается скрипт, и если есть обновление - обновляет

  Ответить  
 
 автор: Loki   (14.05.2009 в 15:57)   письмо автору
 
   для: GeorgeIV   (14.05.2009 в 15:21)
 

Речь не о моем сервере, а об удаленном. Что там будет стоять и что можно поставить я и знать не буду. Если там нет svn или человеку лень разобраться как он работает, обновления все равно должны быть возможны.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования