Ankündigung

Einklappen
Keine Ankündigung bisher.

Server Dienste "in the box" und IDE "out of the box"

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Server Dienste "in the box" und IDE "out of the box"

    Hallo Leute,

    da ich PHPStorm lizensiert habe und vornehm unter Windows entwickle, suche ich schon seit längerem nach einer Möglichkeit, eine virtuelle Maschine mit den Server Diensten aufzusetzen und dabei aber die Entwicklungsumgebung weiterhin "out of the box", also im richtigen Betriebssystem, meinen Windows laufen zu lassen.

    Zwichmühle 1: Windows, siehe hier: https://www.php.de/forum/webentwickl...-unter-windows
    Zwickmühle 2: VirtualBox. Prinzipielle Ordnerfreigabe funktioniert, ich kann darüber aber kein npm laufen lassen. Das ist ein Bug, der von beiden Seiten schon seit Jahren einfach hingenommen wird. Hat wohl mit den Symlinks Verständnis zu tun, wo der eine so tut, als wären es welche, dabei geht das gar nicht oder so.
    Zwickmühle 3: VMWare Workstation Player: Hatte das OS Image aus VirtualBox expotiert und in VMWare Workstation Player importiert. Nur kann ich aus irgendwelchen Gründen auch immer nicht meine gesamte Partition für das virtuelle OS freigeben.


    Es wird doch wohl einen Entwickler auf den Planeten geben, der vor dem selben Problem stand/steht? Ist nun wirklich nichts neumodisches, sollte also bei dem ein oder anderen bereits laufen. Vagrant wäre eine Möglichkeit, das unterstützt auch PHPStorm, aber damit kenne ich mich nicht aus?!


    Danke,

    derwunner

  • #2
    Ich nutze für development seit einiger Zeit Docker. Außer PHP arbeite ich auch noch mit Go und Java, ab und zu auch mal mit was anderem, irgendwann ist mir das zu blöd geworden, meine VM mit allen möglichen tools vollzumüllen die dann meistens auch nicht/sehr schwer reproduzierbar waren bzw. 20 VMs für alles mögliche zu haben, mit Docker ist das ganze sehr viel angenehmer.
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      Wirklich sonst keine Alternative? Docker hatte ich immer versucht zu vermeiden. Diese 1-Prozess Krankheit geht selbst Docker Profis auf den Kecks. Der weniger gehypte LXC Container (oder so ähnlich) ist dabei deutlich besser. Wie auch immer, das selbe Ergebnis hätte ich im Endeffekt mit Vagrant auch. Da denkt man auch mehr in Containern, soweit wie ich das verstanden habe. Nur, dass es ganze virtuelle Maschinen sind. Wäre prinzipiell auch nicht verkehrt, aber wie kann ich da mittels PHPStorm Grunt usw. drüber laufen lassen?!

      Kommentar


      • #4
        Also grundsätzlich empfehle ich dir vagrant, ABER das ist nicht als Alternative zu deinen "Zwisckmühlen" oben zu sehen.
        Vagrant bedient sich VirtualBox oder VMWare um eine vorher konfigurierte Maschine aufzusetzen. Die Grundzüge sind nicht schwer zu verstehen, mangelnde Erfahrung würde ich nicht als auschlusskriterium nehmen, aber wenn du ein Problem mit VMWare oder VirtualBox hast wird dich auch vagrant nicht glücklich machen.
        Zugegebenermaßen bin ich mir aber auch noch nicht so ganz im reinen wie ich mit Vagrant umgehen möchte. Aktuell angestrebter optimalzustand ist eigentlich eine "Standardboxkonfiguration" als git repository abzulegen und dann meine individuell auf das Projekt abgestimmen Varianten in entsprechenden Zweigen abzulegen. Was ich zum Ausdruck bringen will, neben Code musst du eben auch die Konfiguration deiner Boxen verwalten bzw. versionieren.

        Anbei ich benutze auch PhpStorm und die Integration von vagrant klappt problemlos.

        Kommentar


        • #5
          Ich arbeite praktisch nur mit Vagrant (siehe Signatur) und habe dabei standardisierte Boxen, die ich für fast alle Projekte einsetze. Der Vorteil dabei ist wirklich, dass ein Projekt auf einem neuen Gerät innert Minuten aufgesetzt ist.

          Zugegeben, ich arbeite unter Linux, da VBox wirklich langsam ist. Meine VMs laufen mit Qemu/libvirt. Und da gibt es keine Probleme mit synchronisierten Ordnern.
          [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

          Kommentar


          • #6
            Zitat von ChristianK Beitrag anzeigen

            Zugegeben, ich arbeite unter Linux, da VBox wirklich langsam ist. Meine VMs laufen mit Qemu/libvirt. Und da gibt es keine Probleme mit synchronisierten Ordnern.
            Na logisch, damit umgehst Du die ganzen Probleme, die ich habe. Wäre es möglich, ein Linux im Dual Boot zu installieren, dann hätte ich das schon längst getan. Ist es aber nicht. Also muss ich damit leben (oder meinen PC downgraden...). Denn ich habe einen Software RAID Verbund am laufen, bestehend aus einer SSD und 4 Hybrid Festplatten im RAID 0 Verbund. Die SSD läuft nicht mit im RAID Verbund, wird aber auch darüber angesprochen vom Betriebssystem. Und soviel ich weiß, kann man auf einen RAID immer nur einen Betriebssystem Treiber installieren und das 2. Betriebssystem muss dann mit den fremden Treiber zurecht kommen. Das soll zwar angeblich mit Linux funktionieren, ist aber auch recht exotisch und eher was für experimentier freudige. Und davon abgesehn hat mein Rechner ein UEFI BIOS. Ausschalten kann ich das bestimmt, aber dann bleibt immer noch das Problem mit dem RAID Treiber. Das ist mir dann etwas zu riskant.

            Mein konkretes Problem ist der Bug von VirtualBox unter Windows, dass das VirtualBox Dateisystem für die virtuelle eingebundene Festplatte nicht mit Symlinks zurecht kommt oder die irgendwie verständlich für Linux darin ablegen kann. Das ist großer Mist, denn welches Web Projekt kommt denn heute noch ohne Node.js aus? Und sei es bloß für Grunt / Gulp oder Bower. All das sind Npm Pakete, die ich aktuell nicht auf das VirtualBox Dateisystem installiert bekomme.

            Kommentar


            • #7
              Wieso ein Software-RAID und kein Hardware-RAID?
              [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

              Kommentar


              • #8
                Wozu brauchst du eigentlich Ordnerfreigaben? Mit Ordnerfreigaben gibt es nur Probleme, vor allem mit Git bei vielen Dateien. Stattdessen kannst du beim PHPStorm unter Deployment einfach "Automatic upload (always)" aktivieren und die Änderungen werden noch während des Editierens auf den Entwicklungsserver hochgeladen.

                Ich arbeite grundsätzlich nur noch mit VMs. Eine VM ist dann meine komplette Entwicklungsumgebung (IDE + Tools), die andere VM ist der Entwicklungsserver (LAMP). Das funktioniert sehr gut und hat noch den Vorteil dass ich die identische Entwicklungsumgebung im handumdrehen auf mehreren Rechnern einrichten kann (Laptop, PC-Homoe, PC-Office). Dazu brauche ich nur die VM zu kompieren.

                vg
                jack
                -

                Kommentar


                • #9
                  Mit VMs und Shortcuts habe ich schlechte Erfahrungen gemacht, und PHPStorm basiert ja auf Shortcuts.

                  Wie zuverlässig ist 2-way beim auto-deployment von PHPStorm?
                  [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

                  Kommentar


                  • #10
                    Das Auto Deployment würde ich dir nicht empfehlen. es funktioniert zwar zu 99%, aber gerade das 1% wenn es mal nicht will (Git-Pull und irgendwas wurde nicht gesynct, oder Änderungen außerhalb von phpstorm) macht dich wahnsinnig kirre.

                    Ich habe auch windows-pc mit linux-vm am laufen. Bis jetzt habe ich ehrlich gesagt keinerlei Probleme festgestellt. Um das Problem mit npm und symlinks zu umgehen setzt ich bei einem npm install das flag --no-bin-links. Dadurch werden keine Symlinks gesetzt (was ja auch nur in den geteilten Ordner nicht klappen würde). Nachteile habe ich dadurch noch keine gehabt. (nutze NPM allerdings auch nur mit Laravel-Elixir, bzw plain Gulp, da gabs aber auch noch keine Probleme)

                    Kommentar


                    • #11
                      Ok danke, die Variante mit dem Flag --no-bin-links werde ich mal ausprobieren. Kann ich mich ganz grau daran erinnern, dass ich sowas schonmal versucht hatte und es nicht ging. Wie auch immer, ich werde hier berichten, ob es geklappt hat.

                      Die Variante mit Vagrant klingt eigentlich auch ganz cool. Habe neulich im Shopware Forum gelesen, dass man damit sogar Shopware unter Windows flüssig zum Laufen bekommt. Und naja, das eine Prozent... Ein bisschen Schwund ist immer eingerechnet

                      Kommentar


                      • #12
                        Also, ich habe das Kommando npm install --no-bin-links mal ausprobiert. Es geht sowohl am Host (Windows), als auch im Gast (Linux) nicht. Dabei habe ich auch darauf geachtet, unter Linux den mount mit der richtigen gid und uid einzubinden.
                        Bei Windows erhalte ich zumindest eine halbwegs aussagekräftige Fehlermeldung: "90744 verbose stack RangeError: Maximum call stack size exceeded".
                        Und ansonsten vorher zu jeder Core Dependency, die Node irgendwie bieten Fehlermeldungen wie folgt: "80040 silly gunzTarPerm modified mode [ 'fp/next.js', 420, 438 ]". Das sind anscheinend 3 Abschnitte, also 3 verschiedene Programmdurchläufe, die jeweils alle für die jeweilige Dependency irgendwelche silly Fehlermeldungen erzeugen.

                        Muss ich das eventuell unter Windows in einer Admin Bash ausführen?

                        Kommentar

                        Lädt...
                        X