Automatisierte WordPress Backups auf Mega.nz

Hallo Freunde der geliebten Technik,

heute geht es um automatisierte WordPress Backups auf den Ende zu Ende verschlüsselten Onlinespeicher Mega.nz. Dort gibt es nämlich 50GB Speicher kostenlos und nicht wie bei Dropbox nur 2GB ;)

Voraussetzungen für das Mega.nz Backup

  • funktionierende WordPress Installation
  • Backup Plugin BackWPup (oder ähnliches mit FTP support)
  • einen MEGA.nz Account
  • Root Rechte um die MEGAcmd zu installieren

Warum eigentlich auf MEGA.nz speichern?

Die Antwort ist relativ einfach, denn 1. MEGA bietet 25x mehr kostenlosen Speicherplatz und 2. Dateien die Ihr dort speichert sind wirklich geschützt, da sie Ende-zu-Ende Verschlüsselt sind. Wem dir also Privatsphäre wichtig ist, solltest du eventuell in Erwägung ziehen deine Backups nicht auf Dropbox und Co zu speichern.

1. MEGAcmd auf euren VPS / Root Server installieren

Hier am Beispiel erkläre ich euch wie Ihr dies mit einem Ubuntu Server macht. Wenn Ihr eine andere Distribution habt könnt Ihr aber ähnlich vorgehen.

Unter dieser URL findet Ihr für alle Betriebssysteme die passende MEGAcmd Version:
Wir nehmen also in diesem Fall die Ubuntu 18.04 Version und laden Sie direkt auf unseren Server:
wget https://mega.nz/linux/MEGAsync/xUbuntu_18.04/amd64/megacmd_1.4.0-6.1_amd64.deb
Anschließend führen wir die Installation durch:
sudo dpkg -i megacmd_1.4.0-6.1_amd64.deb

Installation überprüfen:

mega-help

 2. Mit MEGAcmd unseren MEGA.nz Account per FTP bereitstellen

Wir stellen jetzt unseren MEGA Account mit Hilfe der cmd als lokalen FTP auf unserem VPS/Server bereit damit wir dorthin dann das Backup schieben können. Der FTP ist auch nur von localhost/127.0.0.1 erreichbar und somit abgesichert von außen. Mehr zu dem Thema könnt Ihr auch auf der Github Seite finden.

Wir loggen uns also erst einmal in unseren Account ein:

# mega-login <username> <password>

Anschließend stellen wir einen Ordner aus unserem Account per FTP zu Verfügung

# mega-ftp /mega/beispiel-ordner/

Mit dem Befehl verifizieren wir ob der Ordner nun zur Verfügung steht:

# mega-ftp

3. WordPress Plugin BackWPup konfigurieren

Im letzten Schritt müssen wir einfach nur ein normales Backup einrichten und als Ziel "FTP" auswählen. Im Folgenden Screenshot zeige ich euch die korrekten Einstellungen.

Einstellungen:
  • Server: 127.0.0.1
  • Port: 4990
  • User: anonymous
  • PW: anonymous
  • Pfad: hier kommt der Pfad rein der euch von dem Befehl mga-ftp ausgegeben wurde
  • Timeout: 300
  • Passive Mode: true

BackUPup Einstellungen FTP Mega.nz

Bekannte Probleme:

Beim ausführen des Backup wird euch eine Fehlermeldung entgegen kommen und das Plugin behauptet der Job hat ein Fehler. ABER es funktioniert alles problemlos. Der lokale FTP unterstützt nur ein Command nicht welches bei dem Plugin ein Fehler auslöst. Dies ist aber nicht schlimm und zu vernachlässigen.

Fertig! Euere Backups werden nun sicher bei MEGA.nz gespeichert.


Ich hoffe euch hat dieser Artikel gefallen dann lasst gern ein Kommentar da, hilfreiche Kritik oder Anregung da sind immer erwünscht.

Freundliche Grüße

Ubuntu 20.04 LTS (Focal Fossa) - NordVPN installieren unter Root


Guten Tag meine lieben Technik Fans,

heute schauen wir uns mal im schnell Durchlauf an wie wir die aktuelle NordVPN Software auf einen frisch installieren Ubuntu 20.04 Forcal Fossa VPS / PC / Rechner installieren können. Das ganze machen wir mit dem Benutzer Account "root". Also lasst uns loslegen.

NordVPN installieren unter Ubuntu 20.04


Einfach die Befehle kopieren und ausführen ;=)

Schritt 1: NordVPN .deb Package herunterladen (https://nordvpn.com/de/download/linux/)

# wget https://repo.nordvpn.com/deb/nordvpn/debian/pool/main/nordvpn-release_1.0.0_all.deb


Schritt 2: Repository installieren

# sudo apt-get install /root/nordvpn-release_1.0.0_all.deb
Hinweiß! solltet Ihr hier eine Fehlermeldung in der Art erhalten: "Download is performed unsandboxed as root" dann fehlen dem User _apt die Rechte. Führt dann folgendes aus.

# sudo chown -Rv _apt:root /var/cache/apt/archives/partial/
# sudo chmod -Rv 700 /var/cache/apt/archives/partial/


Schritt 3: Aktualisiere deine Paketlisten

# sudo apt-get update && sudo apt-get upgrade

Schritt 4: NordVPN installieren

sudo apt-get install nordvpn

Fertig!

Das war es auch schon. Am Ende könnt ihr ja noch mal prüfen ob alles geklappt und und ob Ihr die passende Version installiert habt. Mit "nordvpn --version" zeigt Ihr euch die installierte Version an. Falls Ihr irgendwelche Fragen oder Anregungen habt dann einfach ab in die Kommentare.

EA Origin Spiele über Steam Link spielen


Star Wars Jedi Fallen Order über Steam Link spielen

Mit dem beliebten Steam Link kann man nicht nur die eigenen Steam Spiele am heimischen TV spielen nein man kann auch spiele von der Konkurrenz konsumieren. Wie du Origin spiele über Steam Link spielen kannst erklären wir in dem folgenden Beitrag.

Einstellungen von Steam / Steam Link

Hier musst du eigentlich nicht viel einstellen bzw verändern. Aktualisiere dein Steam Link auf die aktuellste Version und lass die Treiber Konfiguration des Xbox 360 Controllers auf die alte Variante. Der hier verwendete Steam Link hat Build 699.

Um das Spiel aber im Steam Link zu spielen musst du dein Origin Game aber erst einmal in Steam hinzufügen. Du musst in deinem Steam am PC also ein "Steam Fremdes Spiel" hinzufügen. Die Option dazu findet Ihr in eurer Steam Bibliothek beim hinzufügen von Spielen. Dazu wählt Ihr einfach die .exe Datei von dem euch gewünschten Spiel aus. Diese Findet Ihr in dem Installationsordners eures Origin / Dein Spiel / starteSpiel.exe. So ähnlich wird der Pfad zu eurem Spiel aussehen.

Das waren die genutzten Einstellungen.

Einstellungen von Origin

Bei Origin gibt es ein paar Punkte die von den Standard Einstellungen abweichen. In den Einstellungen unter Anwendung, deaktivieren wir die Option "Nach dem Spielen Origin anzeigen".


Außerdem müssen wir unter "Origin im Spiel" die Option "Origin im Spiel aktivieren" deaktivieren! Somit wird verhindert das das Origin Overlay das Overlay von Steam überschreibt.


Controller wird als Tastatur erkannt - Controller funktioniert nicht

Sehr viele Nutzer, haben das Problem das bei Ihren Origin Spielen, dass GamePad welches am Steam Link eingeschlossen nur als Tastatur und Maus erkannt werden. Dies ist auch in meinem Setup einige mal aufgetreten.

Ich glaube der Trick an der Geschichte ist, dass wenn man das Spiel im Steam Link über den Big Picture Mode gestartet hat, dass man zum PC geht und auf der Tastatur die Kombination ALT + Tab drückt und auf das Fenster des Spiels wechselt ohne die Maus zu benutzen. Das Spiel sollte jetzt auch über den Steam Link sichtbar sein und die Steuerung über den Controller sollte funktionieren.

Falls dies nicht der Fall ist und euer Controller nicht erkannt wurde, dann beendet das Spiel sowie Origin und versucht das ganze ein paar mal zu wiederholen bis es funktioniert. In meinem Test hat dies meistens geklappt.

Viel Spaß mit euren Origin Games ;)


In meinem Test habe ich somit ohne Probleme Star Wars Jedi Fallen Order über Steam Link zum laufen gebracht. Bei Fragen oder Kritik benutzt bitte die Kommentare.

Ansonsten wünsche ich euch "Möge die Macht mit euch sein!"

WhatsApp mit Fingerabdruck absichern


Neues Feature! WhatsApp absichern mit deinem Fingerabdruck

Hallo an alle WhatsApp Nutzer! Ja ich gebe es zu ich nutze diesen Messenger auch obwohl WhatsApp schon länger Facebook gehört und wir alle wissen was mit unseren Daten passiert. Aber da fast 90% darüber erreichbar sind bleibt einem wohl oder Übel keine andere Wahl. Aber darum geht es heute auch nicht. Wir schauen uns das neue "Fingerabdruck" Feature an.

Warum eigentlich WhatsApp absichern?

Das ist natürlich eine berechtigte Frage, aber wieso versteckt Ihr in eurer Wohnung Wertgegenstände wenn doch die Tür eigentlich zugeschlossen ist? Richtig, denn es kann immer passieren das jemand in eure Wohnung bzw euer Smartphone in die Finger bekommt und dessen erste Sicherheitshürde umgehen kann. In der Wohnung wäre das die verschlossene Tür, bei eurem Smartphone wäre das euer PIN, Muster, Fingerabdruckscan etc. Ihr versteht hoffentlich auf was ich hinaus möchte? 

Wenn Ihr zum Beispiel einem Freund euer Smartphone leiht und dieser eigentlich nur ein Foto machen soll aber kurz mal in euer WhatsApp rein schnuppern möchte ja der schaut dann in die Röhre und Ihr müsst kein schlechtes Gefühl haben das euer Freund / Kollege irgendwas peinliches gefunden haben könnte ;)

Tutorial - Schritt für Schritt Anleitung

Ich zeige euch jetzt hier wie Ihr Schritt für Schritt das Feature aktiviert und nutzen könnt.

1. WhatsApp starten -> oben Rechts auf die drei Punkte drücken -> Einstellungen
2. In den Einstellungen dann auf den Punkt "Account" (siehe Bild)
3. hier auf "Datenschutz", anschließend bis nach unten Scrollen, dort steht "Fingerabdruck Sperre"
4. hier könnt Ihr nun eure bevorzugten Einstellungen vornehmen

Tip: wer nicht möchte das jemand den Inhalt der Push Nachricht lesen kann wenn Ihr eine Nachricht erhaltet, der deaktiviert einfach die Option "Inhalt in Benachrichtigungen anzeigen". Dann seid Ihr wirklich "sicher" und quasi niemand außer euch kann eure Nachrichten lesen ;)

Ihr habt diese Option nicht? Aktuelle WhatsApp Version installieren

Falls Ihr in euren WhatsApp Einstellungen diese Option nicht habt dann benötigt Ihr eine aktuellere Version von WhatsApp. Dazu könnt Ihr im PlayStore einfach im WhatsApp Beta Programm teilnehmen. Dieses ist kostenlos und Ihr erhaltet immer die neusten Versionen des Programms.

Dazu einfach im Playstore auf WhatsApp navigieren und etwas runter scrollen. Dort findet Ihr dann die Option dem Beta Programm teilzunehmen.


Wie findet Ihr die Funktion und werdet Ihr sie nutzen? Lasst es mich wissen und schreibt es in die Kommentare. Ich für meinen Teil finde es nützlich und werde mein WhatsApp damit absichern. Falls Ihr eine Alternative zu WhatsApp sucht, dann werft doch einfach mal einen Blick auf meinen WhatsApp Alternativen Artikel. Vielleicht findet Ihr ja etwas passenden für euch.

PHP 7.2 - Mcrypt durch OpenSSL ersetzen

Thema: Replace mcrypt_encrypt mit openssl_encrypt in PHP

Hallo liebe Leser,
die Zeit schreitet voran und mittlerweile gibt es seit Ende 2018 auch PHP 7.3. Was viele Leute aber bis heute nicht getan haben ist die Migration Ihres alten Verschlüsselungscodes basierend auf der mcrypt Library zu etwas modernerem wie OpenSSL, welches seit PHP 7.2 als Standard implementiert wurde und mcrypt abgelöst hat. In PHP7.2 wurde außerdem die Krypto-Library LibSodium integriert welche moderne und starke Verschlüsselungsmethoden zur Verfügung stellt.

Mcrypt Beispiel ersetzen mit OpenSSL

Vor uns liegt nun ein typisches MCrypt Beispiel Konstrukt welches wir zu OpenSSL Abwärtskompatibel portieren möchten.

Mcrypt Code:


Der equivalente OpenSSL PHP Code dazu würde wie folgt aussehen:

OpenSSL Code:


Wie Ihr sehen könnt, hat sich bei OpenSSL die Methode geändert, in diesem Fall entspricht 'aes-128-cbc' der Mcrypt Methode 'cbc'. Wenn diese Option 'OPENSSL_RAW_DATA' gesetzt ist gibt openssl_encrypt lediglich die Rohdaten zurück. Denn standardmäßig macht openssl_encrypt schon ein base64_encode auf das Ergebnis, wird die Option gesetzt geschieht dies nicht automatisch.

Das Beispiel ist relativ einfach gehalten um die grundlegende Mechanik und den Unterschied deutlich sichtbar zu machen. Außerdem wird empfohlen einen zufälligen IV zu generieren und einen Schlüssel mit entsprechender länge.

Für tiefgründigeres Wissen über OpenSSL in PHP empfehle ich die Dokumentation auf PHP.net, dort erfahrt Ihr ausführlich erklärt alle Einzelheiten über die verfügbaren OpenSSL Funktionen in PHP.

Falls Ihr gute oder schlechte Erfahrungen mit OpenSSL oder Mcrypt in PHP gemacht habt dann hinterlasst doch ein Kommentar. Ansonsten hoffe ich das euch dieser Artikel ein Schritt in die richtige Richtung weisen konnte.

Linux Import Root-Zertifikat (CA)

Fix "Dies ist keine sichere Verbindung" für Chrome und Firefox

Du hast genau dieses Problem? Du bist auf Arbeit und dein Browser warnt dich vor internen Seiten weil diese ein von der Firma ausgestelltes Zertifikat verwenden? Dann bist du hier genau richtig und ich werde dir zeigen wie du das Problem beheben kannst.

Chrome und Firefox nerven!

Jedes mal diese nervige Meldung akzeptieren, der Firefox merkt sich das Zertifikat wenigstens. Aber im Chrome muss man alle Tage wieder das Zertifikat akzeptieren. Warum das so ist? Das wird wohl nur Google wissen, die wollen ja sowieso nur das beste für uns *hust*.

Grundproblem: selbst ausgestelltes Zertifikat (z.B. bei Firmennetzwerk)

Die meisten Leute die in der IT arbeiten kennen das Problem die Firma hat internen Seiten welche mit einem selbst ausgestellten SSL Zertifikat abgesichert sind. Eigentlich keine schlechte Sache aber da diesem Zertifikat nicht vertraut wird entstehen dadurch nervige Nebeneffekte wie zum Beispiel die Warnmeldung im Browser.

Lösung: Root-Zertifikat importieren unter Ubuntu (Linux)

Verschiedene Truststore Datenbanken updaten

Eigentlich klingt die Lösung einfacher als Sie am Ende ist. Denn das Problem an sich besteht darin, das Betriebssystem und Browser verschiedenen "Truststores" haben. Das bedeutet wenn das Betriebssystem (OS / Operating System) weiß welches Zertifikat vertraut werden darf, dann wissen es die Browser trotzdem nicht, da diese auf andere Truststore Datenbanken zugreifen.

Die Grundlegende Lösung für diese Problem habe ich im Blog von Thomas Leister gefunden. Vielen Dank an dieser Stelle. Seine Lösung habe ich optimiert und vereinfacht. Herausgekommen ist ein kleines Script was Ihr über einen Befehl, herunterladen und ausführen könnt.

Voraussetzung:

  • Root Zertifikat vorhanden
  • Zertifikat muss 'root.cert.pem' heißen (ansonsten umbenennen)
  • Zertifikat muss im gleichen Ordner wie das Script liegen

Script - update Browser TrustStores:

wget https://raw.githubusercontent.com/ManuelReschke/linux-helper/master/ubuntu/ca-certificate/install-certificate.sh; chmod +x install-certificate.sh

Was passiert da?

Das kleine Bash Script aktualisiert den Chrome (Chromium) und Firefox Truststore. Nach Neustart der Browser sollten diese nicht mehr nach einem Zertifikat fragen (bzw Sie fragen einmalig).

Den Codes des Scripts könnt Ihr euch auf meinem Github Profil ansehen: install-certificate.sh

Das Skript installiert als erstes das Zertifikat welches Ihr unter CERT_FILE angeben könnt in euer Linux System. Danach installiert es die Abhänigkeit zu libnss3-tools welche für den Befehl "certutil" benötigt werden. Abschließend sucht und aktualisiert es die Truststores der Browser. Thats it :)

Adieu, nervige Sicherheitsmeldung

Damit sollten die nervigen Meldungen wie "Diese Verbindung ist nicht sicher" - " Fehlercode: SEC_ERROR_UNKNOWN_ISSUER" oder "Dies ist keine sichere Verbindung" der Vergangenheit angehören. Ein Problem weniger welches man täglich wegklicken muss ;)

Grüße an die Browser Entwickler die uns mit so etwas quälen!

SiaCoin - Was ist das? Kaufen? Ausblick 2018


SiaCoin - Die Zukunft des Cloud Speichers?

1$ in 2018? 1000% Profit?

Heute soll es um das Thema Sia / SiaCoin gehen. Es werden Fragen geklärt und gezeigt wie man SiaCoins kauft und verkauft. Außerdem werfen wir einen Blick in die Zukunft und spekulieren ein wenig über den Wert dieses Coins und der Technologie.

Was ist genau ist Sia eigentlich?

Im Jahre 2013 wurde die Idee von Sia geboren. Die Idee war ungenutzten Speicherplatz zu nutzen und zu einem globalen Netzwerk / Marktplatz zusammenzuführen und genau das haben die Jungs von der Firma Nebulous Inc. getan. Nebulous ist der aktuelle Betreiber der Plattform und Geldgeber.

Sia ist also einfach ausgedrückt eine Art neuer Cloudspeicher mit vielen Vorteilen. Denn Sia verknüpft seine eigene Blockchain mit Speicherplatz Verträgen die man mit der eigenen Währung SiaCoin bezahlen kann. Also kann jeder mit freiem Speicher theoretisch ein Teil des Netzwerks sein und dadurch SiaCoins / Geld verdienen.

Hä? Wie was bitte? Ok ich erkläre es dir kurz an einem einfachen Beispiel.
Benutzer 1 hat 1 TB ungenutzten Speicherplatz, mit Hilfe des Sia Clients vermietet er diesen zu eigens festgelegten Konditionen im Sia Netzwerk. Benutzer 2 kann dann im Sia Client Speicherplatz kaufen und macht sozusagen einen Vertrag mit Benutzer 1. Diese Informationen werden mit Hilfe der Blockchain Technologie verknüpft und sicher gespeichert und das zu einem drittel des Preises von Amazons S3 oder Googles Cloud.

Dazu kommt der Punkt das vor dem Upload alle Dateien mit aktuell sicherster Verschlüsselungstechnik AES verschlüsselt und in einzelne Teile zerlegt werden. Diese werden dann im Netzwerk redundant gespeichert. Das bedeutet niemand außer Du kann jemals an die Daten einsehen oder nutzen, vollkommen Privat und gegen Ausfall einzelner Nodes geschützt.

Aber genug erst mal kommen wir zu den kurzen und knackigen Zahlen und Fakten.

Fakten zu Sia und SiaCoin

  • Sia
    • Sia ist dezentraler, global verteilter, sicherer Cloudspeicher auf der Blockchain
    • die Idee zu Sia entstand 2013
    • entwickelt von David Vorick und Luke Champine
    • Sia wird von Nebulous Inc. betrieben
    • Daten werden redundant im Netzwerk gespeichert (Ausfallsicher!)
    • Daten werden verschlüsselt und in Teile zerlegt vor dem Upload (100% Privat)
    • Lokale Wallet? Ja
    • Web Wallet? Jaein (in Planung), Exchanges bieten es
    • Mobile Wallet? Ja (keine Offizielle)
  • SiaCoin
    • SiaCoin hat die Abkürzung "SC"
    • Block Intervall = 10min
    • Block Reward: 300.000 (nimmt mit jedem Block um 1 ab), unterschreitet 30k aber nie
    • mining mit CPU, GPU und ASICs (für 2018 geplant)
    • Open Source Code, jeder kann mit Helfen - GitHub Sia
    • kleinste SC Einheit: 0.000000000000000000000001 SC 10-24 SC
    • Handelbar auf Bittrex und ShapeShift
    • SiaCoin Transaktionen können eingesehen werden https://explore.sia.tech/

Wo kann ich SiaCoins kaufen?

Aktuell gibt es noch nicht viele Möglichkeiten diese Währung zu kaufen. Zu empfehlen sind aktuell nur 2 Anbieter oder man schürft SiaCoins selber.
Wie man SiaCoins auf Bittrex kauft könnt Ihr in unzähligen Youtube Videos anschauen. Voraussetzung sind natürlich ein Bittrex Account und Bitcoin's zum eintauschen. Natürlich kann man die Coins auf so einem Exchange auch wieder verkaufen.

Aktueller Stand (2017) von Sia / SiaCoin

Im Jahr 2017 hat sich SiaCoin gut entwickelt. Aktuell ist die Kryptowährung auf Platz 32 der Top 100 auf coinmarketcap.com. Mit einer Marktkapitalisierung von $600.887.702 USD was einem Bitcoin Wert von 43,118 BTC entspricht.


Der Preis erreichte Gestern (20. Dez) ein Allzeit hoch von 3 Cent was bei der Menge die im Umlauf ist ein sehr guter Wert ist. Viele Anleger konnten dadurch Ihr Investment um 300% steigern. Der Preis ist aber aktuell wieder leicht gefallen was aber auch mit dem schlechten BTC Kurs zusammenhängt.

Ausblick 2018 vielleicht 1$ pro SC ?

Ich bin ehrlich ich glaube nicht das der SC in 2018 1$ erreichen wird. Aber ich empfehle auch jeden Kryptofan in den kommenden Monaten noch in SiaCoin zu investieren! (Investiert nur das was Ihr auch bereit seit im schlimmsten Fall zu verlieren!) Warum? Ganz einfach das Produkt funktioniert, es ist lauffähig, es wird aktiv Entwickelt. Speicherplatz wird immer benötigt und der Markt wächst und wächst. SiaCoin wird in der Zukunft eine bedeutende Rolle in diesem Bereich einnehmen davon bin ich überzeugt.

Wenn 2018 die auf der Roadmap stehenden Funktionen umgesetzt werden und die GUI und der Prozess des vermieten von Speicherplatz einfacher wird sehe ich eine sehr positive Zukunft für Sia und für jeden der in diesen Coin investiert hat und wird.

Am besten verfolgt man einfach den Sia Twitter Kanal und den Sia Discord Server dort wird viel über kommenden Dinge berichtet. Meiner Meinung nach wird es ein spannendes Jahr für SiaCoin dessen Konkurrenten sowie für alle Cloud Speicher Anbieter.

Eure Fragen, Probleme, Bedenken und Sorgen könnt Ihr in den Kommentaren niederlassen. Für konstruktive Kritik und das finden von Rechtschreibfehler bin ich sehr dankbar.

In diesem Sinne frohe Weihnachten!

Monero/AEON Mining mit XMR-STAK 2.0

Tutorial Monero Mining Ubuntu (XMR-STAK 2.0)

Neue Version XMR-STAK 2.0.0 ausprobiert!

Der Entwickler "fireice-uk" hat eine neue Version von seiner beliebten Mining Software XMR-STAK veröffentlicht. Grund für uns sich diese einmal etwas genauer anzuschauen.

Laut Changelog haben wir in dieser Version einige interessante Änderungen. Denn die Software vereint jetzt alle drei Versionen zu einer Software. Wir benötigen also nicht mehr extra den XMR-STAK-CPU, XMR-STAK-AMD oder XMR-STAK-NVIDA Miner sondern können bequem alles aus einer Hand installieren und konfigurieren. Außerdem unterstützt die Software jetzt die Kryptowährung AEON, welche wie Monero auf einen ähnlichen Hash Algorithmus zurück greift (CryptoNote Lite). Dieser ist für Smartphones optimiert. Wie ich finde auch eine interessante Kryptowährung. Wer mehr darüber wissen möchte kann gern mal auf der offiziellen Seite vorbeischauen.

Hier jetzt noch einmal der komplette Changelog der Vollständigkeit halber.

Features
  • 10% boost to CPUs without hardware AES
  • Supports all common backends (CPU/x86, AMD-GPU and NVIDIA-GPU)
  • Supports all common OS (Linux, Windows and MacOS)
  • Supports algorithm cryptonight for Monero (XMR) and cryptonight-light (AEON)
  • Guided start (no need to edit a config file for the first start)
  • Automatic configuration for each mining backend
  • Allows to tweak each core or gpu by hand
  • Supports backup pools
  • TLS support
  • HTML statistics
  • JSON API for monitoring
  • Support the new stratum statistics extension
  • Easy precompiled and portable Linux binary

Installation XMR-STAK 2.0 unter Ubuntu

Das neue XMR-STAK bietet jetzt auch eine bereits kompilierte Version welche man portable typisch nur noch herunterladen muss und ausführen kann. Dies spart das selbst kompilieren.

// wir legen uns einen Ordner an
mkdir xmr-stak-portable
// download
wget https://github.com/fireice-uk/xmr-stak/archive/v2.0.0.tar.gz
// entpacken das Archiv
tar xzf xmr-stak-portbin-linux.tar.gz
// starten
./xmr-stak.sh

XMR-STAK 2.0 Setup Assistent

Nach dem wir alles heruntergeladen haben und das Programm starten, müssen wir einige Fragen beantworten welche das Setup darstellen. Wie so etwas aussehen kann seht Ihr im folgenden Beispiel.

// starten
./xmr-stak.sh 
Please enter:
- Currency: 'monero' or 'aeon'
monero
- Pool address: e.g. pool.usxmrpool.com:3333
pool.supportxmr.com:3333
- Username (wallet address or pool login):
423gorEqp1GR1Rn431fwuQVmrSAw7v86z3CygoeLsbr6EvenAMeKus1CiZgXana9b1RjnAPbaxyBL4CP5QpdL8PK88KkdRi
- Password (mostly empty or x):
Worker-CPU-01
- Does this pool port support TLS/SSL? Use no if unknown. (y/N)
N
- Do you want to use nicehash on this pool? (y/n)
n
- Do you want to use multiple pools? (y/n)
n
Configuration stored in file 'config.txt'

Unsere Einstellungen kann man nachträglich jederzeit ändern. Das Programm erzeugt 2 Dateien welche im aktuellen Verzeichnis erstellt werden.


  • config.txt - Allgemeine Einstellungen
  • cpu.txt - Einstellungen fürs CPU Mining
Ich vermute mit einer entsprechenden Grafikkarte würde dann dort noch eine Konfiguration für die Grafikkarte zu finden sein. Nach der Konfiguration ist der Miner fertig und einsatzbereit.

Automatisches deployen / installieren auf Server / VPS

Die neue Version ermöglicht es uns außerdem die Installation auf einem Server / VPS in wenigen Sekunden vorzunehmen. Dafür benötigen wir nur eine einmalig auf unsere Zecke eingestellte config.txt die über eine Webadresse verfügbar ist (z.B. http://meine-domain.de/config.txt).

Auf unserem Server legen wir dann ein kleines Bash Script mit folgendem Inhalt an.

#!/bin/bash
curl -O `curl -s https://api.github.com/repos/fireice-uk/xmr-stak/releases/latest | grep -o 'browser_download_url.*xmr-stak-portbin-linux.tar.gz' | sed 's/.*"//'`
curl -O http://meine-domain.de/config.txt
tar xzf xmr-stak-portbin-linux.tar.gz
./xmr-stak.sh

Dieses Script führen wir dann aus und in wenigen Sekunden haben wir ein lauffähiges Mining Setup auf unserem Server. Einfacher geht es nicht oder?

Wer noch wissen möchte wie das ganze im Hintergrund ausführen kann ohne beim schließen des Terminals das Mining zu beenden sollte sich meinen anderen Artikel noch einmal ansehen.

Was sagt Ihr zu der neuen Version? Findet Ihr die Verbesserungen gut und sinnvoll? Schreibt mir gern eure Meinung dazu in die Kommentare. Falls Ihr Fehler gefunden habt meldet diese bitte auch in den Kommentaren.

Viel Spass beim Minig

Monero Mining unter Ubuntu (XMR-STAK-CPU)

Monero Mining mit XMR-STAK-CPU Miner

Monero Mining unter Ubuntu 16.04 und höher

Heute zeige ich euch wie ihr unter jedem beibiegen Ubuntu System mit eurer CPU die Krypto Währung Monero mininen (schürfen) könnt. (Aktueller Kurs bei Beitrag erstellung: 1 XMR = 115$)

Falls Ihr bereits einen kleinen Linux Server oder VPS habt der sowieso permanent läuft könnt Ihr auch einen teil der Ressourcen nutzen um euren Geldbeutel etwas aufzufüllen. Natürlich könnt Ihr auch auf euren Rechner zuhause das schürfen betreiben.

XMR-STAK-CPU Miner unter Ubuntu installieren

Pakete aktualisieren und Abhängigkeiten installieren
sudo apt-get --assume-yes update
sudo apt-get --assume-yes install libmicrohttpd-dev libssl-dev cmake build-essential libhwloc-dev screen git nano

Miner herunterladen und installieren (kompilieren)
git clone https://github.com/fireice-uk/xmr-stak-cpu.git
cd xmr-stak-cpu
cmake .
make install

In Verzeichnis wechseln, Miner ausführbar machen und starten.
cd bin/
chmod +x xmr-stak-cpu
./xmr-stak-cpu

XMR-STAK-CPU Miner konfigurieren

Beim ersten starten schlägt euch die Software eine passende Konfiguration vor. Diese könnt Ihr einfach kopieren und an der entsprechenden Stelle in der config.txt einfügen. Hier ein Beispiel für 1 aktiven Kern. Hier müsst Ihr schauen wie viele Kerne euer System hat und wie viele Ihr benutzen wollt. Fangt erst mal mit einem an zum Testen.

"cpu_threads_conf" :
[
     { "low_power_mode" : false, "no_prefetch" : true, "affine_to_cpu" : 0 },
],

Außerdem müsst Ihr in der config.txt noch eure Mining Pool URL sowie eure Monero Wallet Adresse angeben. Zum identifizieren eures Miners am besten noch bei "pool_passwort" dem Miner einen Namen geben.

"pool_address" : "pool.supportxmr.com:5555",
"wallet_address" : "eure Wallet Adresse",
"pool_password" : "mein-miner",

Wenn Ihr alles eingestellt habt könnt Ihr den Miner wie oben beschrieben starten. Dieser sollte nun für euch Moneros (XMR) schürfen.

Mining auf VPS / Server im Hintergrund laufen lassen

Die einfachste Möglichkeit das Mining im Hintergrund auszuführen ist mit  Hilfe des Tools Screen. Der Befehl um den Miner im Hintergrund zu starten lautet wie folgt:

// Session im Hintergrund
screen -S miner -d -m ./xmr-stak-cpu
// Session wieder aufnehmen
screen -r miner

Fehlerbehandlung beim starten von XMR-STAK-CPU

Falls ihr einen Fehler mit einer Meldung Memory ... mmap ... bekommt könnt Ihr folgendes machen.

sudo sysctl -w vm.nr_hugepages=128
nano /etc/sysctl.conf
// am Ende der Datei einfügen
vm.nr_hugepages=128

Danach noch einmal die aktuelle Konsolensession neustarten.

Ich hoffe euch hat der Artikel gefallen und konnte euch helfen. Über konstruktives Feedback freue ich mich natürlich. Ansonsten wünsche ich euch viel Spass beim Geld schürfen mit der Krypto Währung Monero.

Ideen, Vorschläge und Kritik bitte in die Kommentare.

Kostenlos mit dem Usenet verbinden - So gehts!

Usenet? Ja Usenet!

Ihr wolltet schon immer wissen was das Usenet ist und wie man sich damit verbinden kann? Dann seid Ihr hier genau richtig. Denn heute wollen wir eine einfache Möglichkeit zeigen wie Ihr euch damit verbinden könnt.

Was ist denn das Usenet?

Wir fangen zunächst mit den Grundlagen an. Der uns allgemein bekannte Begriff "Usenet" steht für "Unix User Network" und auf deutsch "Unix Benutzer Netzwerk". Man kann sich das Usenet wie ein zweites globales Internet vorstellen. Es ist sozusagen ein zweites Netzwerk welches es schon lange vor dem WWW gab. Das Usenet kann man dann noch mal unterteilen einmal in das normale Usenet und dann in das "Binary Usenet". Das normale Usenet ist gedacht um sich mit Nachrichten auszutauschen in sogenannten Newsgroups, in der anderen Version kann man zusätzlich noch Binar Dateien anhängen, dass heißt man kann Dateien austauschen. Die Möglichkeit Dateien auszutauschen macht das Usenet erst richtig interessant.

Den passenden Newsserver finden

Um sich mit dem Usenet zu verbinden benötigt man vorher einen entsprechenden Newsserver und hierbei unterscheiden wir 3 Arten.
  • Offene Newsserver (offen für Alle, meist nur Lesezugriff)
  • Freie Newsserver (offen aber meist nur mit Registrierung nutzbar)
  • Bezahlte Newsserver (Zugang muss bezahlt werden)
Eine sehr ausführliche Liste zu offenen und freien Newsservern habe ich auf der Seite "TopUsenet" gefunden. Dort habt Ihr eine ausführliche und detaillierte Liste mit entsprechenden Newsservern. Ein paar Beispiele für Newsserver wären:
  • Universität Hohenheim - news.uni-hohenheim.de
  • Mozilla - news.mozilla.org

Kostenlose Usenet Newsreader Software

Da wir jetzt einen entsprechenden Newsserver gefunden haben der uns interessiert, wollen wir uns natürlich auch damit verbinden. Für die Verbindung zu einem Usenet Newsserver benötigen wir einen sogenannten Newsreader. Dies ist Software bzw Client mit dem wir uns verbinden und die auf dem Server gespeicherten Informationen abrufen können.
  • Sabnzbd - Kostenlos, viele Funktionen, stätig weiterentwickelt
  • Newsbin - Testversion verfügbar, sehr guter Newsreader
  • Agent - Testversion verfügbar, Browser + Suche
  • Grabit - Kostenlos, Browser + Suche, klasse Newsreader

Verbinden mit Sabnzbd Usenet Reader

Jetzt geht es ans eingemachte :) Wir werden uns jetzt mit dem Usenet verbinden mit der freien Software "Sabnzbd". Nachdem wir das Programm heruntergeladen und installiert haben. Starten wir das Setup. Es öffnet sich ein Browserfenster mit folgendem Inhalt.
Nach der Sprachauswahl müssen wir die Server Zugangsdaten eingeben. In diesem Beispiel haben wir den freien Mozilla Server eingetragen. Hier könnt Ihr natürlich eure entsprechenden Daten eingeben.
Ob alles richtig ist könnt Ihr mit einen Klick auf "Server überprüfen" testen. Bei Erfolg grün bei Misserfolg rot. Danach ist das Setup schon abgeschlossen.
Glückwunsch Ihr habt euch erfolgreich mit einem Usenet Server verbunden

Warum ist das Usenet so beliebt?

Klar kostenlos Filme, Serien, Spiele und Pornos!

Das hat ein paar einfache Gründe. Da im Binary Usenet Dateien ausgetauscht werden können wird dies für viele nicht ganz so legale Arten von Downloads ausgenutzt. Viele kostenpflichtige Usenet Anbieter werben auch damit, dass man bei Ihnen alles mögliche ohne Limit herunterladen kann. Darunter fallen Filme, Serien, Spiele und sogar Pornos. Bei solchen Angeboten sind aber auch viele schwarze Schafe, die einem zum Beispiel getarnt als Serie ein Virus unterjubeln wollen. Also solltet Ihr falls Ihr so ein Angebot nutzt lieber zwei mal hinsehen und die geladenen Dateien vorher mit einer Anti-Virensoftware prüfen. Durch die schiere Anzahl der diversen Newsgroups kann man so gut wie alles finden im Usenet. Es ist quasi ein Paradies für Downloader.

Es gibt sehr viele kostenpflichtige Usenet Anbieter, ich werde hier nur ein kleine Liste der verschiedenen Anbieter aufzählen:

Abschluss

Abschließend kann man sagen, dass Usenet ist ein sehr interessanter Ort. Wenn man einmal verstanden hat wie das Usenet funktioniert dann ist es sehr einfach zu nutzen und eröffnet spannende Möglichkeiten. Wer wirklich die volle Bandbreite des Usenet kennen lernen will sollte mal bei einem Anbieter wie Usenet.nl vorbeischauen.

In diesem Sinne, viel Spaß beim ausprobieren.

Quellen: 

Webserver NGINX Performance Tuning

Schnell? Schneller? NGINX? Performance!!!


Heute beschäftigen wir uns mit dem Thema NGINX und Performance Optimierung. Wir wissen alle das der NGINX der König unter den Webservern ist und deshalb schauen wir uns heute an, wie wir das letzte Fünkchen Geschwindigkeit aus dem Webserver herausholen. Zu dem Zeitpunkt wo ich diesen Beitrag schreibe gibt es den NGINX in der Stable Version 1.12.1 (Download).

Backup der NGINX Config

Als erstes ist es wichtig eure aktuelle funktionierende NGINX Konfiguration zu sichern (Kopie davon erstellen) damit wir nichts zu fürchten haben falls etwas nicht ganz so läuft wie von euch erhofft. Die Konfiguration findet Ihr z.B. bei Ubuntu unter /etc/nginx/nginx.conf

Performance? Optimieren!

Jetzt werde ich euch einzelne NGINX Core Module Direktiven vorstellen die euch helfen werden eure Webserver Performance zu steigern. Ich versuche dabei kurz und verständlich die Werte zu erklären. Alle folgenden Werte können in der nginx.conf bearbeitet oder hinzugefügt werden.

worker_processes auto;
Gibt an wie viele NGINX Worker Prozesse laufen. auto = automatische Erkennung. Generell gilt, man kann auch die Anzahl der verfügbaren CPU Cores angeben. (z.B. VPS mit 2 Kernen = auf 2 stellen).

worker_connections 1024;
Gibt an wie viele gleichzeitige Verbindungen pro Worker aufgebaut werden können. Die maximale Anzahl der Clients wird also wie folgt Berechnet. max Clients = worker_processes * worker_connections. Tip: hier ein wenig testen wie viel euer Server schafft.

use epoll;
Wichtig für Linux Server um viele Clients in einem Thread zu verarbeiten.

multi_accept on;
Dadurch werden so viele neue Verbindungen wie möglich akzeptiert von einem Worker Prozess.

sendfile on;
Kopiert Daten von einem FD (File Descriptor) zu einem innerhalb des Linux Kernels. Das ist schneller als read() + write()

tcp_nopush on;
Sendet den Request Header in einem Stück, dies ist besser als viele kleine.

tcp_nodelay on;
Aktiviert die TCP Option TCP_NODELAY. Daten werden nicht mehr im BUffer zwischen gespeichert, sondern gleich verschickt.

access_log off;
Um schwache Festplatten zu entlasten und den HDD I/O zu verbessern.

gzip on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/json application/xml;
gzip_disable msie6;
Komprimiert die ausgegebenen Dateien, dies spart Traffic. Sollte nur bei ausreichend CPU Leistung aktiviert werden!

reset_timedout_connection on;
Erlaubt es dem Server die Verbindung zu nicht antwortenden Clients zu schließen. Das spart Arbeitsspeicher.

client_body_timeout 10;
Der Request Timeout. Standard ist bei 60. Falls keine Dateien auf eurer Seite hochgeladen werden sollte der Timeout reduziert werden z.B. auf 10 Sekunden

send_timeout 2;
Wenn der Client nicht mehr reagiert und nichts empfängt dann stoppe (Standard ist 60). Spart Arbeitsspeicher.

keepalive_timeout 30;
Schließt die Verbindung nach der angegebenen Zeit. Standard ist 75. Hier kann etwas experimentiert werden.

keepalive_requests 100;
Wie viele Keep Alive Requests gemacht werden können. Standard ist 100. Beachtet wie viele gleichzeitigen Besucher Ihr auf eurer Seite erwartet.

server_tokens off;
Erhöht die Sicherheit. Der Server schickt keine Version etc mehr heraus.

open_file_cache max=100000 inactive=20s; 
open_file_cache_valid 30s; 
open_file_cache_min_uses 2;
open_file_cache_errors on;
Der Cache kann die Performance steigern, die optimalen Werte solltet Ihr durch testen herausbekommen. Eine detaillierte Erklärung dazu findet Ihr hier

Beispiel Konfiguration für einen 2 Kern VPS (/etc/nginx/nginx.conf)


user www-data;
worker_processes 2;
pid /run/nginx.pid;

events {
        worker_connections 1024;
        use epoll;
        multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 30; # default 75
        keepalive_requests 100;   # default 100
        reset_timedout_connection on;
        client_body_timeout 10; # default 60
        send_timeout 10; # default 60
        types_hash_max_size 2048;
        server_tokens off;
        
        # File Cache
        open_file_cache max=100000 inactive=20s; 
        open_file_cache_valid 30s; 
        open_file_cache_min_uses 2;
        open_file_cache_errors on;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log off;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        #gzip on;
        #gzip_disable "msie6";

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

Wichtig für Dateiuploads in Verbindung mit NGINX

Falls Ihr auf eurer Seite einen Upload von Dateien anbietet solltet Ihr in eurer vhost Config noch folgende NGINX Einstellungen setzen.

        client_max_body_size 1G;
        client_body_buffer_size 1024k;

In diesem Beispiel ist er möglich Dateien von einer größe von 1 GB auf den Server zu laden.

Konfiguration neu einlesen oder NGINX neustarten

Um die ganzen neuen Einstellungen zu testen könnt Ihr die Config neu einlesen lassen:

# /etc/init.d/nginx reload

Oder Ihr startet den Webserver einfach neu.

# /etc/init.d/nginx restart

Falls etwas falsch sein sollte würde an dieser Stelle eine entsprechende Meldung erscheinen. Abschließend hoffe ich das euch das ein oder andere Helfen konnte und Ihr eure Server Performance steigern konntet. Über Verbesserungsvorschläge und Tips würde ich mich sehr freuen. Schreibt es in die Kommentare ;)

Buchempfehlung über NGINX

Vor 2 Jahren habe ich mir das Buch "Nginx HTTP Server" bei Amazon bestellt. Damit habe ich begonnen mich in die Materie einzuarbeiten. Dort sind alle grundlegenden Elemente des Webservers sehr gut und ausführlich erklärt. Für komplette Neueinsteiger zu empfehlen.

Fortgeschrittene sollten sich das demnächst erhältliche Taschenbuch "Nginx: A Practical Guide to High Performance"  von Stephen Corona (Autor) mal genauer ansehen. Es wirkt auf den ersten Eindruck sehr interessant und vielleicht bekommt man von Ihm wertvolle Tips für eine optimale Konfiguration. Lasst es mich wissen falls jemand das Buch empfehlen kann.

Quellen:

Ubuntu 16.04 einrichten von SSL / HTTPS unter NGINX

Einleitung

Im Jahre 2017 sollte SSL Standard für jede Webseite sein. Warum das leider immer noch nicht so ist liegt vielleicht daran, dass viele Leute abgeschreckt sind von der Einrichtung oder nicht wissen wie es umgesetzt wird. In diesem kleinen Tutorial, möchte ich euch Heute zeigen, wie einfach es doch ist SSL unter Ubuntu mit einem NGINX Webserver einzurichten.

Voraussetzungen

Eine kleine Liste mit Dingen die ich für dieses Tutorial voraussetze.
  • Ubuntu Server
  • NGINX Server installiert
  • OpenSSL installiert
Außerdem solltet Ihr auf eurem Server die entsprechenden "root" oder "sudo" Rechte haben. Wenn ihr das alles habt können wir auch schon beginnen.

Schritt 1 - Zertifikat erzeugen

Als erstes brauchen wir einen Ort wo wir das Zertifikat ablegen und speichern wollen. Da es sich hier um ein Zertifikat für den NGINX handelt erzeugen wir einfach im NGINX Ordner einen weiteren Ordner "ssl".

  sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

Kurze Erklärung zu dem Befehl:
  • openssl: Standard Konsolen Programm um Zertifikate zu erstellen
  • req: sagt aus das wir eine X.509 Signierungsanfrage erstellen wollen. X.509 ist ein Standard für SSL und TSL
  • -x509: Die Option sagt aus das wir ein selbst signiertes Zertifikat erstellen wollen
  • -nodes: Teilt OpenSSL mit das wir keine Passwortabfrage bei dem Zertifikat benötigen. Wäre auch schlecht da NGINX dann bei Neustarts immer danach fragen würde
  • -days 365: Anzahl der Tage wie lange das Zert. gültig ist
  • -newkey rsa:2048: Sagt das wir einen neuen Schlüssel und Zertifikat mit einem 2048 Bit Schlüssel möchten
  • -keyout: Gibt OpenSSL einen Ort an wo der Schlüssel gespeichert werden soll
  • -out: Gibt OpenSSL einen Ort an wo das Zertifikat gespeichert werden soll
Anschließend wirst du nach einigen Angaben gefragt. Diese kannst du leer lassen oder ausfüllen.
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Die von dir erstelleten Dateien werden in dem angegebenen Ordner abgespeichert.

Schritt 2 - NGINX Konfigurieren

Ein Vorteil von NGINX gegenüber dem Apache ist das man HTTPS/SSL in der selben Vhost Config aktivieren kann wo auch HTTP konfiguriert ist. Wir bearbeiten dazu unsere Standard Konfiguration unter.

nano /etc/nginx/sites-available/default

Wir fügen 4 Zeilen hinzu.

server {
        # ipv4 http
        listen 80 default_server;
        # ipv6 http
        listen [::]:80 default_server;
        # ADDED ipv4 https
        listen 443 ssl default_server;
        # ADDED ipv6 https
        listen [::]:443 ssl default_server;

        server_name default;

        root   /var/www/application/public;

        index index.html index.htm index.php index.cgi index.pl index.xhtml;

        # ADDED ssl settings
        ssl_certificate         /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key     /etc/nginx/ssl/nginx.key;

        # log
        error_log /var/www/application/log/error.log;
        access_log /var/www/application/log/access.log combined;

        # rewrite
        location / {
            try_files $uri $uri/ /index.php;
        }

        # php socket
        location ~ \.php$ {
            try_files $uri =404;
            include /etc/nginx/fastcgi_params;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php/php7.1-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors on;
        }

}

Die ersten beiden hinzugefügten Zeilen kümmern sich darum das der NGINX auf den richtigen Port lauscht und IPv4 und IPv6 anfragen annimmt.

Die anderen 2 kümmern sich darum das der NGINX den Schlüssel und das Zertifikat läd.

Danach starten wir neu uns schauen ob alles klappt.

sudo service nginx restart
ODER
sudo /etc/init.d/nginx restart

Nach erfolgreichem Neustart sollte unsere Seite unter http und https erreichbar sein.

HTTPS testen

Um unsere Konfiguration zu testen erstellen wir in unsrem Verzeichnis (/var/www/application/public) eine index.html zum testen. Unsere Seite dann unter beiden Adressen erreichbar sein

http://server_domain_or_IP
UND
https://server_domain_or_IP:443

Hinweiß: In den meisten Browsern muss man noch das Zertifikat akzeptieren damit die Seite dargestellt wird. Denn euer Lokales Zertifikat gilt in den Browsern als nicht sicher.

Abschluss

Abschließend ist zu sagen, dass der Aufwand SSL einzurichten doch relativ gering ist und für lokale Tests sehr zu empfehlen ist. Wenn eure Applikation lokal zu 100% läuft, solltet Ihr den Schritt nicht scheuen auch Live SSL mit einem richtigen Zertifikat zu verwenden. Richtige Zertifikate bekommt Ihr dank "Lets Encrypt" quasi für 0€.

Viel Spass beim testen. Bei Fragen benutzt bitte die Kommentare.

Amazon Echo Dot - TV, DVD Player, Funksteckdosen per Sprache steuern

Hi,
heute geht es um Amazons Echo Dot und wie man mit Hilfe von Alexa alle seine Funk und IR (Infrarot) Geräte per Sprache steuern kann. Darunter fallen meistens Fernseher, DVD/ BluRay Player, LED Bänder, Funksteckdosen und vieles mehr.

Hier eine kleine Checkliste mit Dingen die Ihr dafür benötigt:
  • Amazon Echo / Amazon Echo Dot
  • Broadlink RM Pro (Amazon Link)
  • eControl App von Broadlink (Playstore Link)
  • RM Plugin App (Playstore Link)
  • Smartphone oder altes Android Gerät (Stick/TV Box) hier ein paar Beispiele
    • M9C Pro Smart TV Box | 36,99€ (zur Box)
    • SEGURO MX1 Smart Internet TV BOX | 25,99€ (zur Box)
    • Bqeel MXR Smart TV Box Android 5.1 TV Box | 27,19€  (zur Box)
    • Leelbox Q1 Android TV Box | 36,99 € (zur Box)
Wenn Ihr alles habt könnt Ihr auch gleich mit der Einrichtung loslegen. Die Voraussichtlichen Kosten belaufen sich dabei um die ~ 105€ für alle benötigten Geräte und Apps.

Broadlink RM Pro einrichten

Sobald Ihr euren Broadlink RM Pro aufgebaut und angeschlossen habt könnt Ihr euch die "e-Control" App (Playstore Link) auf euer Smartphone installieren bzw öffnen falls diese schon installiert ist.

In der App könnt Ihr dann oben Rechts auf den Menüpunkt "Add Device" gehen um dort euren RM Pro hinzuzufügen. Im Folgenden Setup werdet Ihr gebeten eure WLan Daten anzugeben damit der RM sich in eurem Netzwerk anmelden kann. Dies müsst Ihr durchführen. Ob Ihr euch einen Account bei Broadlink anlegt ist euch überlassen, dieser ist nicht zwingend erforderlich.


Anschließend könnt Ihr euch eine virtuelle Fernbedienung erstellen. Dazu müsst Ihr in der App auf "Add Remote" gehen.



Hier hat man die Wahl ein fertiges Layout zu nehmen oder eins selbst Zusammenzustellen. Wir bauen es selbst und nehmen "User Defined". Jetzt kann man noch aussuchen wie die Tasten sortiert werden sollen. Hier nehmen wir "sort random", denn damit sortieren wir unsere Buttons selbst.



Im Folgendem Screen klicken wir oben Rechts auf das Zahnrad Icon und wählen "Sort add".



Anschließend gehen wir oben Links auf das + Symbol. Dort können wir nun dem Schalter einen Namen geben und ein Icon/ Bild auswählen.



Diesen Vorgang wiederholen wir, damit wir nun zwei Buttons angezeigt bekommen. Einen für das An und Ausschalten des Gerätes. Die Buttons können wir frei Verschieben an die Position die wir gerne hätten. Am Ende bestätigen wir alles mit dem "Save" Button oben Rechts.

Jetzt können wir unseren aktuell noch "dummen" Buttons eine Funktion zu weisen. Dafür drücken wir auf einen Button und dann auf "Learn Single" und in der Abfrage danach auf "Learn". In dem darauf folgendem Abschnitt müsst Ihr die Taste eurer Fernbedienung drücken die Ihr dem aktuell ausgewähltem Button beibringen wollt z.B. der Power Knopf. (Solange drücken bis die Taste gelernt wurde). Vorgang für anderen Button wiederholen.

Die Einrichtung des Broadlinks und der e-Control App ist damit erst einmal abgeschlossen. Du kannst jetzt z.B. mit der App dein Gerät steuern. Aber wir möchten das Ganze ja mit Alexa steuern deswegen müssen wir noch ein paar Schritte mehr in Angriff nehmen.

RM Plugin einrichten und benutzen

Weiter geht es mit der oben verlinkten Android App "RM Plugin". Eigentlich ein Tasker Plugin ist diese App aber auch ohne Tasker lauffähig.

Zunächst starten wir die App RM Plugin.


Wir scrollen runter zu den "Settings" und drücken auf "Alexa Bridge". Hier aktivieren wir die Optionen "Enable Alexa Bridge" und "Autostart on Boot".

Daten importieren von der eControl App

Wir gehen auf den Menüpunkt "Share Data". Wir beenden die App nicht und öffnen parallel dazu die eControl App von Boardlink. In dieser öffnen wir das Menü -> "Share" -> "Share to other phones in Wlan" und lassen dies offen. Wir wechseln nun wieder zurück zur RM App und warten kurz. Die Daten sollten jetzt importiert wurden sein.

Alexa Gerät in der RM Plugin App hinzufügen

Wir gehen auf "Alexa Bridge" -> "Alexa Device List" -> "Add Alexa Device".

Unter "Device Name" können wir dem Gerät einen Namen geben der in Alexa zum Aufruf benutzt werden soll. (z.B. TV).

Bei "On Command" können wir unseren importierten Befehl zum anschalten des Gerätes auswählen ("Select Code").


Anschließend ist das Gerät fertig konfiguriert in der App. Jetzt muss man Alexa nur noch mitteilen das man ein neues Gerät hat.

Alexa neue Geräte hinzufügen

Um Alexa mitzuteilen das man neue Geräte hat kann man den Sprachbefehl "Alexa, suche nach Geräten" verwenden oder in der Alexa App die Suche starten. Alexa teilt dir dann mit ob Sie neue Geräte gefunden hat.

Abschluss

Und das war es auch schon. Ihr könnt euer hinzugefügtes Gerät nun mit Alexa steuern.

z.B. "Alexa, schalte den TV ein" oder "Alexa, schalte den TV aus".

Mein Fazit, mit etwas initial Aufwand kann man doch relativ günstig und einfach seine vorhandene Geräte in "Smart Home" Geräte verwandeln und damit dann eine menge Spass haben. In Alexa steckt eine Menge potenzial.

Bei Fragen oder Anregungen bitte die Kommentare benutzen.

Debug SplObjectStorage, ArrayObject und update Xdebug

Unser Thema: SplObjectStorage, ArrayObject debuggen

Hallo,
heute dreht sich alles um die Frage:
"Wie kann man PHP Klassen die von SplObjectStorage oder ArrayObject erben debuggen und dessen Inhalt sehen?"

Mein Problem

In meinem PHP Projekt benutze ich viele Collection Klassen die von ArrayObject erben. (Erklärung: ArrayObject ist eine PHP interne Klasse die es erlaubt Objekte so wie Arrays arbeiten zu lassen. PHP.net).

Dabei ist mir aufgefallen das ich den Inhalt von solchen Collections nicht in PHPStorm debuggen kann. Ich erhielt nur Meldungen wie "can not get property".

Nach kurzer Recherche im Internet fand ich ich dann auch die Ursache des Problems.





Die Ursache

Die Ursache des Problems war eine veraltet Xdebug Version. In meinem Fall war es die Version 2.2.3 welche die Darstellung von solchen Objekten nicht unterstützte.

Die Lösung

Das Problem war also gefunden nun musste es nur noch gelöst werden. Der Fehler in Xdebug wurde in der Version 2.3.3 behoben. Also musste ich nur eine Version installieren die >2.3.3 ist. (Xdebug Bug Ticket)

Xdebug updaten >2.3.3

Um Xdebug zu aktualisieren müssen wir eigentlich nur eine aktuelle Version herunterladen diese kompilieren und aktivieren. Wie das geht erkläre ich euch jetzt.

Xdebug Wizard hilft euch

Um einfach die für euch empfohlene Xdebug Version herauszufinden könnt Ihr den von der Xdebug Homepage bereitgestellten Wizard benutzen. Xdebug Wizard

Dem Wizard müsst Ihr nur den Inhalt eurer PHPInfo übergeben. Dazu einfach eine Datei anlegen (z.B. info.php) mit dem Inhalt:
<?php echo phpinfo(); 
Den Inhalt der Seite kopiert Ihr mit Strg + A (alles Markieren) und Strg + C (kopieren) in das Feld auf der Wizard Seite.

Der Wizard erzeugt euch dann eine Ausgabe mit einer passenden Installationsanleitung für euer System.

Xdebug herunterladen und kompilieren

  • In /tmp Verzeichnis wechseln
    • Befehl: cd /tmp
  • Xdebug herunterladen
    • Befehl: wget http://xdebug.org/files/xdebug-2.4.1.tgz
  • Archiv entpacken
    • Befehl: tar -xvzf xdebug-2.4.1.tgz
  • In entpackte Verzeichnis wechseln
    • Befehl: cd xdebug-2.4.1
  • Build initialisieren
    • Befehl: phpize
  • Konfigurieren
    • Befehl: ./configure
  • Builden
    • Befehl: make
  • Kompiliertes Modul in PHP Ordner kopieren
    • Befehl: cp modules/xdebug.so /usr/lib/php5/20121212
  • Falls nötig Extension Pfad anpassen in der php.ini
    • nano /etc/php5/apache2/php.ini
    • Einfügen: zend_extension = /usr/lib/php5/20121212/xdebug.so
Bei mir war der letzte Schritt nicht nötig da in meiner php.ini nur die Extension per Name "xdebug.so" geladen wird.

Wichtig! Nach den Änderungen PHP/Apache neustarten, damit die Änderungen wirksam werden.

Ergebnis

Eure phpinfo Datei sollte nun die aktuell installierte Version von Xdebug anzeigen. In etwa so:
Nachdem alles geklappt hat könnt Ihr nun ohne Probleme solche ArrayObject Klassen debuggen :)

Falls Ihr Probleme oder Anregungen habt schreibt diese bitte in die Kommentare.

Viel Spass und bis bald.

Ubuntu/Debian SSH Key erzeugen


Ubuntu SSH Key erzeugen und mit Github und Gitlab verwenden

Um sich ohne Passwort zu authentifizieren benötigt man oft einen SSH Key (Public Key). Hier in diesem Artikel erkläre ich euch kurz wie Ihr diesen erzeugen und benutzen könnt. (Artikel ist für Ubuntu/Debian System gedacht).
Bei dem Public-Key-Verfahren wird eine asymmetrische Verschlüsselung genutzt um den Benutzer zu authentifizieren. Der (oder die) öffentliche(n) Schlüssel des Benutzers befindet sich dabei in der Datei ~/.ssh/authorized_keys des Zielsystems, der private Schlüssel in einer Datei (meist id_rsa) im Verzeichnis ~/.ssh auf dem lokalen System, wo er zusätzlich von einer "pass phrase" geschützt wird. Wenn man sich nun mit der Public-Key-Methode auf einem SSH-Server anmelden möchte, so schickt der Server dem Klienten eine zufällig generierte Challenge. Der Klient verschlüsselt diesen Datenblock mit seinem privaten Schlüssel, (wofür nötigenfalls die Passphrase abgefragt wird,) und wenn der Server diesen Chiffre mit dem zugehörigen öffentlichen Schlüssel wieder entschlüsseln kann, ist die Identität des Benutzers bestätigt. Quelle

SSH Key erzeugen

ssh-keygen -t rsa -b 4096 

Erzeugt eine ähnlich aussehende Ausgabe:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
24:55:ee:67:83:72:82:55:5f:b9:b4:09:2a:fa:56:a1 user@client.local
The key's randomart image is:
+--[ RSA 4096]----+
|                 |
|                 |
|                 |
|         +    .  |
|        S    E   |
|         .  + +  |
|          .o . o.|
|         o.oo. oo|
|          ==o.BO+|
+-----------------+

SSH Ordner

Der erstellte Key sollte nun in eurem SSH Ordner unter ... zu finden sein.
/home/user/.ssh/

SSH anzeigen und zu Github/Gitlab kopieren

Nun den Inhalt des Public Keys (.pub) in euren Github / Gitlab Account unter SSH Keys hinterlegen. Einfach den Inhalt der Datei mit dem Befehl cat ausgeben lassen und kopieren.
cat id_rsa.pub


Fertig :)

PHPStorm Portable machen

PHPStorm Portable machen (in separaten Ordner installieren)

Hier erkläre ich euch wie Ihr die beliebte PHP IDE - PHPStorm portabel machen könnt. Das bedeutet das Programm wird komplett in einem separaten Ordner installiert und auch von dort gestartet. Wo der Ordner liegt (z.B. auf einem USB Stick, Festplatte) ist völlig egal.

Schritt 1: PHPStorm herunterladen

Am besten ladet Ihr PHPStorm von der offiziellen Herstellerseite herunter.
Link: https://www.jetbrains.com/phpstorm/download/

Linux: Archiv in euren wunsch Ordner extrahieren
Windos: PHPStorm Installation in euren Wunschordner vornehmen

Schritt 2: idea.properties im Ordner /bin anpassen

Jetzt müssen wir eine wichtige Anpassung in der idea.properties Datei vornehmen. Diese findet Ihr in dem Ordner /bin eurer PHPStorm installation.

In der Datei tauschen wir die Variablen:
  ${user.home} gegen ${idea.home}

Wichtig!: Die Zeilen müssen einkommentiert werden.

idea.config.path=${idea.home}/.WebIde/config
idea.system.path=${idea.home}/.WebIde/system
idea.plugins.path=${idea.home}/plugins
idea.log.path=${idea.home}/log

Mehr Infos zur Datei idea.proteries: Klick hier

Schritt 3: PHPStorm starten

Im Ordner /bin könnt Ihr nun die phpstorm.sh ausführen und PHPStorm starten.

Fertig. Eure Installation ist nun portable.

Linux Bash History durchsuchen und Limit erhöhen


Linux Bash History durchsuchen und Speicherlimit erhöhen


Viele kennen vielleicht das Problem das man auf der Konsole ein komplexen Befehl ausgeführt hatte aber diesen nicht mehr vollständig kennt. Da in Linux ausgeführte Befehle standardmä0ig in der Bash History (~/.bash_history) gespeichert werden ist es relativ leicht seine bereits genutzten Befehle wieder zu finden. Um die History zu durchsuchen genügt es diesen Befehl auszuführen:

Bash History durchsuchen:
  history | grep "MeinSuchwort"

Die History speichert Standardmäßig 2000 Befehle. Einigen Leuten ist das aber einfach zu wenig und Sie hätten gern das Ihre History 10.000 Einträge speichert. Um das zu ermöglichen muss man folgende Änderungen vornehmen.

Bash History Limit erhöhen:
bashrc bearbeiten:
 
  nano ~/.bashrc

Limit anpassen:
 
  HISTSIZE=10000
  HISTFILESIZE=10000

HISTSIZE - Anzahl der zu speichernden Befehle in der Bash Session
HISTFILESIZE - Anzahl der enthaltenen Zeilen die in die history Datei gespeichert werden

Viel Spass beim erweitern eurer Bast History ;)

PHP Mcrypt Erweiterung installieren (Linux und Windows)


PHP Mcrypt Erweiterung installieren (Linux und Windows)

Heute hatte ich das Problem das die Mcrypt Erweiterung in PHP nicht in meiner VM aktiviert war. Obwohl ich die Erweiterung installiert hatte weigerte sich PHP diese zu benutzen. Dies resultierte in folgenden Fehlermeldungen:
Call to undefined function mcrypt_module_open()
Fatal error: Call to undefined function mcrypt_encrypt()
Durch ein wenig probieren war die Lösung doch einfacher als gedacht. Die Erweiterung wurde einfach nicht vom Apache2 geladen. Durch das Aktivieren und Neustarten des Webservers konnte das Problem gelöst werden und PHP konnte die mcrypt Funktionen ausführen. (PHP 5.5)

Deshalb habe ich hier noch einmal eine kurze Zusammenfassung der Installation und Aktivierung der Mcrypt Erweiterung.  

Anleitung Ubuntu:
  • sudo apt-get install php5-mcrypt
  • sudo service apache2 restart
 // nur benötigt wenn Modul nicht automatisch aktiviert wurde
  • sudo php5enmod mcrypt
  • sudo service apache2 restart  

Anleitung Windows:
  • ;extension=php_mcrypt.dll einkommentieren zu extension=php_mcrypt.dll 
  • Apache Webserver neustarten  

Anleitung Redhat
  • sudo yum install php55-mcrypt //wenn php5.5
  • sudo yum install php-mcrypt //wenn < 5.4 sudo
  • service httpd restart //wenn Apache 2.4
  • sudo /etc/init.d/httpd restart //wenn Apache 2.2 oder niedriger

Um zu überprüfen ob Mcrypt installiert und aktiviert ist kann man einfach eine PHP Datei mit folgendem Inhalt auf seinen Webserver legen. Diese dann aufrufen und die Erweiterung in der Liste suchen.
 <?php phpinfo(); ?>
Wer noch mehr zum Thema Mcrypt wissen will kann gerne noch mal bei PHP.net vorbeischauen.
Link: Mcrypt PHP.net

Firebug - Löschen aller JS Breakpoints

Firebug - Löschen aller JS Breakpoints / Clear all Firebug JS breakpoints

Entwickler die viel mit dem beliebten Addon "Firebug" hantieren kennen womöglich das Problem mit den nicht löschbaren Javascript Breakpoints. Obwohl im Firebug kein Breakpoint mehr zu sehen ist hält das Programm trotzdem an der Stelle an. Das ist ziemlich nervig darum hier nun eine Lösung:
  1. In die Adressleiste des Browsers einfach "about:support" eingeben
  2. "Ordner öffnen" Button klicken
  3. Ordner "Firebug" suchen und öffnen
  4. Datei "breakpoints.json" löschen oder bearbeiten
  5. Firefox neustarten