1. Правильно ли я понимаю, что верным решением будет поднять локальный сервер с apache и php, на нем настроить отладку и выполнение скриптов (создав по виртуальному хосту на каждый отдельный проект), и после отладки на локальном сервере (то есть своем компе под windows) загружать файлы на рабочий сервер?
Почти.
Apache в PHP уже давно не применяется (кроме старых проектов), его стоит заменить на nginx.
И сервер ваш должен быть под той же ОС, что и на сервере (можно использовать виртуалку с vagrant).
2. Есть ли смысл при этом поднимать и БД локально со всеми данными или просто в соединении прописать ip продакшн-сервера?
Ни в коем случае нельзя прописывать продакшн.
3. Apache и php лучше ставить для этих целей скачав по отдельности, или воспользоваться сборкой, например denwer?
vagrant. Ставьте системные версии, если не знаете, какие вам подойдут лучше.
4. Есть ли смысл поднимать систему контроля версий, если я занимаюсь проектом один, а phpstorm позволяет своими средствами посмотреть историю изменений (и бекапы ежедневные делаются с продакшена)?
Есть. Без git намучаетесь. Он очень сильно позволяет экономить время и увеличивает надёжность действий.