Сайт не работает во время загрузки важных файлов - PullRequest
3 голосов
/ 08 марта 2010

Привет, ребята. У меня проблема с поддержкой моего php-сайта. Мой сайт построен на Zend Framework. Когда я захочу загрузить новую копию или версию онлайн - во время загрузки, особенно когда загружаются и переписываются важные файлы, такие как модели и контроллеры, - сайт не будет работать по понятным причинам.

Есть ли способ загрузить сайт, не сталкиваясь с этой проблемой?

========

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

1 Ответ

7 голосов
/ 08 марта 2010

Вы можете использовать тот факт, что переименование каталогов происходит быстро и легко даже через FTP. Что я обычно делаю, это:

  1. Имеется две директории, website_live и website_upload

  2. website_live содержит живой сайт (очевидно)

  3. Загрузить содержимое на website_upload

  4. Переименование website_live в website_old (или что угодно)

  5. Переименовать website_upload в website_live

сделано! Время простоя менее двух секунд, если вы переименуете быстро.

Это становится немного сложнее, если вы загрузили контент в старой версии (например, из CMS), который вам нужно перенести в новую. Делать это вручную каждый раз неудобно, но в основном это просто простые операции переименования (переименование также работает без усилий в FTP).

Это задача, которую можно довольно просто автоматизировать с помощью простого сценария развертывания. Если вы работаете в Linux, настроить сценарий оболочки для этого легко. В Windows очень хороший инструмент, с которым я работал для автоматической синхронизации FTP, переименования и обработки ошибок - даже если нетехнические люди запускают процесс - это ScriptFTP . Он поставляется с хорошим языком сценариев и хорошей документацией. Это не бесплатно, хотя.

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

...