Лучший вариант для развертывания веб-приложения CakePHP на виртуальном хостинге - PullRequest
1 голос
/ 28 сентября 2011

Я всегда редактировал код в прямом эфире на сайте через FTP-соединение в Coda или аналогичном, однако я только что написал свое первое веб-приложение на PHP для регистрации пользователей и т. Д., И я очень опасаюсь, что мне понадобитсялучший план, чем "живое редактирование".Я нахожусь на виртуальном хостинге, поэтому я думаю, что такие вещи, как SVN и GIT, вероятно, отсутствуют, но есть ли какие-либо программы / скрипты / решения, которые позволят мне перенести код в живую на веб-сервер и иметь мастер-копию на моем Mac.

Как люди взаимодействуют с веб-приложениями / развертыванием и общим хостингом?

Ответы [ 2 ]

3 голосов
/ 28 сентября 2011

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

Она выполняется на разных этапах - это:

  1. Экспорт SVN из локального репозитория (это означает, что вы не делаетеВы не получите множество каталогов .svn)
  2. rsync экспортировал код на работающий сервер - но в режиме --dry-run, чтобы вы могли видеть, что на самом деле будет работать.Эта команда содержит некоторые исключения: --exclude app / tmp
  3. rsync в обычном режиме

Некоторые дополнительные функции, которые я вставил.

  • Поскольку я запускаю код на нескольких веб-серверах за балансировщиком нагрузки, я исключаю core.php и database.php.Затем я поместил ссылки на эти файлы на каждом из веб-серверов в централизованно доступную NFS.
  • Выполняется rsync to live, но он загружает его только один раз (в NFS).Затем сценарий развертывания запускает команду на удаленном сервере (через ssh), чтобы запустить rsync между NFS и веб-серверами.Это bash-скрипт, который означает, что я могу легко управлять веб-узлами и тем, как файлы выталкиваются.

Надеюсь, это поможет!

2 голосов
/ 28 сентября 2011

Я использую инструмент оболочки CakePHP, который я написал - который использует «rsynch» и загружает только дельту (изменения, сделанные до сих пор).с таким скриптом rsync можно быстро загружать измененные файлы.всего за 1-2 секунды.

с другим проектом, я должен все зафиксировать и все время вручную "svn update" сервер.очень раздражает + вам нужно совершать даже "этапы тестирования".

, так что в конце концов я рекомендую использовать приведенную выше дельта-загрузку.Удостоверьтесь, что вы НЕ загружаете какие-либо файлы tmp или, что еще хуже, переопределяете файлы на основе окружения, такие как закачки, кэшированные файлы и т. Д. Используя пакетные сценарии, такие как rsynch, вы обычно можете исключить некоторые каталоги.

моя конфигурация, например,

server      xxx
username    xxx
password    xxx
local       C:\...\app\
remote      /var/www/site
protocol    ftp
permissions ignore
state       timesize
exclude     _*
exclude     *__*
exclude     *~*
exclude     .svn
exclude     .git
exclude     /tmp
exclude     /files/uploads/*
exclude     /webroot/files/tmp
exclude     /webroot/img/content/*
...