2009-12-14 4 views
4

Я читал несколько тем в одном и том же виде, как этот, но, честно говоря, я все еще не совсем уверен в лучшем подходе (как отправная точка). Я являюсь сольным разработчиком в небольшом офисе, и у меня есть около 30 веб-сайтов, размещенных на Linux VPS. Я хочу начать использовать с помощью управления версиями (возможно, SVN), а также настроить промежуточный сервер. На данный момент я занимаюсь разработкой либо локально на своей машине, прежде чем использовать FTP для загрузки на живой сервер, или для небольших изменений. Я редактирую удаленные файлы напрямую, что не является идеальным подходом.Среда разработки - VCS от разработки до промежуточного сервера до производства

Я ищу некоторые рекомендации по улучшению моей среды разработки. Я предполагаю, что я должен установить SVN на веб-сервере, который затем позволит мне проверить версии на моей локальной машине (что также потребует SVN, я думаю). Кроме того, если я хочу настроить промежуточный сервер, должен ли я настраивать субдомены для каждого из живых веб-сайтов, а затем использовать эти поддомены для отображения изменений клиентов на сайте, прежде чем делать их живыми?

Надеюсь, что это имеет смысл!

ответ

0

Фактически вы можете установить сервер SVN на свой локальный компьютер, который я бы рекомендовал вместо установки его на веб-сервере (при условии, что вы делаете резервные копии). Самое простое, что нужно сделать, поскольку он использует только протокол file://, но использование svnserve является более надежным и предпочтительным, если вы хотите потратить время на это.

+1

Если у вас есть репо на вашем сервере и в вашем доме, почему бы просто не использовать что-то вроде git, которое было построено с нуля, чтобы делать такие вещи. –

+0

ОП не предполагал, что он рассматривает возможность наличия нескольких хранилищ. –

0

@Michael, я не согласен - я бы сказал, что лучше установить на vps linux, особенно если вы уже платите за услугу хостинга. Мне очень полезно иметь возможность просматривать и скачивать материал из моего репозитория SVN, где бы я ни был, с любого компьютера, на котором я нахожусь.

@ nicky, я начал с svn (и контроля версий) несколько лет назад, и я сделал детские шаги, которые облегчили решение.

Если бы мне пришлось это сделать снова, я бы начал читать svn book. Книга очень хорошо выложена и не занимает более 1-2 дней, чтобы пахать.

Пока вы читаете, установите svn на свои Linux vps с помощью apache front end.

Как только у вас есть это, выберите один из ваших сайтов и импортируйте его в svn. Вот как я структурирую свое репозиторию SVN. Так, например, сказать, что мой репо размещен на http://mysvn.mydomain.com/svn/:

mywebsite1 
    - trunk 
    - tags 
    - branches 
    mywebsite2 
    - trunk 
    - tags 
    - branches 

Не беспокойтесь о создании совершенной структуры. Это очень легко реорганизовать, особенно когда вы начинаете. После того, как вы импортируете несколько проектов в svn, вы начнете ощущать, какие проекты должны иметь свою структуру «trunk/tags/branches» и которые могут быть объединены.

Для создания тестовых сред я делаю именно то, что вы описываете. Я использую скрипты сборки для проверки из svn и загрузки файлов в директории, которые сопоставляются с субдоменами типа «test.clientsite.com» (я работаю в основном в java и использую ant и maven, но я думаю, что вы можете использовать любой язык сценариев, знаком с).

Как только вы привыкнете к контролю версий, вы никогда не вернетесь, удачи!

+0

Достаточно честный; Я только рекомендовал его, потому что барьер для входа немного ниже, и, как мы все знаем, самое главное с контролем версий - начать использовать его как можно скорее! :-) –

+0

Да, хорошо, хорошо вставать и уходить как можно скорее, но все же думаю, что это стоит усилий для установки удаленно. – Upgradingdave

+0

Спасибо Дэйв - это хороший стартер для меня. Сначала я установлю SVN на VPS, как вы предлагаете, затем ознакомьтесь с ним на одном веб-сайте, прежде чем перейти к следующему шагу. Я потрачу некоторое время на изучение книги и надеюсь, что это будет на правильном пути! – nicky77

1

Это то, что мы делаем на работе:

У нас есть промежуточный сервер под управлением Apache и сервер Subversion.У нас есть крюк фиксации сообщения, который обновляет рабочую копию в каталоге htdocs, таким образом, когда разработчик совершает что-то, что он автоматически обновляется на промежуточном сервере, поэтому каждый может видеть последний код.

На производственных серверах клиента (те, которые мы можем контролировать) у нас установлен клиент Subversion, и веб-сайт является рабочей копией. Когда нам нужно обновить сайт, мы заходим в оболочку и запускаем svn up. Если вы сделаете что-то подобное, обязательно ограничьте доступ к каталогам .svn, либо с файлами .htaccess, либо из основной конфигурации Apache.

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

Мы никогда, никогда, редактировать файлы через FTP на живом сайте. В общем, мы используем эту настройку почти 2 года и, кроме случайного конфликта на промежуточном сервере, у нас никогда не было никаких проблем.

+0

Из любопытства; # 1. Вы также используете все файлы, например изображения? Веб-сайты, с которыми я часто работаю, находятся в cms, которые при загрузке изображений сохраняют версию изображения с высоким разрешением, а также несколько меньших вариаций => могут быстро стать значительным объемом данных. # 2 Как вы решаете бит базы данных. Промежуточный сервер работает против той же базы данных, что и в реальном времени, или вы также создали «промежуточную базу данных»? – Tommy

+0

1) Зависит от веб-сайта, по некоторым версиям мы показываем изображения на других, которых у нас нет. У нас никогда не было проблем с размером репо даже в крупных проектах. 2) У нас есть промежуточная база данных, у нас есть порт, открытый и «тестовый» пользователь, поэтому каждый разработчик подключается к промежуточной базе данных из своей локальной установки. Мы узнали, что мы не должны развиваться в производственной системе, будь то изменение кода или базы данных, даже контент, поставленный перед ударом производства. –

+0

Спасибо за ответ, Dinu :) Я могу полностью понять подход, но кажется «громоздким» делать все это, создавая новую базу данных и все, когда это что-то действительно малое, что нужно сделать. Если вы делаете это во всех изменениях независимо от размера, который звучит разумно, сколько времени нужно оценить, это добавляет к внесению изменений? Это когда-нибудь проблема, побуждающая клиента согласиться с тем, что для крошечных изменений потребуется значительное количество времени? – Tommy

Смежные вопросы