Веб-разработка с использованием Sphinx на виртуальной машине для общих и выделенных серверов - PullRequest
0 голосов
/ 21 июня 2011

Фон

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

Поиск Sphinx

Недавно я решил добавить функцию расширенного поиска на свой сайт с поддержкой поиска Sphinx.Очевидно, это означало, что мне пришлось установить Sphinx на мою машину для разработки.Когда придет время запустить сайт, мне нужно будет установить (через ssh) Sphinx на свой рабочий сервер.Это может потребовать много времени для отладки тонких различий в установочных и производственных установках Sphinx (и остальной среды в этом отношении).

Я все еще учусь

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

Вопрос

У меня такой вопрос: Имеет ли смысл разрабатывать на виртуальной машине и пытаться загрузить ее на свой рабочий сервер после завершения разработки приложения?Если да, то может ли это быть сделано для общих серверов или только для выделенных серверов?Если нет, не могли бы вы объяснить, что, по вашему мнению, является наилучшим способом решения потенциальной проблемы различий между вашими серверами разработки и производственными серверами.

Ответы [ 2 ]

0 голосов
/ 22 июня 2011

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

0 голосов
/ 22 июня 2011

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

Обычный процесс состоит в том, что у вас есть 3 сервера / среды (в идеале 4 было бы неплохо).

  1. Сервер разработки - это ваша локальная рабочая машина, и вы на этоммашина.Это может быть в совершенно другой среде, чем ваш рабочий сервер.

  2. промежуточный сервер - в идеале этот сервер должен быть идентичной копией вашего живого сервера.Этот сервер обычно содержит нестабильную версию вашего приложения со всеми последними коммитами.Наличие вашего промежуточного сервера как можно ближе (с точки зрения системы) к вашему производственному серверу поможет вам выявить и решить проблемы в среде, прежде чем они возникнут, чтобы вас ослепить на рабочем сервере.

  3. Рабочий сервер - это ваш действующий сервер.Если у вас есть стабильная версия на промежуточном сервере, вы просто развернете кодовую базу на своем живом сервере.Это то место, где ваши рабочие и промежуточные серверы, идентичные друг другу, помогают, так как вам не нужно беспокоиться о разнице в окружающей среде.

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

Если вы работаете на общем сервере, лучше всегоесли у вас есть два домена, настроенных с вашим веб-приложением.Имейте что-то вроде http://beta.webapp.com на своем сервере и используйте его в качестве промежуточного сервера.

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

...