NAS
Electronics

PHP Programmierumgebung einrichten

moonwalker99

Lt. Commander
Registriert
Jan. 2008
Beiträge
1.979
Wie richtet man sich am Besten eine PHP-Programmierumgebung unter windows ein? Ich habe das XAMPP runtergeladen, da gibt es ein Verzeichnis htdocs. Wie arbeitet ihr? Legt ihr alle eure Projekte da ab? Ich würde am Liebsten unter D:\ ein Verzeichnis public_html anlegen, damit es schneller erreichbar ist. Legt ihr für jedes Projekt eine eigene Datenbank an?

Sorry, falls die Fragen anfängerhaft klingen. Ich möchte ein wenig mit PHP-Frameworks programmieren bzw. diese kennenlernen. Bin für sinnvolle Tipps dankbar.
 
Normalerweise solltest du für jedes Projekt ein eigenes "Verzeichnis"/Projekt anlegen.
Genauso sollte es auch bei der Datenbank sein.
Gemeinsame Funktionalität könntest du in ein eigenständiges Projekt ablegen und dies entsprechend als ein Shared-Projekt bzw. Bibliotheken-Projekt definieren.
Je nach Entwicklungsumgebung besteht die Möglichkeit Anwendungen in einem Ordner liegen zu haben und die automatisch dem WebServer bekannt zu machen
- Eclipse PDT http://www.eclipse.org/projects/project.php?id=tools.pdt
- Zend Studio http://www.zend.com/de/products/studio/

Erstes Tool ist kostenlos und wird denke ich auch von vielen professionellen Entwicklern, wohingegen das zweite Produkt kostenpflichtig ist und Platzhirsch in dem Bereich ist.
 
Ich hab mir in einer VM einen Linux Server installiert auf dem Ich alles betreibe um möglichst nah an dem Zielserver zu sein wo später auch das programmierte laufen soll... upload dann ganz normal mit FTP. Falls du dich dann mit apache auskennst und die dns einträge richtig erstellst kannst du die einzelnen projekte unter eigener testurl auf dem VM Server erreichen.
 
Der Tipp mit der VM ist sehr gut! Hab ich damals auch viel gemacht, weils angenehmer ist, per DNS in der eigenen Umgebung das schnell zu testen. Apache musste dir eben mal anschauen, ob du damit klar kommst, wobei es nicht so schwer ist, wenn du ein wenig verständnis von DNS Hast!
 
Tip nebenbei: Wenn man auf dem Zielserver Dateien adhoc bearbeiten möchte, sollte man auf FTP verzichten und WinSCP benutzen, sofern SSH verfügbar ist.
 
hat von euch schon jemand mit Versionierung unter Windows gearbeitet? git z.B.?
Lohnt sich das?
Würde gerne ein Projekt mit dem Zend Framework 2 und Versionierung starten und frage mich ob ich damit gut fahre...
 
Malock schrieb:
Der Tipp mit der VM ist sehr gut! Hab ich damals auch viel gemacht, weils angenehmer ist, per DNS in der eigenen Umgebung das schnell zu testen. Apache musste dir eben mal anschauen, ob du damit klar kommst, wobei es nicht so schwer ist, wenn du ein wenig verständnis von DNS Hast!

Also eine VM ist sicher nicht schlecht, wenn man 90% oder 95% des Codes fertig hat. Aber zum direkten Entwickeln ist ein lokaler Webserver schon viel einfacher. Man kann direkt den Code am Laufwerk bearbeiten und entsprechend Testen, ohne dass man sich mit FTP(S) oder SFTP rumschlagen muss. Es gibt tolle Tools bzw. Erweiterungen (z.B. Firefox), womit die Seite automatisch sich aktualisiert, sobald eine Datei gespeichert wird.


MONSTER schrieb:
hat von euch schon jemand mit Versionierung unter Windows gearbeitet? git z.B.?
Lohnt sich das?
Würde gerne ein Projekt mit dem Zend Framework 2 und Versionierung starten und frage mich ob ich damit gut fahre...

Ich hab eine Weile mit git unter Windows gearbeitet. Es gibt im Grunde 2 Varianten, die sich teilweise lohnen:
1.Variante: git via cygwin
In dem Fall hat man eine auf Windows portierte Bash, die ähnlich gut wie unter Unix funktioniert. Der Nachteil ist, dass man nur innerhalb des Ordners und der Unterordner navigieren kann. Mit Tricks kommt man auch überall hin, aber ich fand das etwas mühsam.​

2.Variante: IDE bzw. Editor mit git-support
Ich habe eine lange Zeit in Netbeans entwickelt, wobei die Version 7.1 (glaub ich) natives git spricht. Damit kann man wunderbar aus der IDE heraus git administrieren und muss sich nicht um "hacks" wie cygwin kümmern.
Diese Variante find ich noch am angenehmsten. Auf einem Unixsystem einfach ein "bare git repo" anlegen und dann via Netbeans dorthin pushen.​

Zu git selbst:
Also seit ich damit angefangen habe, möcht ich nicht mehr darauf verzichten. Ich manage mittlerweile alle Projekte / Configs über git.
 
Zuletzt bearbeitet: (kleinen Fehler korrigiert.)
Morpheus3k schrieb:
Also eine VM ist sicher ned schlecht, wenn man 90% oder 95% des Codes fertig hat. Aber zum direkten Entwickeln ist ein lokaler Webserver schon viel einfacher. Man kann direkt den Code am Laufwerk bearbeiten und entsprechend Testen, ohne dass man sich mit FTP(S) oder SFTP rumschlagen muss. Es gibt tolle Tools bzw. Erweiterungen (z.B. Firefox), womit die Seite automatisch sich aktualisiert, sobald eine Datei gespeichert wird.

Tja... Es soll Betriebssysteme geben, die beherrschen von Haus aus SSH Mounting. Mit denen kann man externe Datenquellen so einbinden, als wären sie ein lokaler Ordner. Man muss halt über den bekloppten MS-Tellerrand hinaus gucken, dann kommt man auch in eine Welt, die für Programmierarbeit wie geschaffen ist.
 
Daaron schrieb:
Tja... Es soll Betriebssysteme geben, die beherrschen von Haus aus SSH Mounting. Mit denen kann man externe Datenquellen so einbinden, als wären sie ein lokaler Ordner. Man muss halt über den bekloppten MS-Tellerrand hinaus gucken, dann kommt man auch in eine Welt, die für Programmierarbeit wie geschaffen ist.

Also erstens, sei so nett und schreib das nicht so abwertend. Zweitens solltest du mitbekommen haben, dass ich durchaus Erfahrungen mit diversen Betriebbsystemen habe. (Unter anderen in anderen Threads.).
Drittens, und das wohl das Wichtigste:
moonwalker99 schrieb:
Wie richtet man sich am Besten eine PHP-Programmierumgebung unter windows ein?

Unter Windows ist das meines Wissens nach, nicht ganz so einfach. Der Threadstarter hat ausdrücklich Windows als Betriebssystem genannt.
 
Daaron schrieb:
Tja... Es soll Betriebssysteme geben, die beherrschen von Haus aus SSH Mounting. Mit denen kann man externe Datenquellen so einbinden, als wären sie ein lokaler Ordner. Man muss halt über den bekloppten MS-Tellerrand hinaus gucken, dann kommt man auch in eine Welt, die für Programmierarbeit wie geschaffen ist.

Profitip hierzu: Vagrant. Damit kann man sich mit wenig Aufwand virtuelle Entwicklungsumgebungen erzeugen (auf VirtualBox-Basis), die den Projektordner als shared folder einbinden und Serverports nach außen forwarden. Das heißt: PHP / Apache / MySQL / was auch immer die Website betreibt, läuft in der Box (üblicherweise unter Linux), den Programmcode bearbeiten und im Browser testen kann man aber vom Hostsystem aus.
 
Wenn man PHP 5.4 verwendet, dann kann man sich effektiv viel Mühe sparen. Das ermöglicht eine absolut geniale Art, PHP-Projekte unabhängig von bestimmten Ordnerstrukturen zu entwickeln.

Was man braucht:
- PHP 5.4 mit korrekter Pfadangabe im System
- den Datenbank-Server, mit dem man ggf. arbeiten will
- den kleinen, aber feinen neuen Befehl "php -S localhost:8000" (hier halt mal Port 8000, kann man natürlich frei wählen), den man im Ordner mit der index.php ausführt.
Das einzige, was dabei für ein realistisches (Apache-artiges) Szenario fehlt, ist die .htaccess.


Insgesamt halte ich es einfach für einen Schuss ins Knie, freiwillig unter Windows entwickeln zu wollen. In der Realität trifft man ja doch am Ende auf LAMP-Server. Wenn man da vorher nichts über Rechtestrukturen von Unix-artigen Systemen gelernt hat guckt man evtl. bei den garantiert auftretenden Fehlermeldungen wie's Schwein ins Uhrwerk. Allein diese Unsitte, dass INDEX.php dasselbe sein soll wie Index.php oder index.php... *würg*
 
Windows ist nunmal dazu geschaffen die breite Masse anzusprechen. Linux eher für Insider die ganz genau wissen was sie tun und was sie wollen.

Geh mal zu Aldi, Mediamarkt, Saturn etc. pp. und frag nach einem Komplett PC mit Debian/openSuSE etc.
DANN guckste wie`s Schwein ins Uhrwerk ;-) (der Spruch ist supi, ist notiert ^^)

Oder steck ne Spiele CD in nen Linux. Selbst wenn Linux unterstützt wird, was äußerst selten bis gar nicht der Fall ist, ist das sicher nicht so einfach wie unter Windows.

Windows mit Linux zu vergleichen ist wie iOS mit Android, Fussball mit Football, Äpfel mit Birnen!
 
Da kannst du genauso gut versuchen, bei einem dieser hirnlosen Discounter:
- einen AMD-Desktop zu bekommen
- etwas ohne Pfusch-Teile zu finden
- preislich unter einer Selbstbau-Kiste zu bleiben, die ähnlich leistungsstarke Marken-Komponenten hat

Hm... und Games on Linux? Bisher hat alles geklappt bei nativen Spielen... und was Valve mit Steam da am Kochen hat brauch ich ja wohl kaum zu erwähnen.

Aber hier mal ne Herausforderung für dich: Versuch mal, unter Windows innerhalb von 2 Minuten (zzgl. reiner Download-Zeit) all deine installierte Software nebst Treibern zu aktualisieren.

Aber Schluss damit: ich bleib dabei, Windows ist als Entwicklungsumgebung nicht das Optimum. Eine Umgebung, die eher der Realität entspricht, ist definitiv von Vorteil.... und den Löwenanteil der Webseiten stemmen nun einmal LAMP-Server.
 
Viele IDEs und Editoren unterstützen übrigens SFTP direkt. Ein Umweg über WinSCP ist also selten nötig, wenn man unter Windows entwickeln, aber unter Linux testen/deployen will.

Generell finde ich FileZilla, der auch SFTP unterstützt, deutlich angenehmer als WinSCP. Brauche ich aber ohnehin extrem selten.

Ansonsten wäre noch ein stinknormaler SSH-Client wie Putty sinnvoll. Auf der Shell administriert es sich nach wie vor am schnellsten.
 
Daaron schrieb:
Da kannst du genauso gut versuchen, bei einem dieser hirnlosen Discounter:
- einen AMD-Desktop zu bekommen
- etwas ohne Pfusch-Teile zu finden
- preislich unter einer Selbstbau-Kiste zu bleiben, die ähnlich leistungsstarke Marken-Komponenten hat
Jop

Daaron schrieb:
Hm... und Games on Linux? Bisher hat alles geklappt bei nativen Spielen... und was Valve mit Steam da am Kochen hat brauch ich ja wohl kaum zu erwähnen.
Stimmt, Steam ist ne feine Sache derzeit in dem Bereich. Ich habe aber geschrieben "steck ne cd rein und leg los". Beim 0815 User ist das dann schonmal gegessen. Mit Wine (ich glaub so hieß es) geht das in vielen Fällen dann doch, aber das muss man erstmal wissen.

Daaron schrieb:
Aber hier mal ne Herausforderung für dich: Versuch mal, unter Windows innerhalb von 2 Minuten (zzgl. reiner Download-Zeit) all deine installierte Software nebst Treibern zu aktualisieren.
Ich sagte ja das es auf das Anwendungsgebiet ankommt. Windows ist genauso wenig "scheisse" wie es Linux ist. Es ist anders! Es hat eine andere Zielgruppe, deswegen sind diese FlameWars Windows vs. Linux totaler schwachsinn. Linux hat seine Vorteile und Windows auch. Fertig!

Daaron schrieb:
Aber Schluss damit: ich bleib dabei, Windows ist als Entwicklungsumgebung nicht das Optimum. Eine Umgebung, die eher der Realität entspricht, ist definitiv von Vorteil.... und den Löwenanteil der Webseiten stemmen nun einmal LAMP-Server.
Korrekt! Aber man kann auch unter Windows mit dem richtigen Editor vernünftig Entwickeln, Lernen und Testen.
 
wo man entwickelt ist doch schnuppe!
Ich nutze netbeans und habe dort einfach den direkten upload zum server aktiviert.
Sprich, sobald ich speichern drücke wird die datei direkt auf den Server geschoben und ich muss diese nur aufrufen (hab dafür einen extra monitor).
Das ich auf win arbeite merkte man so kein bisschen da ich hier nicht einen einzigen Test durchführe.

Natürlich sollte man dann 2 Webumgebungen haben, sonst bekommt der user deine tests mit, aber das sollte das geringste Problem sein.

Fürs web in einer Praxisnahen umgebung zu programmieren ist also unsinn, da man es ja eh auf dem Zielsystem testen sollte. Zudem ist windows da sogar sinnvoller, da man bei soetwas mehr auf browser kompatibilitäten achten muss und da ist windows besser für geeignet da fast jeder mit win im netz surft.

Bei bedarf dann den debugger auf dem server installieren und fertig, wieso sollte ich mich da noch mit linux rumqäualen.

server admin: putty

fürs produktive arbeiten sind dann natürlich ein paar mehr Monitre von nöten, ich bin derzeit bei 3 angelangt und sammel gerade für einen vierten.
 
Zuletzt bearbeitet:
mit den richtigen tools.. wie oben schon erwähnt netbeans (meiner meinung nach die beste ide für php,html,css und js) und einer vm auf der eine ähnliche umgebung herscht wie auf dem endgültigen zielsystem.. kann man durchaus sehr gut unter windows entwickeln.. netbeans bietet nicht nur sftp upload sondern auch git/svn oder was man sonst so braucht.. die locale history ist auch recht cool um schnell zu gucken was vor 5 minuten anders war :D
für rails entwicklung zum beispiel benutze ich trotzdem viel lieber ne linux distri.. weil ich da sehr viel per terminal mache und das cmd ding von windows nicht gerade cool ist :D
e: wasn bitte an linux rumquälen?
versuchs doch mal mit rails unter windows.. dann weißt du was rumquälen ist :D
 
Mercsen schrieb:
Fürs web in einer Praxisnahen umgebung zu programmieren ist also unsinn, da man es ja eh auf dem Zielsystem testen sollte. Zudem ist windows da sogar sinnvoller, da man bei soetwas mehr auf browser kompatibilitäten achten muss und da ist windows besser für geeignet da fast jeder mit win im netz surft.
Wenn mein Ziel ein Debian Squeeze ist und ich unter Ubuntu Precise arbeite, dann ist das schon sehr nahe beieinander.
Und das einzige, was man für Windows testet: man guckt sich den Mist mal im IE<9 an, kriegt Heulkrämpfe und schaltet ganz schnell wieder ab. FF, Chrome und Opera rendern unabhängig vom OS identisch, von winzigen Unterschieden in der Textschärfe abgesehen.

server admin: putty
Seh schon... du solltest dir wirklich mal ne Bash angucken. Da wirfste Putty danach an die Wand.
 
Zurück
Oben