PHP не одинаков на всех платформах, и до недавнего времени в версиях Windows были проблемы, которых не было в версиях Linux. Множество полезных функций зависят от * nix.
Я бы повторил мнение @ Милана о разработке в среде развертывания. Делая это, вы узнаете намного больше о среде развертывания.
Что касается проблемы с виртуальной машиной, если вам нужны все инструменты Windows и ваш компьютер с Windows, настройте Linux сервер на своей виртуальной машине (если хотите, можете иметь графический интерфейс, но вы будете использовать в основном это как сервер). Настройте его так, чтобы windows мог просматривать установку apache, запущенную на вашей виртуальной машине, и вы используете общие ресурсы samba для доступа к файлам виртуальной машины, например к диску в windows. Таким образом, вы разрабатываете в Windows, но тестируете развертывание / настройку на работающем сервере Linux. В то время как два разработчика в моем магазине работают с Ubuntu, третьему нужно постоянно использовать Photoshop и различные другие программы для Windows, поэтому она использует этот метод для запуска сервера в виртуальной машине, но для разработки из Windows.
О, и если вы работаете в Linux, не используйте XAMPP! Несколько простых команд приведут вас в порядок, и вы получите гораздо лучшее представление о своем развертывании. XAMPP - это хорошо, но для ОС, у которых нет управления пакетами в Linux.