1. Как уже ответили выше - Vagrant, либо Docker.
Первый попроще, можно конфиг например онлайн набить и попробовать сразу
puphpet.com . По сути Вагрант - это просто отдельный сервер, к которому ты обращаешься (он крутится в виртуальной машине, т.е инкапсулирован). И прокинуты отдельные порты в хост систему + файлы проекта синхронизируются.
Докер более мейнстримный, более умно использует ресурсы, но порог входа повыше будет. Зато его можно использовать для деплоя.
В целом и то, и то позволяет делать конфиги и работать с ними в состоянии близком или идентичном тем, что на продакшене.
2. Если сейчас работаешь с FTP и SFTP - то переходи на связку ssh + git. Это как бы следующий шаг.
примерно как будет выглядеть разработка и деплой :
Работаешь с проектом под основной машине, в виртуалке (докер/вагрант) выполняешь код, добиваешься рабочей бизнес логики. Пишешь миграции для данных, если надо, и изменения в коде+миграции коммитишь в репозиторий. Потом по ssh подключаешься к продакшн серверу, где развернут проект, по git pull скачиваешь все изменения и применяешь их, и запускаешь миграции если надо.
если надо - можешь откатиться.