PDA

Просмотр полной версии : "Прозрачное" обновление PHP-скриптов


Chat.nm.ru
07.06.2006, 12:04
Каким образом можно осуществить обновление PHP-скриптов на сайте, если ресурс очень посещаем и к PHP-скриптам происходит очень интенсивное обращение? Если обновлять по FTP через диал-ап, то, естесственно, в то время пока файл будет заливаться, пользователь увидет ошибку, обратившись к этому PHP-скрипту во время его выгрузки (хотя может произойти и кое-что похуже :).
Таким образом, в идеале хочется вот что: спокойно заливаю нужные php-скрипты по FTP или через скрипт, после чего происходит обновление этих скриптов на стороне сервера за считанные доли секунды или специальный скрипт отлавливает тот момент, когда php-скрипт последний раз выполнился и уже при следующем его вызове сервером отдаётся новый обновлённый php-скрипт.

В принципе могу реалезовать такой скрипт через rename (ну + ещё что-нибудь прикрутить типа flock), но может быть существует более правильный и надёжный инструмент для этой цели, может быть этот велосипед уже сделан до меня? =)

ferryman
07.06.2006, 12:10
В примере - закрывать на профилактику... как на форумах...

pch
07.06.2006, 13:14
Можно закачивать все обновления в папку, например, update. В неё же поместить скрипт на php, который будет перемещать все файлы из этой папки на уровень выше. Можно перемещать и вручную, если есть shell на этом сервре. Поскольку перемещение файла с одного места на другой на сервере - очень быстрая операция, то пользователи вряд ли это заметят.

Trinux
07.06.2006, 16:35
ННМ.ру, по 120к хостов в сутки, хитов за лям. Каюсь, просто обновляю скрипты с ФТП. Ошибки выключены, пользователи, попадающие в этот момент на ННМ видят бланк

Chat.nm.ru
07.06.2006, 18:44
закрывать на профилактику... как на форумахДа, у меня была такая идея, перезаписывать .htaccess, включающего авторизацию или deny from all при вызове нужного PHP-скрипта, но не катит. Это слишком банально и просто, а заботы о посетителях никакой. =)
перемещение файла с одного места на другой на сервере - очень быстрая операция, то пользователи вряд ли это заметятУгу, пожалуй наилучший вариант это rename. Только интересно, если перед этим заблокировать flock`ом перезаписываемый файл, какая реакция будет у апача при обращении к нему в этот момент... Не охото просто запариваться и проверять, но мне кажется это наиболее верный вариант.
Ошибки выключеныПонится кто-то говорил что у нормального кодера в любой ситуации никогда не должно выскакивать никаких нотисов и не подавляться ошибки. ;)

Trinux
08.06.2006, 00:40
2 Chat.nm.ru
ошибки выключены как раз на случай неработы скриптов по причинам форсмажера

godlove
08.06.2006, 11:23
Chat.nm.ru
ну еще ошибки выключают от взломщика(как писал Фленов "пхп глазами 31337 -))")
самый лучший вариант это закрывать на профилактику чат когда там количество пользовтелей стремится к 0(наверника такое бывает)