Фон
Я разрабатываю веб-приложение со стандартным стеком LAMP. Я новичок в веб-разработке и изначально планировал просто передать свой код по FTP (после завершения) моему хостинг-провайдеру (в настоящее время BlueHost, но может измениться в будущем).
Поиск Сфинкса
Недавно я решил добавить на свой сайт функцию расширенного поиска, основанную на поиске Sphinx. Очевидно, это означало, что мне нужно было установить Sphinx на мою машину для разработки. Когда придет время запустить сайт, мне придется установить (через ssh) Sphinx на моем рабочем сервере. Это может потребовать много времени для отладки тонких различий в установках Sphinx для разработки и производства (и остальной части среды, если на то пошло).
Я все еще учусь
Я наткнулся на виртуальные машины, и похоже (поправьте меня, если я ошибаюсь), некоторые разработчики создают виртуальные машины для каждого проекта и загружают виртуальную машину на свой рабочий сервер. Это избавляет их от необходимости отлаживать свой код после его загрузки на рабочий сервер, тем самым увеличивая вероятность успеха.
Вопрос
Мой вопрос таков: имеет ли смысл разрабатывать на виртуальной машине и пытаться загрузить ее на мой рабочий сервер, когда разработка приложения будет завершена? Если да, можно ли это обычно делать для общих серверов или только для выделенных серверов? Если нет, не могли бы вы объяснить, что вы думаете о лучшем способе решения потенциальной проблемы различий между вашим сервером разработки и рабочим сервером.