Beiträge von kim88 im Thema „Lokalen Server - XAMPP + XDebug“

    Ist ja nur ein Dienst und zwar das "docker-compose up -d" du kannst dir dazu ja auch ein Alias setzen. Oder ein Autostart Script schreiben.

    Und nein eine grafische Oberfläche gibt es nicht - wahrscheinlich könnte man das mit Kubernetes oder so verwalten das machts aber definitiv massiv komplizierter.

    Sollte ich da nicht auf 7.4 wegen VS Code wechseln?

    Diese Frage kannst nur du beantworten. Ich weiss ja nicht was du programmierst bzw wo du das nachher deployst. Die Prjektanforderungen für dein Projekt kennst wohl nur du.

    Und stört die Installation von XAMPP? Ich glaube, ich hatte den Original Apachen vorher deinstallieren müssen.

    Stören sollte sie nicht, was wahrscheinlich nicht geht ist das beide gleichzeitig laufen, da die sich gegenseitig den Port blockieren.

    Tealk

    Bei extrem grossen und vorallem älteren Projekten definitiv ja. Da wurden teilweise Noch CSS oder https quasi wirklich hardcoed von "http://domain.xyz" geladen -> diese Datei wurde dann nur unter ganz bestimmten und merkwürdigen if/else Bedingungen usw weiter geladen.

    Das andere was ich meine ist wenn man lokal etwas entwickelt das Dinge braucht wie Standort Abfrage oder Kamera Zugriff, etc wird das vom Browser nur per SSL zugelassen -> daher macht es Sinn wenn man das lokale direkt hat.

    Du kannst 100 oder mehr Webseiten aktiv haben.

    Im Grund ist jeder Ordner den du unter ~/devilbox/data/www anlegst eine eigene Webseite -> Technisch ist das ein Virtaul Host.

    Wichtig ist das man dann halt in der Host Datei die entsprechende Zuweisung macht:

    quasi: 127.0.0.1 name-vom-ordner.loc

    Man kann das .env auch weiteranpassen, dass er direkt https:// Host erstellt -> dann kann man die Webseite direkt SSL Verschlüsselt bauen und hat dann beim Go-Live da weniger Trouble.

    Datenbanken kannst du soviel erstellen wie du willst, egal ob MySQL, MariaDB oder MongoDB oder PostgreSQL jede erstellte Datenbank ist auch direkt mit jedem Host verknüpft, du musst da also nichts zuweisen.

    Ich bin ein sehr grosser Fan von Devilbox, da ich damit direkt unter richtigen "Domains" also eben "xyz.loc" arbeiten kann und nicht unter localhost/webseite-3, etc arbeiten muss. Das verhindert Fehler mit absoluten und relativen Pfaden die es ja gerne schnell mal gibt.

    Ich kann direkt mit SSL arbeiten und durch das bearbeiten der .env Datei kann ich von Apacha zu Nginx, zu MySQL Version XY zu Maria DB XY easy und unkompliziert hin- und herwechseln - das hat wiederum den Vorteil das ich lokale geau mit den Versionen arbeiten kann, die der Server auf dem das Projekt nachher läuft auch anbietet - oft will ja ein Kunde selber hosten dann muss man das nehmen was es gibt ;)

    Zudem läuft das Ding halt einfach auf jedem OS - egal wo man gerade entwickelt, es verhält und funktioniert immer gleich. Weil gerade PHP und Windows ja immer wieder etwas merkwürdig sind (Pfadangaben, Charsets, etc) hat man so auch unter Windows quasi ein lokales Linux Hosting (Dank WSL2 & Docker)

    Die manuelle Zuordnung in der Host Datei kann man automatisieren - lohn sich wenn man viele Projekte hat. Hier der Link dazu: https://devilbox.readthedocs.io/en/latest/inte…p-auto-dns.html (wieder mit Anleitungen für Linux, Windows und MacOS)

    Ja Idiiotensichere Arbeitsschritt 1:

    Entferne dieses Docker Repsoitory das du da hinzugefügt hast wieder - du brauchst es nicht und die Anleitung funktioniert nicht für Linux Mint.

    Theoretisch müsste es so gehen, hab aber schon lange kein APT oder Ubuntu Basis mehr benutzt daher wenn es nicht geht muss dir da jemand weiterhelfen:

    Code
    sudo add-apt-repository --remove 'deb [arch=amd64] https://download.docker.com/linux/ubuntu una stable'

    Sonst halt im Dateisystem irgendwo unter: /etc/apt/sources.list.d/ die Datei suchen die "docker" im Namen trägt und diese Datei löshen.

    Nachdem du das Repsoitory entfernt hast:

    Code
    sudo apt update
    sudo apt install docker docker-compose

    Danach sicherstellen, dass Docker Service beim Systemstart gestartet wird:

    Code
    sudo systemctl enable docker.service
    sudo systemctl enable containerd.service

    Danach den eigenen User zur Gruppe "docker" hinzufügen

    Code
    sudo groupadd docker
    sudo usermod -aG docker $USER

    Es kann sein, das hier beim ersten Befehl die Meldung kommt, dass die Gruppe schon existiert - auch hier ich bin nicht sicher ob Debian die Gruppe selber erstellt oder nicht.

    Danach den Rechner neustarten (!). Das ist wichtig sonst funktioniert der Rest nicht.

    Danach richten wir Devilbox ein -> Schritt für Schritt wie es in der Anleitung steht:

    Dafür öffnen wir nach dem neustart wieder ein Temrinal und führen im Home-Verzeichnis folgendes aus:

    Code
    git clone https://github.com/cytopia/devilbox

    Das erstellt in deinem Home Verzeichnis einen neuen Ordner mit dem Namen "devilbox" und ladet dort ganz viele Dateien rein.

    Nun erstellst du in diesem "devilbox" Ordner eine neue Datei mit dem Namen ".env". Danach öffnest du die Datei "env-example" markierst und kopierst den kompletten Inhalt und fügst den Inhalt in deine eben erstellte ".env" Datei ein.

    Danach müssen wir die .env Datei an deine Bedürfnisse anpassen. Im Grunde gibt folgende Punkte die du anpassen kannst:

    (Achtung meine angegeben Zeilennummer können unterschiedlich sein - meine .env ist schon etwas älter)

    Zeilen: 133 und 134 steht folgendes:

    Code
    NEW_UID=1000
    NEW_GID=1000

    Hier musst du kurz prüfen, ob die ID deines Benutzers und deiner Gruppe wirklich "1000" ist. Das kannst du im Terminal machen:

    Um die UID zu prüfen:

    Code
    id -u

    Um die GID zu prüfen

    Code
    id -g

    Wenn die Werte jeweils 1000 sind ist gut, falls es andere Werte sind musst du die in deiner .env anpassen.

    Bei Zeile 140 müsste die PHP Zeitzone stehen die wird bei dir UTC oder irgendein Standard Wert sein ich hab da. Die Zeitzone ist wichtig, damit wenn du bei PHP mit Datum und Zeit arbeitest das korrekt ausgegeben wird.


    Das steh bei mir für die Schweiz

    Code
    TIMEZONE=Europe/Zurich

    Für Deutschland wäre es

    Code
    TIMEZONE=Europe/Berlin

    Ab Zeile 251

    Findest du die Versionen von PHP, Apache, MySQL etc die einzelnen Versionen sind untereinander aufgelistet und bis auf eine sind alle mit einem "#" auskommentiert. Hier kannst du einfach die Versionen aktivieren die du brauchst - wichtig ist das immer nur eine aktiv sein darf -> daher die die nicht brauchst wieder mit einem "#" auskommentieren.

    Ebenfalls wichtig - es muss auch immer eine aktiv sein.

    Auf Zeile 645 setzen wir noch das MySQL Root Passwort (ich würde das nicht leer lassen, da gewisse PHP Applikationen mit leerem root Passwort nicht funktionieren)

    Code
    MYSQL_ROOT_PASSWORD=dein_root_pw

    Danach die .env Datei speichern. Und ins Terminal wechseln:

    Im Terminal zum Verzeichnis des Devilbox Ordners wechseln und die Devilbox starten:

    Code
    cd ~/devilbox
    docker-compose up -d

    Der erste Start wird eine Weile dauern, da er nun alle Software (Apache, PHP, Mysql, etc) in den von dir gewählten Versionen herunterladen und konfigurieren muss - danach sind die Starts viel schneller. Wenn der Start fertig ist sieht es in etwa so im Temrinal aus:

    Danach kannst du das Temrinal schliessen: Wenn du nun im Browser deiner Wahl http:/localhost eingibst sollte die Devilbox Status Seite erscheinen.

    Um nun eine neue Seite anzulegen wo du arbeiten kannst erstellt du unter:

    ~/devilbox/data/www

    einen neuen Ordner z.b.: "seite-1" in diesem Ordner erstellt du noch einen Ordner mit dem Namen "htdocs". In diesem htdocs Ordner kannst du nun z.b. eine HTML oder PHP Datei reinlegen:

    Nun gehen wir ein letztes mal ins Terminal:

    Code
    sudo nano /etc/hosts

    Dort erstellst du nun ganz am Ende der Datei eine neue Zeile:

    mit folgendem Inhalt:

    127.0.0.1 (hier Tabulator drücken) seite-1.loc

    Danach die Datei speichern und nun im Browser: http://seite-1.loc aufrufen und die PHP oder HTML Datei die du im htdocs Ordner unter Seite 1 hast wird angezeigt.

    Noch ein kleiner Gedanke danach

    Alles was ich dir hier geschrieben habe, habe ich nun 1:1 aus dem Devilbox Dokumenation kopiert, die ich dir schon verlinkt habe. Ich weiss nicht was für einen Kurs du machst oder was dort dein Ziel ist. Wenn du aber Web-Entwickler werden willst solltest du dich damit beliebt machen Dokumentationen zu lesen.

    Ich bin seit mehreren Jahren Full-Stack-Web-Developer: Backend, Frontend, Services und Serverzeugs und glaub mir es ist keine Lüge wenn ich hier behaupte das MINDESTENS 70% meiner Arbeit nur aus Lesen von Dokumentationen besteht - das gehört einfach dazu. Bzw ist der wichtigste Teil -> Coden ist dann nur noch die "nebensache".

    Devilbox installiert dir eine komplette LAAMP Umgebung. Du kannst dann für jede Webseite die du entwickelst einen ORdner erstellen z.b: Ordner: "hallo-welt" - in den Ordner kommen dann deine PHP, HTML, CSS, etc Dateien rein - danach kannst du im Browser "http://hallo-welt.loc" aufrufen und hast dort die Webseite.

    Docker macht nichts an deinem System, das ganze läuft einfach in einem Ordner in deinem Home Verzeichnis, wenn du es nicht mehr nutzen willst kannst du einfach den Ordner löschen.

    Mit Devilbox musst du dich halt quasi um nichts kümmern, also nicht um Dateiberechtigungen, nicht um Virtuelle Hosts, etc das macht alles für dich - das einzige was du quasi tun musst ist ein Ordner erstellen ^^

    Spannende Frage.

    Ich kann dir da nicht helfen. da ich XAMPP nicht nutze. Kann dir aber empfehlen mal einen Blick auf Devilbox zu werfen. Im Gegensatz zu XAMPP ist das sauber dokumentiert und ich nutze es auf Linux, Windows und MacOS seit Jahren problemlos als Umgebung für Apache, PHP, MySQL, etc

    Hier z.b. sehr ausührlich für jedes Betriebssystem beschrieben wie man xDebug konfiguriert: https://devilbox-test.readthedocs.io/en/stable/tuto…ebug.html#linux

    Hier Schritt für Schritt wie man Devilbox installiert und einrichtet: https://devilbox.readthedocs.io/en/latest/gett…requisites.html

    Vielleicht hilft dir das ja weiter.