Archiv der Kategorie: Allgemein

Entwicklungsumgebung für Symfony auf Oracle VM mit Debian und Windows als Host, Teil 1

Orcale VM VirtualBox Manager

Ich beschreibe, wie man eine komplette Entwicklungsumgebung für Symfony aufsetzt. Zum Einsatz kommen eine virtuelle Maschine auf Basis von Oracle VM. Gastsystem ist Windows 10.

Download und installieren von Oracle VM VirtualBox Manager: https://www.virtualbox.org/wiki/Downloads

Nach der Installation (bzw. dem Update) die automatisch angemahnten Extension Packs per Default herunterladen und installieren. Die Source-Dateien können am Schluss gelöscht werden.

Virtuelle Maschine erzeugen

Name, Typ und Version (Bspw. Linux Debian 64 Bit) festlegen.

RAM Speichergröße: min. 4096 MB

Festplatte erzeugen → VDI → feste Größe, mindestens 20 GB sollten es sein

So könnten die Details aussehen.

Installations-ISO-Datei laden

Ausgangspunkt ist folgende Übersicht: https://www.debian.org/CD/http-ftp/#stable.

Dort gelangt man zu https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/ und schließlich zum aktuellsten CD-ISO-Image der stabilen Version.

DOWNLOAD: debian-11.2.0-amd64-netinst.iso (Anmerkung: wenn Sie das lesen, kann die Version natürlich schon überholt sein.)

Das heruntergeladene ISO-Abbild wie oben abgebildet auswählen und die Maschine starten.

Installation von Debian

Wir wählen die normale Installation, ohne grafische Desktop-Unterstützung.

Um später keine Probleme mit Datumsangaben und/oder Zeitzonen zu haben, kann man beruhigt eine komplett deutsche Umgebung auswählen. Auf produktiven Systemen kann man natürlich andere Einstellungen wählen.

Der Einfachheit halber wähle ich als Rechnername immer den Namen der virtuellen Maschine. Aber auch das kann jeder für dich selbst entscheiden. In meinem Falle wähle ich also „masch3“.

Der Domain-Name im nächsten Schritt kann für unsere Zwecke leer bleiben. Es sei denn, es bestehen dringende Gründe dagegen.

Nun braucht es noch ein schönes Root-Passwort (mit Bestätigung). Das darf – wenn man möchte – ruhig kompliziert sein. Und ein Nutzer, mit dem man arbeiten kann, darf natürlich auch nicht fehlen. Ich empfehle ein einprägsames Passwort, da man am Anfang als sudo-fähiger Benutzer (erkläre ich später) öfter danach gefragt wird.

Wenn es ans Einrichten der in der virtuellen Maschine genutzten Festplatte geht, wählen wir natürlich den Punkt „Geführt – vollständige Festplatte verwenden“. Alles andere macht keinen großen Sinn und würde später, wenn die Festplatte doch zu klein werden sollte, zu viele Probleme (Repartitionierung etc.) mit sich bringen.

Auch bei den nächsten Angaben zur Festplattennutzung bitte die Default-Einstellungen wählen.

Am Schluss klicken wir: „Partitionierung beenden und Änderungen übernehmen“

Und auf die Frage „Änderungen auf die Festplatte schreiben“ wählen wir jetzt natürlich „Ja“ aus, denn sonst würden wir wieder am vorherigen Punkt landen und uns im Kreis drehen.

Auf die Frage, ob man noch CDs oder DVDs einlesen möchte, bitte mit „Nein“ antworten.

Für den Paketmanager wählen wir einen deutschen Spiegelserver. Dazu wieder die Default-Angaben akzeptieren.

Ich nutze keinen Proxy-Server, daher kann (bei mir) das nächste Feld leer bleiben.

Ob man an der sogenannten Paketverwendungserfassung (ich liebe die deutsche Sprache) teilnehmen möchte, bleibt jedem selbst überlassen.

Wenn es an die Softwareauswahl geht, benötigen wir lediglich die Punkte: „Web Server“, „SSH Server“ und „Standard-Systemwerkzeuge“. Es wird für unsere Zwecke nicht notwendig sein, einen Desktop zu installieren, der auf virtuellen Maschinen meist nur träge läuft und unnötig Speicherplatz benötigt. Und einen Drucker-Server benötigen wir erst recht nicht.

Da Debian in unserem Falle das einzige Betriebssystem auf der virtuellen Festplatte sein wird, können wir den Bootlader in den Master Boot Record der Festplatte installieren, somit sparen wir beim Start der Maschinen Zeit.

Vorsicht: bei der nächsten Abfrage bei den zweiten Punkt wählen: „/dev/sda (…)“

Jetzt sind wir fast fertig. Bevor wir im nächsten Schritt aber die Maschine wie erforderlich neu starten, müssen wir das ISO-Abbild wieder aus dem virtuellen CD-Laufwerk auswerfen, da sonst die Installation von vorn beginnen würde.

Sollte das ISO-Abbild noch nicht ausgeworfen sein, so holen wir das jetzt nach.

Klicken und im Menü-Popup „Medium entfernen“ wählen.

Jetzt erst dürfen wir in der virtuellen Maschine auf „Weiter“ klicken. Diese startet sich neu und nach wenigen Augenblicken erscheint das bekannte Linux-Login.

Sudo & Co

Damit wir zukünftig mit dem normalen Nutzer (in meinem Falle „juergen“) vernünftig arbeiten können, muss der Nutzer der „sudo“-Gruppe hinzugefügt werden.

Was ist sudo? Sudo ist ein Befehl, der dazu benutzt wird, Prozesse mit den Rechten eines anderen Benutzers (z. B. des Superusers root) zu starten.

Da sudo standardmäßig nicht installiert wird – was mich eigentlich verwundert – müssen wir es nun erst einmal selbst installieren. Aber, aufgemerkt, das müssen wir als root tun, da wir es als normaler Nutzer selbst (noch) nicht dürfen. Denn um das zu können, benötigen wir ja erst sudo. Ein kleiner Teufelskreis, den wir aber mit der Einwahl als root durchbrechen.

Sind wir also als root eingewählt, geben wir jetzt die folgenden Befehle ein:

apt-get install sudo

Nun fügen wir den während der Installation angelegten Nutzer der Gruppe „sudo“ hinzu: adduser <username> sudo. In meinem Falle also den Nutzer „juergen“

adduser juergen sudo

Mit dem Befehl groups <username> kann man prüfen, ob das Hinzufügen tatsächlich geklappt hat.

groups juergen

Jetzt wäre es an der Zeit, im Oracle VM VirtualBox Manager einen Sicherungspunkt zu erstellen. Sicherungspunkte sind – besonders für Neueinsteiger – eine großartige Methode, um zu einem vorher festgelegten stabilen Zustand der virtuellen Maschine zurückzukehren. Sollte es im weiteren Verlauf zu Problemen kommen, sei es wegen falscher Paket-Abhängigkeiten, versehentlich gelöschten Dateien oder (noch schlimmer) einer zerstörten Partition, kann man (buchstäblich) mit einem Klick wieder zum stabilen Ausgangspunkt zurück.

Wir nutzen den Menüpunkt: Maschine→Werkzeuge→Sicherungspunkte und vergeben für unseren ersten Sicherungspunkt einen Namen und eine kleine Beschreibung.

Am Ende sollte es so aussehen.

Das Herunterfahren der virtuellen Maschine erledigt sich (wie ich finde) am bequemsten und auch sichersten über „die virtuelle Maschine mittels ACPI-Event herunterfahren“. Die Maschine wird also komplett heruntergefahren. Wer aber Zeit sparen möchte, kann selbstverständlich den Punkt „den Zustand der virtuellen Maschine speichern“ wählen. Ich rate aber davon ab, da es sonst durchaus passieren kann, dass die Maschine beim nächsten Mal beim alten Datum bzw. der alten Uhrzeit verbleibt. Beim vollständigen Herunterfahren passiert das nicht, da die Maschine beim vollständigen Neustart das aktuelle Datum (plus Uhrzeit natürlich) vom gastgebenden Windows-Rechner erhält.

Die ist Teil 1 meines kleinen Kurses. In Teil 2 geht es weiter, wenn wir dann wirklich Symfony installieren.

Salesrank über Amazon API abfragen

Bis Anfang 2020 konnte man noch mit aws_signed_request.php Anfragen an Amazon stellen, um gezielt Produktdetails zu erfragen, bspw. den Preis, die Verpackungsgröße oder den Salesrank, also den Platzierung eines Produktes in der eigenen Kategorie.

Aber natürlich musste Amazon, wie so viele Anbieter, auch mal wieder die API-Schnittstellen ändern. Warum auch nicht, wir Entwickler haben ja sowieso zu viel Zeit.

Für die neues API-Version 5.0 ist jetzt alles anders. Für euch (und auch für mich als Gedächtnisstütze) schreibe ich hier eine Schritt-für-Schritt-Anleitung auf, wie man jetzt an die Sache herangeht.

Aufgabe:

  • ermitteln des Salesrank eines (oder mehrerer) Produkte aus dem Amazon-Katalog.

1. Registrierung für die Product Advertising API

Schritt 1: Anmeldung/Registrierung zum Partnerprogramm von Amazon https://partnernet.amazon.de/home

Schritt 2: Anmeldung/Registrierung für den eigentlichen API-Zugang https://partnernet.amazon.de/assoc_credentials/home

Schritt 3: Auf obiger Website zum Punkt Verwalte Deine Zugangsdaten scrollen und dort neue Zugangsdaten generieren lassen. Also auf den Button Zugangsdaten hinzufügen klicken und die eingeblendeten Access und Secret Key kopieren.

So ungefähr sollte es aussehen, wenn das Schlüsselpaar fertig generiert ist.

Mit Hilfe dieses Schlüsselpaares kann man nun über das Scrachtpad direkt fertigen PHP Code erzeugen.

Schritt 4: Auf https://webservices.amazon.de/paapi5/scratchpad/ in der linken Leiste ITEM->GetItems anklicken. Dann öffnet sich rechts ein Formularbereich. Bei den roten Pfeilen im Screenshot das Schlüsselpaar eingeben

Schritt 5: Eine bekannte Amazon-ASIN eingeben und auf Run Request klicken. Das Feld für Add a new parameter kann leer bleiben.

Schritt 6: Weiter unten erhält man dann folgenden PHP-Code, den man gleich kopieren kann bzw. sollte.

Die Sternchen beim roten Pfeil müssen natürlich den den Secret Key ersetzt werden.

Dieser Code sollte einwandfrei laufen und ein Ergebnis im JSON-Format liefern:

Bekannte Probleme

Wenn es zu folgender Fehlermeldung kommt:

„The request was denied due to request throttling. Please verify the number of requests made per second to the Amazon Product Advertising API.“

Dann könnte es sein, dass die Anforderungen von Amazon nicht erfüllt sind. Und die sehen u.a. vor, einen historischen Mindestumsatz über das Partnerprogramm generiert zu haben.

Informationen und Links

https://webservices.amazon.com/paapi5/documentation/register-for-pa-api.html

WordPress-Tuning, Teil 2: Cache-Plugins

Nach Teil 1, in dem ich meine Testergebnisse mit verschiedenen Themes gezeigt habe, nun eine Übersicht der besten Cache-Plugins, die gratis zur Verfügung stehen.

Testumgebung:

  • WordPress 5.4.2
  • Plugins: nur Gutenberg und das jeweilige Cache Plugin
  • Theme: Twenty Twenty
  • Startseite: Demoseite des Gutenberg-Plugins
  • Gemessen mit gtmetrix.com

Die Ergebnisse sprechen für sich: W3 Total Cache ist der mehr als eindeutige Sieger.

Wordpress Cache-Plugins im Leistungsvergleich

LinkPagespeedYslowLoad TimePage SizeRequest
W3 Total CacheA (99%)A (93%)3,70,855 MB16
WP-OptimizeF (33%)B (88%)73,27 MB20
WP Fastest CacheF (33%)A (91%)3,33,28 MB22
ohneF (33%)B (82%)5,13,29 MB25
LiteSpeed CacheF (33%)B (82%)5,33,29 MB25
HummingbirdF (33%)A (91%)7,53,29 MB25
WP Super CacheF (33%)A (91%)3,83,29 MB25
Comet CacheF (33%)A (91%)4,53,29 MB25
Cache EnablerF (33%)A (91%)3,93,29 MB25
BreezeF (33%)B (89%)3,63,29 MB30
Eine Übersicht verschiedener Cache-Plugins für Wordpress und deren Leitung. Getestet wurde die Gutenberg-Demo-Seite.

WordPress-Tuning, Teil 1: Schlanke Themes – Gewicht und Leistung

Und los geht’s. Die unten stehende Tabelle zeigt eine Auswahl mehrerer Gratis-Themes von wordpress.org/themes und ihre Leistungsdaten.

Überraschender Sieger ist das Theme: scaffold.

Gewicht und Leistung verschiedener schlanker Wordpress themes

ThemeGröße (KB)PingdomPagespeed Insights
Scaffold31,6A 92100
Kaka34,2B 8799
Maker40B 8799
Astra47,5B 9099
Zakra50,6B 8598
Twenty Twenty60,8B 9099
Generic72B 8798
Responsive117B 8495
Tortuga134,3B 8495
A Starting Point147,2B 8494
Base WP149,6B 8391
Responsivo152,5B 8497
ioBoot168,9B 8388
Poseidon194,7B 8597
WP Bootstrap Starter209,5B 8391
Event Listing220,4B 8287
Vast221,5B 8184
Color Blog236,6B 8275
Pencil248,4B 8282
Getwid Base263,7B8385
Suffice275C 8079
CyberChimps276,1C 8074
E-Commerce292,2B 8385
Refresh Blog315,1B 8279
Resoto325,7B 8281
Orchid Store342,6B 8584
Compact One348,2C 7862
Catch Responsive467,6B 8272
Catch Base657,5B 8288
Clean Journal834,9B 8276
Profisme1300B 8264
Eine Übersicher mehrere schlanker Wordpress Themes mit Angaben zu Gewicht (=Downloadgröße der Website) und Leistung (gemessen mit pingdom und pagespeed insights)

Zwei-Faktor-Authentifizierung für WordPress mit Two-Factor

Wer seinen Blog zusätzlich absichern möchte, sollte eine Zwei-Faktor-Authentifizierung mit seinem Smartphone in Betracht ziehen. Dabei wird nicht nur das Passwort abgefragt, sondern zusätzlich auch ein temporär und individuell generiert Code (eben der zweite Faktor) abgefragt. Dieser Code wird über die App „Google Authenticator“ erzeugt.

Anleitung

  1. Google Authenticator auf dem Smartphone installieren (Android oder Apple)
  2. Für WordPress das Plugin Two-Factor (https://de.wordpress.org/plugins/two-factor/) installieren.
  3. In WordPress aufrufen: „Benutzer -> Dein Profil“. Dort gibt es jetzt den Abschnitt „Two-Factor-Einstellungen“.
  4. Die Haken bei Aktiviert und Primär nach Wunsch setzen. Dann wie gewohnt den QR-Code scannen oder alternativ die App „Google Authenticator“ öffnen und den abgebildeten Key unter dem QR-Code händisch eingeben.
  5. Um die initiale Authentifizierung abzuschließen muss noch der in der App generierte sechstellige Zahlencode in das Feld „Authentifizierungscode“ eingegeben werden.

Fertig

Beim nächsten Login muss man in einem zweiten Schritt zusätzlich zum Passwort auch den temporären Authentifizierungs-Code eingeben.

Danke an Themecoder für den Hinweis auf das Plugin Two-Factor.