Entwicklungsumgebung einrichten: Unterschied zwischen den Versionen

+ docker-Socket-Datei prüfen
(IDE-Setup erweitert)
(+ docker-Socket-Datei prüfen)
 
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
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 welchem 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:
<nowiki>127.0.0.1 docker.team-opencaching.de
127.0.0.1 try.docker.team-opencaching.de</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 17:


=== 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 33:
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
sudo apt install mariadb-client</nowiki>
sudo apt install mariadb-client</nowiki>
Die docker-Installation ist ebenfalls notwendig. Die Anweisungen sind hier zu finden:
[https://docs.docker.com/engine/install/ubuntu/|https://docs.docker.com/engine/install/ubuntu/]
Die ddev-Installation ist ebenfalls notwendig. Die Anweisungen sind hier zu finden:
[https://ddev.com/get-started/|https://ddev.com/get-started/]


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.
Zeile 85: Zeile 87:
=== Sourcecode lokal herunterladen ===
=== Sourcecode lokal herunterladen ===
Ein Terminal öffnen, folgende Kommandos ausführen und dabei Namen und Email-Adresse des Git-Accounts eintragen:
Ein Terminal öffnen, folgende Kommandos ausführen und dabei Namen und Email-Adresse des Git-Accounts eintragen:
  <nowiki>git config --global user.name "Your Name Here"
  <nowiki>git config --local user.name "Your Name Here"
git config --global user.email "your_email@youremail.com"</nowiki>
git config --local user.email "your_email@youremail.com"</nowiki>


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.
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.
Zeile 111: Zeile 113:




== 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 und (auch nur einmal!) ausführen ====
* ddev anstarten. Im Laufe dieses Prozesses wird die hosts-Datei automatisch angepasst.
<nowiki>ddev start</nowiki>


==== Scripte einzeln ausführen ====
* Starten der Initialisierung der Testumgebung und der Datenbank.  
* Die Dockerumgebung starten (ggf. der Benutzerkontensteuerung zustimmen). Dieser Vorgang dauert ein paar Minuten.
  <nowiki>ddev init</nowiki>
  <nowiki>./psh.phar docker:start</nowiki>


* In den Dockercontainer hinein verbinden
* Die Entwicklungsumgebung steht nun über den Browser bereit unter:
<nowiki>./psh.phar docker:ssh</nowiki>
  https://opencaching.ddev.site
  bzw.
  https://try-opencaching.ddev.site


* Anschließend in der sich öffnenden docker bash einmalig das Initialisierungsskript starten. Dieser Vorgang dauert ein paar Minuten.
Das Passwort für den Benutzer ''root'' lautet ''developer''. Das Passwort der anderen Benutzer (Benutzernamen siehe Datenbank) lautet ''password''
<nowiki>./psh.phar docker:init</nowiki>


[[Image:Testumgebung Docker 01.png]]
* Ein Mailpit steht nun über den Browser bereit (zumindest für den Legacy-Teil, für OC4 ist es noch nicht bestätigt) unter:
  https://opencaching.ddev.site:8026/




* Zuletzt den Dockercontainer wieder verlassen
=== Entwicklungsumgebung ein weiteres Mal starten ===
  <nowiki>exit</nowiki>
Eine bereits per 'ddev init' initialisierte Testumgebung kann gestartet werden mit:
 
  <nowiki>ddev start</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''
Die Testumgebung kann neugestartet werden mit:
<nowiki>ddev restart</nowiki>


=== Entwicklungsumgebung stoppen ===
Die Testumgebung kann gestoppt werden mit:
<nowiki>ddev stop</nowiki>


==== Das start-Script ausführen ====
=== Entwicklungsumgebung löschen ===
* Statt die Schritte einzeln auszuführen, kann die Dockerinitialisierung auch mit einem einzigen Befehl gestartet werden:
Die Testumgebung kann im Projektordner gelöscht werden mit:
  <nowiki>./psh.phar docker:start-clean</nowiki>
  <nowiki>ddev delete --omit-snapshot</nowiki>
 
Danach sind ein erneutes ''ddev start'' und ''ddev init'' notwendig.
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.
 
* 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''


=== von DDEV angelegte Objekte löschen und Projekte aus der globalen DDEV-Liste löschen ===
<nowiki>ddev clean --all</nowiki>
<nowiki>ddev stop --unlist opencaching</nowiki>


=== Entwicklungsumgebung ein weiteres Mal starten ===
=== xdebug in der Entwicklungsumgebung starten ===
Die Testumgebung kann z.B. nach einem Neustart des Rechners im Projektordner gestartet werden mit:
  <nowiki>ddev xdebug</nowiki>
  <nowiki>./psh.phar docker:start</nowiki>
Ein ''ddev start'' oder ''ddev restart'' deaktiviert das xdebug wieder.


=== Entwicklungsumgebung stoppen ===
=== Weitere ddev-Optionen.. ===
Die Testumgebung kann im Projektordner gestoppt werden mit:
''ddev'' ohne Parameter aufrufen gibt eine Liste weiterer Optionen aus.
  <nowiki>./psh.phar docker:stop</nowiki>
  <nowiki>ddev</nowiki>


== 4. Die  Testdatenbank füllen ==
== 4. Die  Testdatenbank füllen ==
Zeile 166: Zeile 168:


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
<nowiki>mysql -uroot -proot -hmariadb opencaching</nowiki>


=== Datenbank zurücksetzen ===
=== Login auf der Test-Datenbank im ddev-Container ===
  <nowiki>(noch zu verifizieren und zu verbessern..)
  <nowiki>mysql -uroot -proot -hopencaching-db opencaching</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 innerhalb des ddev-Containers exportieren ===
  <nowiki>mysqldump -uroot -proot -hmariadb opencaching > file.sql</nowiki>
  <nowiki>mysqldump -uroot -proot -hopencaching-db opencaching > file.sql</nowiki>


=== Datenbank außerhalb des Dockercontainers exportieren ===
=== Datenbank außerhalb des ddev-Containers 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 195: Zeile 189:
[[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 ===
Zeile 212: Zeile 200:


[[Image:Testumgebung DB 04.png]]
[[Image:Testumgebung DB 04.png]]
=== 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.
[[Image:Testumgebung DB 05.png]]
Im Anschluss sind die Daten wie im folgenden Screenshot einzutragen. User: “root“ Password: “root“
[[Image:Testumgebung DB 06.png]]




Zeile 243: Zeile 220:




=== hilfreiche Plugins für phpStorm ===
=== Datenbankanbindung in phpStorm aktivieren ===
-
Seit ddev als Umgebung genutzt wird, bietet sich das ddev-Plugin im phpStorm an. Es richtet z.B. den Zugang zur opencaching-Datenbank in der Testumgebung sowie weitere Einstellungen automatisch ein.
Hierzu im phpStorm im Menü Datei/Einstellungen.. zum Abschnitt ''Plugins'' navigieren, im Suchfeld ''ddev'' eintippen und das Plugin installieren.
[[Image:Testumgebung IDE 06.jpg]]




200

Bearbeitungen