Вы можете использовать тот факт, что переименование каталогов происходит быстро и легко даже через FTP. Что я обычно делаю, это:
Имеется две директории, website_live
и website_upload
website_live
содержит живой сайт (очевидно)
Загрузить содержимое на website_upload
Переименование website_live
в website_old
(или что угодно)
Переименовать website_upload
в website_live
сделано! Время простоя менее двух секунд, если вы переименуете быстро.
Это становится немного сложнее, если вы загрузили контент в старой версии (например, из CMS), который вам нужно перенести в новую. Делать это вручную каждый раз неудобно, но в основном это просто простые операции переименования (переименование также работает без усилий в FTP).
Это задача, которую можно довольно просто автоматизировать с помощью простого сценария развертывания. Если вы работаете в Linux, настроить сценарий оболочки для этого легко. В Windows очень хороший инструмент, с которым я работал для автоматической синхронизации FTP, переименования и обработки ошибок - даже если нетехнические люди запускают процесс - это ScriptFTP . Он поставляется с хорошим языком сценариев и хорошей документацией. Это не бесплатно, хотя.
Если вы хотите заняться автоматизированным развертыванием PHP, я недавно провел некоторые исследования в этой области. Возможно, ответы на мой недавний вопрос о вознаграждении могут вдохновить вас.