php xdebug mit atom

Ich verwende sehr gerne den Atom Editor .

Da ich nun wieder etwas mehr mit PHP arbeite, habe ich mir wieder etwas zeit genommen und mein Entwicklungs-System neu eingerichtet.

Ich verwende nun ein Debian 10 (noch testing – aber ich mag Debian einfach…) alias Buster mit einem nginx server und php7.3-fpm mit php-xdebug.

Natürlich habe ich auch noch weitere PHP-Pakete mit installiert, die aber für die Konfiguration mit xdebug keine Änderungen bedeuten würden.

In /etc/php/7.3/fpm/conf.d/20-xdebug.ini habe ich folgende Einstellungen eingetragen.

 zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1 # Not safe for production servers
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=false
xdebug.remote_log="/tmp/xdebug.log"

xdebug.remote_log hat mir dann sehr geholfen, als das ganze nicht so funktioniert hat, wie ich mir das vorgestellt hatte. Wenn das Debugging sauber funktioniert kann diese Zeile entfernt werden.

Der Port 9001 wurde gewählt, da die meisten PHP FPM-Installationen den Port 9000 bereits belegen.

Durch die Einstellung xdebug.remote_autostart=false wird der debugger nur aktiv, wenn ich das will. Dazu habe ich mir das Firefox-Plugin xdebug-helper installiert.
In den Einstellungen des Plugins muss der Wert für IDE-Key auf Other und der Wert auf xdebug-atom gesetzt werde

Mit den Icons (in der Adresszeile kann schnell der Debugger aktiviert oder deaktiviert werden)

Nun kann das Paket php-debug (mit Abhängigkeiten) im Atom Editor installiert werden.
Damit PHP Xdebug mit Atom kommuniziert, muss in den Einstellungen des php-debug paketes der Port auch auf 9001 geändert werden.

Spätestens wenn der PHP Debug Button aktiviert wird, muss Atom einen Port 9001 offnen.
Ob das so funktioniert prüft man am besten mit :

sudo lsof -i -n | grep :9001
atom 1643 wenger 70u IPv6 70130 0t0 TCP *:9001 (LISTEN)

Da hier IPv6 bei mir verwendet wird, hat mir die Ausgabe in /tmp/xdebug.log sehr geholfen. Gegebenenfalls muss dann die Xdebug config auch auf IPv6 geändert werden.

Anmerkung: Scheinbar klappt es auch, wenn IPv4 127.0.0.1 (xdebug) mit Atom :::9001 spricht, wenn diese Kommunikation nicht Firewall-technisch verhindert wird

Wenn ich nun Break-Points im Atom -Editor setze und die Seite im Browser lade (Debugging enabled) so kann ich wunderbar die PHP-Scripte debuggen und sogar Schritt für Schritt abarbeiten.

Ich freue mich schon auf die nächsten größeren PHP-Projekte.

Kindersachenbörse Goldegg 6. Oktober 2018

Am 6 Oktober wird es wieder eine Kindersachenbörse in Goldegg geben.

Die letzten Änderungswünsche werden noch in das Computer-Programm der Kindersachenbörse eingebaut.

Unter https://ksb.unifox.at/2ndhand-web/ kann man sich schon Anmelden und Artikel, die verkauft werden sollen, eintragen.

Wir hoffen, dass diese Kindersachenbörse auch wieder gut besucht wird und wieder viele schöne Sachen neue Besitzer finden.

Alle Infos zur Kindersachenbörse in Goldegg findet Ihr hier.

SMA-EM-Daemon funktioniert auch mit dem Sunny Home Manager 2.0

Ich habe neulich erfahren, dass mein SMA-EM-Daemon auch mit dem Sunny Home Manager 2.0 funktioniert.

Auf der SMA-Homepage findet man folgende Aussage:

Ab April 2017 vereint der neue Sunny Home Manager 2.0 
die Funktionen aus dem Sunny Home Manager Bluetooth und 
dem SMA Energy Meter in einem Gerät. Damit wird 
intelligentes Energiemanagement noch einfacher und 
kostengünstiger.

Somit ist es nur logisch, dass die Datenpakete auch von diesem Produkt gleich versendet werden.

Da ich selbst nur einen SMA-Energy Meter besitze, kann ich das nicht selbst überprüfen. Anwender melden aber, dass der SMA-EM-Daemon auch mit dem Sunny Home Manager 2.0 funktioniert.

SanDisk ioDimm3 als writeback Cache

Ich habe heute alle meine virtuellen (test) Maschinen von meiner ExHana Maschine entfernt und mich mit LVM (Logical Volume Manager) beschäftigt.

Im Thomas-Krenn Wiki habe ich eine gute Anleitung gefunden, wie man SSDs als Cache in einem LVM für ein langsameres Storage verwenden kann.

Mit ein paar kleinen Anpassungen funktionieren nun meine SanDisk ioDimm3 als writeback Cache für meinen Raid-Speicher.

Die SanDisk ioDimm3 wurden in einen Raid 1 -Verbund zusammen geschaltet. Der langsamere Storage wird in meinem Setup nicht als Linux Software-Raid zur Verfügung gestellt, sondern direkt vom Smart-Array-Controller als Raid betrieben.

Alle anderen Einstellungen habe ich wie im Wiki beschrieben umgesetzt.

Jetzt geht’s an’s TESTEN.  (Natürlich auch mit LVM Snapshots)

 

Debian Mass storage controller: SanDisk ioDimm3 (rev 01)

In meiner Hana-Test-Maschine sind 2 Mass storage controller: SanDisk ioDimm3 (rev 01) verbaut.

Hier eine kurze Anleitung, wie ich diese Dinger unter Linux Debian 9 installiert habe.

Bei Sandisk registrieren und Sourcecode herunterladen, entpacken und installieren funktioniert bei mir nicht. Fehler beim Compilieren…

Aber auf  GitHub habe ich jemanden gefunden, der die Sources patcht, so dass diese auch mit  aktuellen Debian Kerneln verwendet werden können.
(getestet mit 4.9.0-5-amd64 #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04) x86_64 GNU/Linux)

 

git clone https://github.com/snuf/iomemory-vsl.git
(stand 1.2.2018 branch master)

cd iomemory-vsl/root/usr/src/iomemory-vsl-3.2.15

make modules

sudo make modules_install

 

Von der SanDisk – Seite im Bereich Ubuntu 16.04 folgende Pakete downloaden

fio-common_3.2.15.1700-1.0_amd64.deb
fio-preinstall_3.2.15.1700-1.0_amd64.deb
fio-sysvinit_3.2.15.1700-1.0_all.deb
fio-util_3.2.15.1700-1.0_amd64.deb
fusion_3.2.11-20150618.fff

und installieren

sudo dpkg -i fio*

sudo depmod

sudo modprobe iomemory-vsl

ls -l /dev/fio* sollte nun devices anzeigen

genau so wie lsblk

sudo update-rc.d iomemory-vsl defaults

sudo nano /etc/sysconfig/iomemory-vsl
ENABLED=1

…und schon kann man die Dinger wie Festplatten verwenden.

Im UserGuide stehen einige interessante Informationen über Performance drinnen…

So zeigt mein System im Leerlauf folgende Messwerte:

wenger@flo-hana-test:~$ for i in sda sdb fioa fiob fioc fiod ; do sudo hdparm -tT /dev/$i ; done

/dev/sda:
 Timing cached reads: 13788 MB in 1.99 seconds = 6924.94 MB/sec
 Timing buffered disk reads: 3222 MB in 3.00 seconds = 1073.57 MB/sec

/dev/sdb:
 Timing cached reads: 13628 MB in 1.99 seconds = 6844.02 MB/sec
 Timing buffered disk reads: 828 MB in 3.00 seconds = 275.87 MB/sec

/dev/fioa:
 Timing cached reads: 13664 MB in 1.99 seconds = 6862.95 MB/sec
 Timing buffered disk reads: 1472 MB in 3.00 seconds = 490.39 MB/sec

/dev/fiob:
 Timing cached reads: 13588 MB in 1.99 seconds = 6825.05 MB/sec
 Timing buffered disk reads: 1484 MB in 3.00 seconds = 494.26 MB/sec

/dev/fioc:
 Timing cached reads: 13646 MB in 1.99 seconds = 6854.43 MB/sec
 Timing buffered disk reads: 1444 MB in 3.00 seconds = 481.06 MB/sec

/dev/fiod:
 Timing cached reads: 13604 MB in 1.99 seconds = 6832.86 MB/sec
 Timing buffered disk reads: 1482 MB in 3.00 seconds = 493.53 MB/sec

und unter Last (… moment; erzeug mal auf so einer Maschine etwas Last…)

also unter Last (load1 = 55.54) ergeben sich diese Messwerte

wenger@flo-hana-test:~$ for i in sda sdb fioa fiob fioc fiod ; do sudo hdparm -tT /dev/$i ; done

/dev/sda:
 Timing cached reads: 10900 MB in 1.99 seconds = 5470.36 MB/sec
 Timing buffered disk reads: 2882 MB in 3.00 seconds = 960.07 MB/sec

/dev/sdb:
 Timing cached reads: 9990 MB in 1.99 seconds = 5013.43 MB/sec
 Timing buffered disk reads: 844 MB in 3.01 seconds = 280.47 MB/sec

/dev/fioa:
 Timing cached reads: 11134 MB in 1.99 seconds = 5586.12 MB/sec
 Timing buffered disk reads: 2420 MB in 3.00 seconds = 806.38 MB/sec

/dev/fiob:
 Timing cached reads: 10940 MB in 1.99 seconds = 5489.71 MB/sec
 Timing buffered disk reads: 2444 MB in 3.00 seconds = 814.11 MB/sec

/dev/fioc:
 Timing cached reads: 10912 MB in 1.99 seconds = 5478.23 MB/sec
 Timing buffered disk reads: 2436 MB in 3.00 seconds = 811.90 MB/sec

/dev/fiod:
 Timing cached reads: 11116 MB in 1.99 seconds = 5581.95 MB/sec
 Timing buffered disk reads: 2454 MB in 3.00 seconds = 817.45 MB/sec

Erklärung:
sda = Raid50 mit 25 Festplatten
sdb = Raid1 mit 2 Festplatten
fioa-fiob = SanDisk ioDimm

Mir ist schon klar, dass hdparm -tT nicht unbedingt ein gutes Messwerkzeug für diese Tests darstellt, aber es zeigt doch ganz deutlich was DVFS (Dynamic Voltage and Frequency Scaling) also die Energiesparfunktionen für Auswirkungen auf die Geschwindigkeit haben.