Frage

Nach etwas entfremdet Open Source werden, und verbringen einige Jahre die Entwicklung von Web-Anwendungen in ASP.Net, ich werde eine ganze Reihe von PHP / MySQL-Entwicklung zu tun beginnen.

Ich habe ziemlich schmerzlos installiert WampServer eine Entwicklungsumgebung bis bekommen und läuft auf meinem Windows-Rechner, aber die Plattform ich werde Targeting werden höchstwahrscheinlich Linux sein. Also meine Frage ist, bin ich wahrscheinlich auf Probleme stoßen aufgrund unter Windows zu entwickeln, während Linux-Targeting? Ist es ratsam, in immer eine Setup-Linux-Umgebung zu investieren, in dem meine LAMP-Anwendungen zu entwickeln?

War es hilfreich?

Lösung

Wenn Sie kann ich in irgendeiner Art von Linux investieren würde, oder zumindest * nix, Entwicklungsumgebung. Für einfache Anwendungen und Website Ihre Einrichtung ist in Ordnung, aber Sie werden schließlich in feine Unterschiede ausgeführt, wenn Sie bereitstellen.

Hier sind einige Dinge aus der Spitze von meinem Kopf sollen Sie achten, wenn Sie mit Ihrer Windows-Umgebung bleiben.

  1. Dateipfade. Viele PHP-Funktionen nehmen Dateipfade als Argumente. Nicht an den Scheiben Backslash () Trennzeichen verwenden. Auch wenn Sie auf Windows sind wird PHP können Sie einen Schrägstrich Trennzeichen verwenden. Im Idealfall dieses abstrakt mit Ihrer eigenen Dateipfad Klasse entfernt.

  2. Apache-Module, PECL-Erweiterungen. Apache Windows-und Apache Unix oft mit einem anderen Satz von Apace Module standardmäßig installiert. Auch kann die gleiche Version eines Moduls laufen anders auf einer anderen Plattform. Wenn Ihre Anwendung beruht auf jeder Apache-Modul, stellen Sie sicher, dass es für beide Plattformen verfügbar ist. Das Gleiche gilt für PHP benutzerdefinierte Erweiterungen (PECL)

  3. Prozess Forking. exec, `usw. in einem Web-App ist eine schlechte Idee zu beginnen, aber wenn Sie diese Funktionen verwenden sie gehen anders verhalten zwischen den Fenstern und * nichts

  4. Datei Schreiben, Sperren usw. funktionieren anders

  5. E-Mail anders auf beiden Plattformen abgewickelt wird

  6. Das Codewort PHP Gruppe für Windows ist „einige Plattformen“. Sie können mehr auf Ihrem eigenen wenn Sie möchten, dass

In der Regel, je näher der Entwicklungsumgebung entspricht Ihre Produktionsumgebung, die weniger Umwelt / deployment Fragen Sie haben.

Ich hoffe, das hilft!

Andere Tipps

Ich habe es für den letzten paar Jahren zu tun und nicht in irgendwelche Probleme laufen noch -. Wenn alles, was es Ihnen einen Vorteil haben Sie durch Erzwingen mehr portablen Code schreiben

Berechtigungen und die Tatsache, dass auf Windows-Dateinamen nicht abhängig sind, sind die zwei Dinge, die ich denken kann, dass ein Schmerz zu mir gewesen. Aber sie sind

  1. Solvable, im schlimmsten Fall mit einer FTP-Client-Berechtigungen zu ändern.
  2. Gute, einfache Möglichkeiten, wie Sie einen besseren Programmierer zu machen (in einem kleinen Weg, ja).

Nein, auf wamp Entwicklung und den Betrieb auf Lampe sollte in Ordnung sein, aber zumindest die Bühne auf der Lampe. Ich habe in beiden Richtungen ohne viele Probleme weg (ok, es verwendete eine Reihe von Problemen auf Websites WAMP Bereitstellung von Unternehmen zu sein (nicht versuchen, die PHP-ISAPI-Filter) verwendet werden, aber sie sind lösbar jetzt (fastcgi)). Solange Sie nicht das Hinzufügen keine PECL-Module, die Zustand sie sind unter Windows nicht unterstützt, sollten Sie keine Probleme haben. Auch (da Sie besagt, Sie WAMP verwenden Ich nehme an, Sie verwenden MySQL), MSSQL und PHP haben eine Reihe von Fragen (die alten Fahrer ernsthaft begrenzt die Länge der Abfrage erfordert).

In der Theorie, PHP und MySQL sollten vollständig plattformunabhängig sein.
In der Praxis, wenn Sie eine echte Produktionsanwendung haben werden, empfehle ich Ihnen, eine Testumgebung haben Spiegelung die Produktion ein, um Überraschungen zu vermeiden.

Ja, ich würde empfehlen, auf einer Umgebung so nah an der Produktionsumgebung wie möglich zu entwickeln. Es gibt Unterschiede zwischen dem, wie PHP funktioniert unter Windows zu Linux verglichen. Und andere Unterschiede wie wie Linux behandelt Dateiberechtigungen wie auf Windows verglichen. Ich betreibe den kostenlosen VMWare-Server mit einer virtuellen Linux-Maschine. Ich habe eine Samba-Freigabe auf dem Linux-VM, die ich als Netzlaufwerk in Windows mounten. Dann benutze ich Eclipse on Windows als mein Code-Editor.

Nein, denn so ziemlich das einzige, was Sie nicht auf WAMP tun können, wenn Sie LAMP Ziel wird mit System () / Exec und in der Regel das ist eine gute Sache, weil diese sehr spärlich verwendet werden soll.

Es lohnt sich, einen LAMP-Sandbox mit so können Sie kennen lernen, wo zu finden - und wie bearbeiten - Konfigurationsdateien, sich bequem mit Dienste neu zu starten, geplante Aufträge Handhabung usw., wenn Sie mit diesen Aufgaben beschäftigen gehen zu müssen, in Produktion.

Nein.
VirtualBox + Gemeinsame Ordner sollten nützlich sein, wenn Sie etwa 6-8 Stunden an einem Wochenende frei haben, um alle VBox Grundlagen klar und Einstellungen gearbeitet raus. Wenn Sie auf Linux sind Schalt, kann der Prozess bis zu einem Monat dauern, und Sie werden hoch unproduktiv in dieser Zeit in Bezug auf die Produktion Code.
Es ist eine gute Idee, für Windows, im Voraus zu üben Linux auf VBox halten vor dem Einschalten, über einen Link [PCLinuxOS, CentOS, OpenSuse, Ubuntu]. Ich ziehe es CentOS, PCLinuxOS. Es ist ein Juwel SLAMPP und andere Schönheit namens XAMPP IMO, als grobe guesstimate, wenn Sie Code 2000-3000 Codezeilen erwarten (die Sie schreiben / add) pro Projekt, für 6mo-1yr, halten Sie sich an Windows-und Master Linux mittlerweile VBox mit.
Wenn darüber, oder wenn Sie eine kühle neue LAMP Website machen wollen, ich glaube, Sie zu Linux wechseln sollen zuerst. Nehmen Sie einen Monat mehr, um sich an Linux verwendet. Sie können immer noch mit Dual-Boot oder VBox so lange, wie Sie möchten, beginnen so früh wie möglich mischen um -. Lernen Linux genug, um zu debuggen eine LAMP App Zeit in Anspruch nimmt

Pfade, passen von den Wegen. Sie können eine ganze cms bauen und es würde wegen Pfade vermasseln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top