Für HTML / JS nutze ich meist Sublime Text 3.
Und für PHP meistens Netbeans oder Eclipse (natürlich angepasst durch diverse Addons, ich weiß dass Eclipse out of the box ziemlich crap ist
). Muss sagen, dass ich PHPstorm garnicht so geil wie 90% der Leute hier finde..
Wobei mein Dev Setup folgendermaßen aussieht:
Lokal bei mir im Netzwerk:
1. Dev-Server auf dem läuft die Datenbank mit Testdaten oder eine abgespeckte Kundendb. Sowie ein SVN Server zur Versionskontrolle und der Webserver.
2. Bei mir lokal läuft zur Entwicklung ein Webserver direkt aus meiner IDE heraus mit dem Code direkt aus meinem lokalen SVN Repo. Wobei die Daten aus der Datenbank des Dev-Servers geladen werden.
3. Staging-Server auf dem läuft auch ein SVN Server, sowie eine eigene Datenbank. Die Applications hier connecten auf die eigene Datenbank. Hier sind Datenstände, die vom Kunden eingespielt werden. Der Kunde hat Zugriff auf den Staging-Server und kann hier seine Sachen testen, ohne mich zu stören und immer mit einem hoffentlich lauffähigen Stand (bei manchen Projekten wird hier auch Nachts ein Abbild des Dev-Servers eingespielt).
So hast du dann a) die Kontroller über deinen Source Code und kannst b) mit verschiedenen Datenständen testen.
Und da du deinen Server in der IDE laufen lässt sollte Debugging kein Problem darstellen
Natürlich brauchst du so ein Setup nicht, wenn du nur für dich Privat und alleine ohne ein Team entwickelst. Dann würde ich dir zu folgendem Setup raten:
Code local in einem Git-Repository, dann hast du ne komplette Versionsverwaltung ohne zwingend einen Server dazu nutzen zu müssen (Git-Repos sind lokal komplett funktionsfähig).
Dann würde ich mir local einen Datenbank-Server installieren, damit du lokal auch Daten hast.
Als Webserver oder Applicationserver würde ich einen in deiner IDE integrierten nehmen, dann sollte das mit dem Debugging am einfachsten umzusetzen sein, natürlich am besten der, der auch auf deinem Live-System läuft.
An sich sollten von den Versionen der verwendeten Software etc in jedem Projekt auf jedem Server alles exakt gleich sein.
Läuft bei dir beispielsweiße PHP 5.3 auf deinem Live-Server. Sollte bei dir lokal auch PHP 5.3 laufen und nicht 5.7! Sonst bekommst du nacher ggf. Kompatibilitätsprobleme und das nervt und kostet wahnsinnig viel Zeit.