Während die Intenetnutzung im ICE mit dem Smartphone ohne Probleme geht, kann es mit Linux schnell zu Problemen kommen. Das liegt am IP-Bereich und Docker. Zwar kann sich das Gerät mit Linux ohne Probleme mit dem eigentlichen Netzwerk verbinden, aber dann kann die Seite zum bestätigen der AGBs nicht geladen werden.
Anleitung: - Mit dem WLAN verbinden
- prüfen welcher IP-Bereich zu gewiesen wurde
-
ip addr
- gucken welcher Eintrag mit dem Bereich kolliedert
- diesen Eintrag entfernen
-
Wenn man heutzutage einen neuen PC kaufen will, merkt man schnell, dass die Zeit der großen PC-Verkäufe und Angebote vorbei sind. Das was man momentan bei den üblichen Verdächtigen Geschäften vor Ort findet, kann man oft an zwei Händen abzählen. Im Internet gibt natürlich alles, aber auch da sind die Modelle mit denen geworben wird, eher extremer Einheitsbrei. Man hat oft die Wahl zwischen einem Allrounder und einem Gamer-PC. Der normale PC hat einen kleinen schwarzen Tower mit i3 oder i5 und onboard Grafik. Der Gamer-PC hat einen größeren Tower mit viel Licht, i7 und einer mittleren Gaming-Grafikkarte und ist dabei immer viel zu teuer.
Oft braucht man aber gar keinen so leistungsfähigen PC. Alles was man neu kaufen kann ist überdimensioniert und viel zu teuer. Bei mir kam die Anforderung einen kleinen PC für das Schlafzimmer zu organisieren, damit man dort vernünftig Youtube gucken kann.
Warum ein PC und keinen Fire TV Stick oder ein andere Android-Gerät oder direkt einen Smart-TV? Ganz einfach: kleinere HDMI-Sticks sind langsam, Android-Geräte sind meistens wirklich umständlich zu bedienen und deren Apps langsam und unübersichtlich, ein neues TV-Gerät ist unnötig teuer.
Zum Glück gibt es im Internet ja noch Ebay und dort gibt es kleine, unscheinbare PCs für sehr geringe Preise. Einen relativ kompakten PC bekommt man dort schon für 30 Euro. Ich habe mich für einen Fujitsu Futro s900n entschieden.
Natürlich ist die Hardware-Ausstattung jetzt nicht die Beste aber klang erst einmal brauchbar:
- AMD G-T44R 1,2 Ghz CPU
- 2GB DDR3 (max. 8GB)
- AMD/ATI Radeon HD 6250
- 1GB SSD (mSATA)
- 1x DVI + 1x DP
- USB 2.0 und 3.0 Anschlüsse
- 1GBit Ethernet
Was auffällt ist die sehr winzige SSD und das fehlende WLAN. Für den Einsatz als Media-Player muss also noch dazu bekommen:
- 32GB mSATA SSD
- USB WLan Stick
Was beides zum Glück sehr günstige Komponenten sind. Eine normale SATA SSD kann man in den PC sogar aus einbauen, wenn man sich ein passendes Adapterkabel für den Strom organisiert und bei der Halterung mit Klebeband behilft. Damit oder mit einem ESATA/USB3.0 HDD Gehäuse würde einem kleinen NAS auch nichts im Weg stehen und von der Leistung her würde der PC mit den kleinen bis mittleren Geräten von QNAP sicher noch mithalten können.
Als einen ThinClient kann man den PC natürlich auch verwenden... wenn man einen Terminal-Server hat. Ist ja der eigentliche Verwendungszweck und alles andere eigentlich die Ausnahme.
Unterstützt werden auf dem PC sowohl Linux als auf Windows. Beides ganz offiziell und an sich hängt es nur von der SSD ab, was man installieren kann. Ich würde wohl eines kleinen Linux gehen, da es dort alles gibt was ich brauche. Firefox oder Chrome für Youtube ist keine Problem. VLC für Sat-TV und DLNA ist auch bei beiden Systemen verfügbar. Es waren noch einfache Zeiten, als das OS noch irgendwie eine Rolle spielte. Heute ist es an sich egal ob man Windows oder Linux verwendet, wenn man nicht gerade Gamer ist.. oder Adobe-Software braucht.
Da ich leider keinen WLAN-Stick habe, bzw einen relativ alten nicht mehr finde, nehme ich erst einmal einen WLAN-Accesspoint. Der ist nicht schnellste aber für Youtube reicht der erst einmal.
Eine 32GB mSATA SSD habe ich noch von einem anderen gescheiterten Projekt (die SSD war dabei nicht das Problem, wie sich beim Test mit einem SATA-Adapter heraus stellte!).
Das vorinstallierte eLux-Linux auf der 1GB SSD hat zwar einen Firefox, aber der war nur in einer ESR 33 Version vorhanden und lies sich nicht wirklich einfach updaten. Die Version hatte noch keinen passenden Video-Codec für HTML5-Video dabei und Flash ist jetzt wirklich heutzutage keine Option mehr und auch das hätte ich erst einmal installieren müssen.
Also schnell die 32GB SSD rein und einen Ubuntu 18.04 LTS Installations USB-Stick fertig gemacht.
1GB SSD
32GB SSD
Der PC bootet direkt das Bootmenü vom USB-Stick und startete Ubuntu. Die Installation lief langsam aber stabil durch und nach ca. 30 Minuten war ein sauberes Ubuntu 18.04 installiert.
Youtube mit 720p lief jetzt nicht direkt flüssig. Mit 480p lief alles super und sah auch wirklich noch ganz ok aus. Der Unterschied zu 720p war minimal, bei dem was ich getestet habe. Wobei ich mir nicht sicher bin, ob es vielleicht am Grafikkartentreiber liegen könnte, dass der die Videobeschleuningung für den verwendeten Codec von Youtube nicht liefern konnte.
Mit einem DVI auf HDMI-Adapter ist der PC für seine Aufgabe als Media-Player für das Schlafzimmer gut gerüstet.
Zur Not kann man die USB3.0 Karte noch gegen eine Lowprofile NVidia Quadro austauschen, da der 2x PCIe Slot nach hinten hin offen ist und so auch PCIe 16x Karten passen, die dann zwar nur mit 2-Lanes laufen, aber damit immer noch ausreichend schnell sind für Media-Player.
Fazit
1,2GHz klingt wenig und ist auch wirklich nicht viel, aber für einfache Aufgaben reicht es und der Grafikchip holt doch einiges raus. Mit einer SSD sind Datenzugriffe ausreichend schnell und werden nur durch die langsame CPU limitiert.
Die 2GB RAM reichen für ein einfaches Linux + Firefox auch aus. Eingebautes WLAN wäre nett aber wäre limitierend, weil Ethernet + WLAN-Accesspoint sind einfacher an schnelle WLAN-Standards anpassbar und man bleibt nicht auf einem alten Standard hängen.
Update: Chromium läuft sehr viel performanter auf dem System als Firefox. Während Firefox auf Youtube öftersmal ruckelt, laufen die selben Videos in der gewählten Auflösung im Chromium vollkommen flüssig.
Update 2: Ein Wechsel von Ubuntu auf Linux Mint hat sich als sehr gut heraus gestellt. VLC mit Stream vom SAT-IP Server laufen ohne Ruckler oder andere Probleme. Auch die GUI reagiert sehr viel direkter als bei Ubuntu, auch wenn sie weniger für TV-Geräte auf einiger Distanz geeignet ist, als die von Ubuntu.
Es klingt sehr viel komplizierter als es man Ende ist. Das Wichtigste ist es erst einmal XDebug auf der VM zu installieren. Ich habe da PHP7.1 und es erklärt sich an sich von selbst:
apt-get install php7.1-xdebug
Danach muss die /etc/php/7.1/mods-available/xdebug.ini bearbeitet werden. Wenn man nun davon ausgeht, dass die VM mit VirtualBox und einem Host-only Netzwerk in den Standard Einstellungen läuft ist der Host 192.168.56.1 . Die Datei sieht dann also so aus:
Bei mit zeigt shopware.localhost auf die VM und auf eine Shopware-Installation. Einen Breakpoint habe ich ganz an den Anfang von der shopware.php gesetzt.
Im Firefox verwendet ich das Addons Xdebug Session Cookie. PHPStorm hört auf Port 9000 nach Debug-Verbindungen. Wenn man nun shopware.localhost aufruft und das Addon aktiviert, wird auch sofort in PHPStorm dieses erkannt und er stoppt beim ersten Breakpoint, den man gesetzt hat.
Ist also in wenigen Minuten machbar, das für seine lokale Umgebung einzurichten.
Etwas komplexer ist es mit SSH und Portweiterleitungen, was aber ermöglicht ganz sicher ein Live- oder Staging-System zu debuggen und man muss nicht auf dem Server mit VI und echo/var_dump arbeiten, um heraus zu finden warum es zwar lokal super lief, aber nicht auf dem Server, obwohl die an sich total gleich sind. Kennt jeder.. oder?
Weil es ja Probleme mit TLS-SNI-01 gibt, kann man auch einfach eine Domain neu installieren. Dann wird ein neuer Eintrag mit dem Postfix 0001 angelegt.
Um unseren Shopware-Server aufzusetzen brauchen wir
- Apache (mit php7.0-mod)
- PHP7 (common,mysql,gd,xml,json,xsl,intl,gettext,mbstring,zip)
- MySQL Server
- OpenSSH Server
- PHPMyAdmin (wichtig hier Apache2 auszuwählen.. also mit Sternchen sichtbar nicht nur makiert)
Dann folgt die conf für den Apache und der Eintrag in die Host-Datei.
Jetzt können wir Shopware downloaden und installieren
Nun folgt die Netzwerk Konfiguration mit VirtualBox und die Anpassungen der hosts-Datei unter Windows.
Am Ende können wir mit dem Browser auf Shopware und mit WinSCP auf das System und das Shopware-Verzeichnis zugreifen.
So können wir unser lokalen Plugin-Verzeichnis mit dem auf dem Server synchron halten und Änderungen werden automatisch auf den Server gepusht.
Toll fand ich, dass man während des Freigabeprozesses wirklich mit Menschen zu tun hatte und einem auch wirklich von sich aus geholfen wurde.
Meine Erfahrungen beim Mozilla Store für Firefox OS waren da ganz anders. Da erhielt man eine Email mit sehr allgemeinen Punkten gegen was man verstoßen hätte und Hilfe was man noch müssen für die Freigabe gab es so gar nicht.
Deswegen werde ich mich dann jetzt daran machen weitere Plugins zu schreiben und zu veröffentlichen.
Erstmal Shopware mit Vagrant auf meiner Windows Workstation zum Laufen bekommen. Dann geht es sicher alles noch schneller und einfacher.
Oder ich richtige mir doch eine eigene Ubuntu VM ein... mal gucken.
Da es nicht gerade eine tolle Lösung ist, alle paar Tage die Let's Encrypt Zertifikate per Hand zu aktualisieren, sollte man sich einen Cron-Job erstellen.
Per Hand kann man hier mit alle Zertifikate aktualisieren, die bald ablaufen werden:
sudo letsencrypt renew
Den Cronjob kann auch ganz einfach anlegen.
sudo crontab -e
Und dann den Eintrag hinzufügen. Ich hab es mit vim gemacht.
Also mit den Pfeiltasten ans Ende der Datei. i drücken.
Meine meisten Email-Adressen sind ja nur Weiterleitungen. Beim Umzug meiner Domains auf meinen Server habe ich auch erst einmal alle umgezogen, die keine Email-Adressen haben. Das waren ein paar, aber dann war ich schnell bei denen mit Email-Adressen.
Damit ich nun auch hier einen sehr weichen Umzug hinbekomme, waren nun alle dran, die nur Weiterleitungen hatten.
Weiterleitungen sind mit Postfix wirklich einfach umgesetzt. Die DNS Einträge hat Netcup bei mir immer gleich schon mit eingerichtet, so dass ich dort nichts weiter machen musste.
Zu erst muss natürlich Postfix instaliert werden.
sudo apt-get install postfix
Danach einfach die Config-Datei von Postfix editieren. Die Datei findet man jeden Falls unter Ubuntu
hier:
Unter Ubuntu < 16.04 PHP 7.0 zu installieren ist gar nicht schwer, wenn man erst einmal weiß, wie es geht. Man muss sich ein zusätzliches PPA einrichten und sonst nicht viel machen.
Damit ist PHP 7.0 an sich schon installiert. Das kann man sehen wenn die Version überprüft (immer die zuletzt installierte Version wird hier verwendet)
php -v
Wenn man nun eine Liste an Modulen haben will bekommt man diese so:
sudo apt-cache search php7-*
Wichtig ist, dass XDebug weiterhin unter php-xdebug zu finden ist und deswegen hier nicht in der Liste auftaucht. Also alles aus der Liste installieren was man braucht.
In meinem Job und auch privat, bin ich jetzt teilweise auf Linux umgestiegen. Auch den Post hier schreibe ich auf meinem Notebook mit Linux Mint. Ok.. trotzdem benutze ich dafür noch Notepad++. Für den habe ich unter Linux noch keinen Ersatz gefunden, bei dem ich den Editor einfach schliesen kann, ohne alles speichern zu müssen und bei dem alles wieder so ist wie als ich ihn geschlossen habe, wenn ich den Editor wieder öffne.
Aber insgesamt, habe ich festgestellt, dass ich mit Linux sehr gut auskomme. Die meisten Programme die ich verwende gibt es für Linux und für fast alle anderen gibt es einen guten Ersatz. Sowohl Eclipse als auch PHPStorm laufen perfekt unter Linux. In PHPStorm macht das Konsolen-Fenster jetzt auch richtig Sinn, weil die Linux Konsole doch sehr sinnvoller da ist als die primitive Konsole von Windows.
GIT läuft wie gewohnt. SourceTree vermisse ich auf Linux etwas, wenn auch die GIT-Integration von Eclipse sehr gut funktioniert und für das normale Arbeiten vollkommen ausreicht.
Firefox, MySQL, Apache.. alles unter Linux genau so wie unter Windows.
Wärend ich bei der Arbeit Ubuntu benutze, verwende ich privat Linux Mint. Wenn ich wählen kann, würd ich immer zu Linux Mint greifen. Es scheint mir etwa runder zu sein und der Cinnemon-Desktop gefällt mir sehr viel besser als die Unity-GUI von Ubuntu.
Auf meinem PC läuft weiterhin Windows 10 und ich werde dort auch erstmal dabei bleiben, weil um mal ein Spiel zwischen durch zu spielen ist Windows doch noch die bessere Wahl.
Auf jeden Fall ist Linux eine gute Umgebung um darin zu entwickeln und ich habe momentan mit Job und anderen Projekten sehr viel zu tun. Deswegen werden es im Blog wohl auch in den nächsten Monaten weniger Beiträge werden. Dafür werde ich versuchen mal wieder ein oder zwei längere Post zu verfassen und auch mal ein oder zwei kleine Tutorial-Videos dazu reinstellen.
Hier der erste Versuch: Wie man Notepad++ unter Linux verwendet.
Auch heute in Zeiten von JSON und XML ist einer der Haupt Import- und Export-Formate immer noch CSV. Der Vorteil ist eben, dass es sich einfach erstellen lässt, einfach einlesen und zur Kontrolle in einem Texteditor laden lässt. Excel kann es auch irgendwie und OpenOffice bzw LibreOffice kann super damit umgehen.
Meistens erstellt man die Dateien ja in dem man Daten aus der Datenbank lädt und dann das Resultset durchläuft und direkt ausgibt oder in einen String schreibt, den man in eine Datei schreibt. Der Vorteil ist, dass man die Daten noch mal bearbeiten kann. Aber wenn man nicht zu komplexe Bearbeitungen vornehmen will und man diese auch mit SQL erledigen kann, gibt es auch die Möglichkeit CSV-Dateien direkt in der Datenbank (hier MySQL) zu erstellen.
Gerade wenn man die Datei nicht ausgeben will über eine PHP Datei sondern sie direkt in einer Verzeischnis kopiert (auch über FTP oder SSH) und die Datei dann von dort von einem anderen System eingelesen wird (z.B. von Neo4J.. so bin ich darauf gekommen) ist dieses Vorgehen sehr viel performanter (gerade wenn OR-Mapper im Spiel sind) als das normale Vorgehen.
SELECT ID,NAME
FROM TEST
WHERE ID>5
INTO OUTFILE '/var/www/app/data/export/out_test.csv'
FIELDS TERMINATED BY ','
Wenn man das FILE-Right hat, kann man so eine CSV in ein beliebiges Verzeichnis schreiben.
Man muss nur sicher stellen, dass man die nötigen Rechte im Verzeichnis hat und dass keine Programme wie apparmor das Schreiben verhindern. ERRCODE 13 wäre der Fehlercode der in so einem Fall angezeigt werden würde.
Wenn man nun alle Rechte erteilt hat und es nicht geht und apparmor läuft, kann man kontrollieren, ob MySQL davon überwacht wird.
sudo aa-status
Um den Zugriff auf das Verzeichnis zu erlauben muss man folgendes tun. Man muss /etc/apparmor.d/usr.sbin.mysql.d bearbeiten und einfach den Pfad an die vorhanden anfügen. Dann mit noch mal apparmor neu laden und es sollte gehen.
sudo /etc/init.d/apparmor reload
Blog-entries by search-pattern/Tags:
Möchtest Du AdSense-Werbung erlauben und mir damit helfen die laufenden Kosten des Blogs tragen zu können?