Entwicklungsumgebung einrichten: Unterschied zwischen den Versionen

Aus Opencaching-Wiki
Zur Navigation springen Zur Suche springen
(add docker-buildx)
(Update von docker zu ddev)
Zeile 4: Zeile 4:
=== Windows 10 ===
=== Windows 10 ===
==== Programme installieren ====
==== Programme installieren ====
Unter Windows ist es standardmäßig nicht möglich, “einfach“ die Linux Distribution Ubuntu zu installieren. Dazu muss vorab erst das WSL2 aktiviert / installiert werden werden (Punkt 1). Im Anschluss ist eine Installation von Ubuntu (18.04 oder 20.04 oder höher) möglich. Zudem muss Docker installiert werden, in dem dann die Entwicklungsumgebung laufen kann (Punkt 2).
Unter Windows ist es standardmäßig nicht möglich, “einfach“ die Linux Distribution Ubuntu zu installieren. Dazu muss vorab erst das WSL2 aktiviert / installiert werden werden (Punkt 1). Im Anschluss ist eine Installation von Ubuntu (18.04 oder höher) möglich. Zudem muss DDEV installiert werden, in dem dann die Entwicklungsumgebung laufen kann (Punkt 2).


# WSL2 unter Windows10 aktivieren und Ubuntu 20.04 installieren:  
# WSL2 unter Windows10 aktivieren und Ubuntu installieren:  
## Aus dem Microsoft-Store: https://aka.ms/wslstorepage (verfügbar seit Nov. 2022)  
## Aus dem Microsoft-Store: https://aka.ms/wslstorepage (verfügbar seit Nov. 2022)  
## Manuell unter [https://learn.microsoft.com/de-de/windows/wsl/install#manual-installation-steps|Installieren von WSL]
## Manuell unter [https://learn.microsoft.com/de-de/windows/wsl/install#manual-installation-steps|Installieren von WSL]
# Docker für Windows installieren: [https://docs.docker.com/docker-for-windows/install/|Install Docker Desktop on Windows]
# DDEV für Windows installieren: [https://docs.ddev.com/en/stable/#system-requirements-windows-wsl2|Install DDEV WSL2]
# Unter Windows muss in der Hosts-Datei (%windir%\system32\drivers\etc) folgende Eintragung gemacht werden:  
# Unter Windows muss in der Hosts-Datei (%windir%\system32\drivers\etc) folgende Eintragung gemacht werden:  
  <nowiki>127.0.0.1 docker.team-opencaching.de
  <nowiki>127.0.0.1 opencaching.ddev.site
127.0.0.1 try.docker.team-opencaching.de</nowiki>
127.0.0.1 try-opencaching.ddev.site</nowiki>


Danach kann Ubuntu gestartet werden (z.B. im “Such“-Menü nach Ubuntu suchen und anklicken). Beim erstmaligen Starten von Ubuntu müssen ein Benutzername und ein Passwort festgelegt werden.
Danach kann Ubuntu gestartet werden (z.B. im “Such“-Menü nach Ubuntu suchen und anklicken). Beim erstmaligen Starten von Ubuntu müssen ein Benutzername und ein Passwort festgelegt werden.
Zeile 20: Zeile 20:


=== Linux ===
=== Linux ===
Der Linuxartikel wurde erstellt auf Lubuntu 18.04, aktualisiert mit 22.04 und erweitert mit Debian 12
Der Linuxartikel wurde erstellt auf Lubuntu 22.04 und erweitert mit Debian 12


==== Programme installieren ====
==== Programme installieren ====
Folgende Programme sind notwendig und müssen vorab installiert werden:
Folgende Programme sind notwendig und müssen vorab installiert werden:
PHP (aktuell mind. PHP7.4, später PHP8), diverse PHP-Erweiterungen, docker-compose, mariadb-client. Für die PHP-Erweiterungen ist eventuell ein zusätzliches PPA-Repository notwendig. Dessen Installation erfordert je nach Betriebssystem ein unterschiedliches Vorgehen.
PHP (aktuell mindestens PHP8.2), diverse PHP-Erweiterungen, ddev, mariadb-client. Für die PHP-Erweiterungen ist eventuell ein zusätzliches PPA-Repository notwendig. Dessen Installation erfordert je nach Betriebssystem ein unterschiedliches Vorgehen.


  <nowiki>Ubuntu:
  <nowiki>Ubuntu:
Zeile 36: Zeile 36:
Die Pakete lassen sich mit folgenden Befehlen installieren (Versionsnummer kann abweichen).
Die Pakete lassen sich mit folgenden Befehlen installieren (Versionsnummer kann abweichen).
  <nowiki>sudo apt update
  <nowiki>sudo apt update
sudo apt install php8 php8.0-mbstring php8.0-curl php8.0-xml php8.0-mysql
sudo apt install php8.2 php8.2-mbstring php8.2-curl php8.2-xml php8.2-mysql
sudo apt install docker-compose docker-buildx
sudo apt install mariadb-client</nowiki>
sudo apt install mariadb-client</nowiki>


Sollten beim Installieren der Pakete Fehlermeldungen auftreten, ist es empfehlenswert, die Pakete einzeln zu installieren und auftretende Fehler/Abhängigkeiten einzeln zu lösen.
Sollten beim Installieren der Pakete Fehlermeldungen auftreten, ist es empfehlenswert, die Pakete einzeln zu installieren und auftretende Fehler/Abhängigkeiten einzeln zu lösen.
==== Nutzer in docker-Gruppe aufnehmen ====
Der aktuelle Benutzer muss in die Gruppe “docker” aufgenommen werden, sonst kann es passieren, dass dieser keinen Zugriff auf die Dockercontainer bekommt.
<nowiki>sudo usermod -aG docker $(id -un)</nowiki>
Die Änderung wird aber erst nach einem Ab-/Anmelden des Nutzers wirksam. Überprüft werden kann dies danach mittels
<nowiki>id</nowiki>
Hier muss die “docker”-Gruppe aufgelistet sein. Beispiel:
<nowiki>uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),..,128(docker)</nowiki>
==== Eigenschaften der Docker Socket-Datei prüfen ====
Den folgenden Befehl ausführen, um die Eigenschaften der Datei anzeigen zu lassen:
<nowiki>sudo ls -la /var/run/docker.sock</nowiki>
Die Datei muss dabei ‘docker’ zugewiesen sein:
<nowiki>rw-rw---- 1 root docker 0 Dec 21 19:16 /var/run/docker.sock</nowiki>
Ist dies nicht der Fall, muss die Zugehörigkeit geändert werden:
<nowiki>chgrp docker /var/run/docker.sock</nowiki>
==== host Datei anpassen ====
Die folgenden zwei Einträge sollten der host Date unter /etc/host hinzugefügt werden, da auf die URLs sonst unter Umständen nicht zugegriffen werden kann.
<nowiki>127.0.0.1 docker.team-opencaching.de
127.0.0.1 try.docker.team-opencaching.de</nowiki>




Zeile 117: Zeile 88:




== 3. Docker Entwicklungsumgebung initalisieren ==
== 3. DDEV Entwicklungsumgebung initalisieren ==
=== Entwicklungsumgebung zum ersten Mal starten ===
=== Entwicklungsumgebung zum ersten Mal starten ===
(siehe auch: Github: [https://github.com/OpencachingDeutschland/oc-server3#starting-the-docker-development-environment|starting the docker environment])
Zuerst in den Projektordner “oc-server3“ navigieren und dort die Installation der Testumgebung starten.
 
Zuerst in den Projektordner “oc-server3“ navigieren und dort die Installation der Testumgebung starten. Es stehen hierfür zwei Befehlsfolgen zur Verfügung:




==== Scripte einzeln ausführen ====
==== Scripte einzeln ausführen ====
* Die Dockerumgebung starten (ggf. der Benutzerkontensteuerung zustimmen). Dieser Vorgang dauert ein paar Minuten.
* ddev anstarten. Im Laufe dieses Prozesses wird die hosts-Datei automatisch angepasst.
<nowiki>./psh.phar docker:start</nowiki>
  <nowiki>ddev start</nowiki>
 
* In den Dockercontainer hinein verbinden
<nowiki>./psh.phar docker:ssh</nowiki>
 
* Anschließend in der sich öffnenden docker bash einmalig das Initialisierungsskript starten. Dieser Vorgang dauert ein paar Minuten.
<nowiki>./psh.phar docker:init</nowiki>
 
[[Image:Testumgebung Docker 01.png]]
 
 
* Zuletzt den Dockercontainer wieder verlassen
<nowiki>exit</nowiki>
 
* Die Entwicklungsumgebung steht nun über den Browser bereit unter:
  http://docker.team-opencaching.de bzw.
  http://try.docker.team-opencaching.de
 
* Das Passwort für den Benutzer ''root'' lautet ''developer''. Das Passwort der anderen Benutzer (Benutzernamen siehe Datenbank) lautet ''password''
 
 
==== Das start-Script ausführen ====
* Statt die Schritte einzeln auszuführen, kann die Dockerinitialisierung auch mit einem einzigen Befehl gestartet werden:
  <nowiki>./psh.phar docker:start-clean</nowiki>


Dieser Befehl führt alle oben beschriebenen Kommandos aus, <u>löscht zusätzlich die Dockercontainer, den Cache des Testservers sowie alle von git ignorierten Dateien</u>. Dieser Vorgang dauert ein paar Minuten länger und empfiehlt sich, wenn eine saubere Umgebung hergestellt werden soll oder während der Initialisierung unbehebbare Fehler auftreten.
* Starten der Initialisierung der Testumgebung und der Datenbank:
<nowiki>ddev init</nowiki>


* Die Entwicklungsumgebung steht nun über den Browser bereit unter:
* Die Entwicklungsumgebung steht nun über den Browser bereit unter:
   http://docker.team-opencaching.de bzw.
   https://opencaching.ddev.site
   http://try.docker.team-opencaching.de
  bzw.
   https://try-opencaching.ddev.site


* Das Passwort für den Benutzer ''root'' lautet ''developer''. Das Passwort der anderen Benutzer (Benutzernamen siehe Datenbank) lautet ''password''
* Das Passwort für den Benutzer ''root'' lautet ''developer''. Das Passwort der anderen Benutzer (Benutzernamen siehe Datenbank) lautet ''password''
Zeile 162: Zeile 110:
=== Entwicklungsumgebung ein weiteres Mal starten ===
=== Entwicklungsumgebung ein weiteres Mal starten ===
Die Testumgebung kann z.B. nach einem Neustart des Rechners im Projektordner gestartet werden mit:
Die Testumgebung kann z.B. nach einem Neustart des Rechners im Projektordner gestartet werden mit:
  <nowiki>./psh.phar docker:start</nowiki>
  <nowiki>ddev restart</nowiki>


=== Entwicklungsumgebung stoppen ===
=== Entwicklungsumgebung löschen ===
Die Testumgebung kann im Projektordner gestoppt werden mit:
Die Testumgebung kann im Projektordner gestoppt werden mit:
  <nowiki>./psh.phar docker:stop</nowiki>
  <nowiki>ddev delete --omit-snapshot</nowiki>
Danach sind ein erneutes ''ddev start'' und ''ddev init'' notwendig.


== 4. Die  Testdatenbank füllen ==
== 4. Die  Testdatenbank füllen ==
Zeile 172: Zeile 121:


Für den Fall, dass trotzdem Daten exportiert / importiert werden sollen, können folgende Abschnitte berücksichtigt werden:
Für den Fall, dass trotzdem Daten exportiert / importiert werden sollen, können folgende Abschnitte berücksichtigt werden:
Login auf der Test-Datenbank im Dockercontainer
Login auf der Test-Datenbank im ddev-Container
  <nowiki>mysql -uroot -proot -hmariadb opencaching</nowiki>
  <nowiki>mysql -uroot -proot -hopencaching-db opencaching</nowiki>


=== Datenbank zurücksetzen ===
=== Datenbank innerhalb des ddev-Containers exportieren ===
  <nowiki>(noch zu verifizieren und zu verbessern..)
  <nowiki>mysqldump -uroot -proot -hopencaching-db opencaching > file.sql</nowiki>
im Docker per mysql auf die mariadb verbinden
'DROP' opencaching DB
exit mysql und docker
Nun entweder im Docker ein ./psh.phar docker:init ausführen oder wenn das Fehler bringt, vorher den kompletten git-Pfad neu aufsetzen
Ev. funktioniert auch der Weg, den DB-Dockercontainer aufzurufen, zu löschen, etc.
(docker-volume ls)</nowiki>


=== Datenbank innerhalb des Dockercontainers exportieren ===
=== Datenbank außerhalb des ddev-Containers exportieren ===
<nowiki>mysqldump -uroot -proot -hmariadb opencaching > file.sql</nowiki>
 
=== Datenbank außerhalb des Dockercontainers exportieren ===
  <nowiki>mysqldump --complete-insert --user root -proot --host 0.0.0.0 opencaching > dump.sql</nowiki>
  <nowiki>mysqldump --complete-insert --user root -proot --host 0.0.0.0 opencaching > dump.sql</nowiki>


Zeile 201: Zeile 141:
[[Image:Testumgebung DB 02.png]]
[[Image:Testumgebung DB 02.png]]


=== Datenbank-Dump im Dockercontainer importieren ===
Zuerst wird eine eventuell existierende Datenbank gelöscht und neu angelegt.
<nowiki>./psh.phar docker:init</nowiki>
Im zweiten Schritt wird die Datenbank mit dem Dump gefüllt.
<nowiki>mysql -uroot -proot -hmariadb opencaching < file.sql</nowiki>


=== Datenbank-Dump im phpStorm importieren ===
=== Datenbank-Dump im phpStorm importieren ===

Version vom 11. Februar 2026, 11:35 Uhr

Das Einrichten der Testumgebung erfolgt in mehreren Schritten, die im folgenden beschrieben sind. Falls es dabei zu unerwarteten Fehlermeldungen kommt, bitte die letzten Schritte noch einmal genau anschauen und gegebenenfalls wiederholen. Auch ein Blick ins Fehlerhandbuch hilft meistens, da bereits viele Fallstricke entdeckt und beschrieben wurden.

1. Das Betriebssystem vorbereiten, entweder Linux oder Windows

Windows 10

Programme installieren

Unter Windows ist es standardmäßig nicht möglich, “einfach“ die Linux Distribution Ubuntu zu installieren. Dazu muss vorab erst das WSL2 aktiviert / installiert werden werden (Punkt 1). Im Anschluss ist eine Installation von Ubuntu (18.04 oder höher) möglich. Zudem muss DDEV installiert werden, in dem dann die Entwicklungsumgebung laufen kann (Punkt 2).

  1. WSL2 unter Windows10 aktivieren und Ubuntu installieren:
    1. Aus dem Microsoft-Store: https://aka.ms/wslstorepage (verfügbar seit Nov. 2022)
    2. Manuell unter von WSL
  2. DDEV für Windows installieren: DDEV WSL2
  3. Unter Windows muss in der Hosts-Datei (%windir%\system32\drivers\etc) folgende Eintragung gemacht werden:
127.0.0.1	opencaching.ddev.site
127.0.0.1	try-opencaching.ddev.site

Danach kann Ubuntu gestartet werden (z.B. im “Such“-Menü nach Ubuntu suchen und anklicken). Beim erstmaligen Starten von Ubuntu müssen ein Benutzername und ein Passwort festgelegt werden.

Im Anschluss den Punkten folgen und ausführen, die im nächsten Schritt “Linux” beschrieben werden.


Linux

Der Linuxartikel wurde erstellt auf Lubuntu 22.04 und erweitert mit Debian 12

Programme installieren

Folgende Programme sind notwendig und müssen vorab installiert werden: PHP (aktuell mindestens PHP8.2), diverse PHP-Erweiterungen, ddev, mariadb-client. Für die PHP-Erweiterungen ist eventuell ein zusätzliches PPA-Repository notwendig. Dessen Installation erfordert je nach Betriebssystem ein unterschiedliches Vorgehen.

Ubuntu:
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Debian:
sudo apt install software-properties-common ca-certificates lsb-release apt-transport-https
curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x

Die Pakete lassen sich mit folgenden Befehlen installieren (Versionsnummer kann abweichen).

sudo apt update
sudo apt install php8.2 php8.2-mbstring php8.2-curl php8.2-xml php8.2-mysql
sudo apt install mariadb-client

Sollten beim Installieren der Pakete Fehlermeldungen auftreten, ist es empfehlenswert, die Pakete einzeln zu installieren und auftretende Fehler/Abhängigkeiten einzeln zu lösen.


2. Sourcecode von Git laden

Github

Zwar ist zum Herunterlden des Sourcecodes keine Account auf GitHub notwendig, aber zum Hochladen wird einer benötigt. Daher sollte zuerst einen Account auf https://github.com/ angelegt werden.


optional: SSH-Keys für Repositorys anlegen und in Github eintragen

siehe https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/connecting-to-github-with-ssh
oder: https://www.heise.de/tipps-tricks/SSH-Key-fuer-GitHub-Repositories-einrichten-4627459.html


Git lokal installieren

Windows:
siehe: https://github.com/git-for-windows/git/releases

Linux:

sudo apt install git


Sourcecode lokal herunterladen

Ein Terminal öffnen, folgende Kommandos ausführen und dabei Namen und Email-Adresse des Git-Accounts eintragen:

git config --global user.name "Your Name Here"
git config --global user.email "your_email@youremail.com"

Im Verzeichnis "home" einen Ordner "opencaching" (Name beliebig) anlegen. Dort folgenden Code ausführen. Dies legt einen Ordner mit dem Namen “oc-server3“ an, lädt den OC-Code aus deinem Github-Fork herunter und kopiert ihn in diesen Ordner.

git clone git@github.com:<DeinGithubBenutzername>/oc-server3

Im Anschluss in den Ordner “oc-server3“ wechseln und den folgenden Befehl ausführen, um bei einem Update den neuesten Sourcecode aus dem Opencaching.de-Repository erhalten zu können:

cd oc-server3
git remote add upstream git@github.com:OpencachingDeutschland/oc-server3

Mit folgendem Befehl gibt es eine Übersicht über die verknüpften Repositorys, die (abgesehen vom Nutzernamen ‘Slini11’) wie in der Grafik aussehen müssen:

git remote -v


Nun den Branch “development“ auschecken:

git checkout development

Und den Development-Branch auf aktuellen Stand bringen:

git pull --rebase upstream development 


Weiterführende Informationen zu Git

Diese sind unter anderem im OC-Wiki zu finden


3. DDEV Entwicklungsumgebung initalisieren

Entwicklungsumgebung zum ersten Mal starten

Zuerst in den Projektordner “oc-server3“ navigieren und dort die Installation der Testumgebung starten.


Scripte einzeln ausführen

  • ddev anstarten. Im Laufe dieses Prozesses wird die hosts-Datei automatisch angepasst.
ddev start
  • Starten der Initialisierung der Testumgebung und der Datenbank:
ddev init
  • Die Entwicklungsumgebung steht nun über den Browser bereit unter:
 https://opencaching.ddev.site
 bzw.
 https://try-opencaching.ddev.site
  • Das Passwort für den Benutzer root lautet developer. Das Passwort der anderen Benutzer (Benutzernamen siehe Datenbank) lautet password


Entwicklungsumgebung ein weiteres Mal starten

Die Testumgebung kann z.B. nach einem Neustart des Rechners im Projektordner gestartet werden mit:

ddev restart

Entwicklungsumgebung löschen

Die Testumgebung kann im Projektordner gestoppt werden mit:

ddev delete --omit-snapshot

Danach sind ein erneutes ddev start und ddev init notwendig.

4. Die Testdatenbank füllen

Während der Installation wird eine Testdatenbank importiert, die bereits eine kleine Menge an Caches und Nutzern beinhaltet. Ein manueller Import des Datenbankdumps ist somit (seit März 2021) nicht mehr notwendig.

Für den Fall, dass trotzdem Daten exportiert / importiert werden sollen, können folgende Abschnitte berücksichtigt werden: Login auf der Test-Datenbank im ddev-Container

mysql -uroot -proot -hopencaching-db opencaching

Datenbank innerhalb des ddev-Containers exportieren

mysqldump -uroot -proot -hopencaching-db opencaching > file.sql

Datenbank außerhalb des ddev-Containers exportieren

mysqldump --complete-insert --user root -proot --host 0.0.0.0 opencaching > dump.sql

Datenbank im phpStorm exportieren

Auf der rechten Bildschirmseite den Databasedialog ausklappen rechte Maustaste auf die zu exportierende Datenbank “opencaching” => “Export with ‘mysqldump’”


Im Exportmenü die Zeile “Statements” umstellen auf “Insert with columns” und eventuell den Ausgabepfad “Out Path” anpassen. Im Kommandofeld den Parameter “--routines“ ergänzen und dann “Run” drücken


Datenbank-Dump im phpStorm importieren

Auf der rechten Bildschirmseite den Databasedialog ausklappen rechte Maustaste auf die Datenbank => “Restore with ‘mysql’”


Im Importmenü den Eingabepfad “Path to dump” anpassen, dann “Run” drücken


Datenbank in phpStorm anzeigen

Ggf. kann es passieren, dass die Datenbank nicht automatisch in phpStorm angezeigt wird. Dazu muss eine neue MariaDB im Datenbank-Menü angelegt werden.


Im Anschluss sind die Daten wie im folgenden Screenshot einzutragen. User: “root“ Password: “root“


5. Die Entwicklungs-IDE vorbereiten

Gegebenenfalls sind an der Programmierumgebung Änderungen vorzunehmen, um zum Beispiel einheitlich formatierten Code zu schreiben.

Einrichtung des PHP Coding Styles am Beispiel von phpStorm

Unter Settings / Code Style / PHP rechts auf “Set from…” klicken und “PSR-12” auswählen. Die Einstellung mit “Apply” bestätigen. (Weitere Informationen zum Coding Style sind hier im Wiki zu finden.)


Symfony Pfade am Beispiel phpStorm anpassen


Terminalanpassung am Beispiel phpStorm (für Windows-Nutzer)


hilfreiche Plugins für phpStorm

-


Synchronisieren/Wiederherstellen der Benutzereinstellungen mittels JetBrains-Server

Sofern man bei JetBrains einen Account hat, kann man mit diesem die Einstellungen der lokalen IDE synchronisieren und z.B. nach einer Neuinstallation von dort wiederherstellen.

Hierzu in der IDE rechts oben auf das Zahnrad klicken und “Settings Sync is off” auswählen.


Im folgenden Fenster den Button “Enable Settings Sync” klicken und danach alle Einstellungen auswählen, die man sichern möchte. Ein Klick auf “Push Settings to Account” sichert die Einstellungen. Ein Klick auf “Get Settings from Account” stellt sie wieder her, sofern sie vorher dorthin gesichert wurden.


6. Das Fehlerhandbuch lesen (gilt insbesondere für die Schritte #1-#4 :wink:)

Beireits bekannte Fehler werden im Fehlerhandbuch beschrieben.