Какое хорошее решение для развертывания сайта PHP / MySQL через FTP? - PullRequest
0 голосов
/ 09 ноября 2008

В настоящее время я работаю над веб-приложением, использующим PHP и MySQL, но у меня нет доступа к серверу оболочки (уже работаю над этой проблемой ...). В настоящее время у меня есть контроль версий с subversion на моем локальном компьютере, и у меня есть база данных на локальном компьютере, в которую я делаю все изменения. Затем, как только я проверил все обновления на моем локальном компьютере, я развернул сайт вручную. Я использую filezilla для загрузки обновленных файлов, а затем вывожу свою локальную базу данных и импортирую ее на сервер развертывания.

Очевидно, что мое текущее решение не близко к идеалу. Во-первых, мне нужен способ избежать копирования моих файлов .svn ... Кто-нибудь знает, каким будет лучшее решение для этой конкретной установки? Я немного посмотрел на Capistrano и Ant, но оба они выглядят так, как будто у меня нет доступа к оболочке ...

Ответы [ 3 ]

3 голосов
/ 09 ноября 2008

Я использую Weex для синхронизации сервера через FTP. Weex - это неинтерактивный FTP-клиент, который автоматически загружает и удаляет файлы / каталоги на удаленном сервере. Его можно настроить так, чтобы он не загружал определенные пути (например, каталоги SVN), а также сохранял определенные удаленные пути (например, каталоги журналов).

К сожалению, у меня также нет решения для синхронизации баз данных MySQL ...

Возможно, вы могли бы зарегистрировать изменения вашей базы данных в «сценариях SQL-патчей» (или использовать полные дампы), загрузить их с Weex и вызвать удаленный PHP-скрипт, который впоследствии выполняет SQL-патчи.

2 голосов
/ 09 ноября 2008

Я использую rsync на производстве, но вы можете сделать это:

Добавьте таблицу настроек на свой сайт, чтобы указать уровень БД, на котором вы сейчас находитесь.

Во время разработки храните каждый набор изменений SQL в одном файле (я использую что-то вроде delta_X-up.sql). Они также останутся в вашем SVN. Так, например, если вы находитесь в delta_5 и добавляете таблицу между текущим выпуском и новым выпуском, весь необходимый SQL-запрос будет помещен в delta_6-up.sql

Когда придет время строить, экспортируйте репо вместо использования извлечения. Это позволяет вам игнорировать все, что происходит с SVN, поскольку вам это не понадобится для производства.

Используйте Weex , чтобы внедрить эти изменения в производство (это было бы, если бы я использовал rsync, но у вас нет такой опции). Вызовите удаленный сценарий, который проверяет вашу конфигурационную базу данных, чтобы узнать, на каком уровне дельты вы находитесь в данный момент, проанализируйте каталог с вашими файлами delta_x-up.sql и посмотрите, есть ли новые. Если есть, прочитайте их и запустите SQL внутри.

1 голос
/ 09 ноября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...