Archiv der Kategorie: Linux

Vagrant Tutorial

Vagrant (zu Deutsch: „umherwandernd“) ist ein klasse Tool für verteilte Entwicklung. Muss man sich so vorstellen: Entwickler A soll soll einen Bug fixen, holt die entsprechende Vagrant-Box hervor und findet in ihr die komplette Projektumgebung wieder – Apache, MySQL, PHP in der jeweils korrekten Version, Anbindung an den CI-Server und alles was man eben so benötigt. Nach getaner Arbeit wird das Projekt deployed und die Vagrant Box gespeichert. Wenn dann später wieder jemand an diesem Projekt arbeitet, schnappt er sich einfach die Box und legt los. Kein lästiges Umherkämpfen mit vhosts, falschen Softwareversionen und allem, worauf eigentlich niemand Lust hat. Aber der Reihe nach.… Den ganzen Post lesen

Veröffentlicht unter webdev, Linux, misc IT | 6 Kommentare

Parallel processing in PHP

Since PHP does not offer native threads, we have to get creative to do parallel processing. I will introduce 3 fundamentally different concepts to emulate multithreading as good as possible.

Using systemcalls

If you have some basic linux knowledge, you will know that a background process can be started by adding ampersand to the systemcall (in Windows, it’s the start-command)

dav@david:/var/www$ php index.php &
[1] 3229

The PHP script is running silently in the background. What is being printed to the shell (3229) is the process id, so that we are able to kill the process using

kill 3229

A problem with this approach is, that any output of the script is lost, so we have to redirect the output stream to a file, just like this:

php index.php
Den ganzen Post lesen
Veröffentlicht unter php, Performance, webdev, Linux | 19 Kommentare

Systemaufrufe, Linux, Windows, Rückgabewerte und der Errorstream

Heute folgendes Problem gehabt: Es soll ein Systemaufruf an openssl ts zur Signierung von Timestamps (siehe hier) erfolgen. Das an sich ist ja erst mal noch kein Problem. Allerdings soll die geschriebene Klasse gleichermaßen unter Linux und Windows mit möglichst aussagekräftigen Fehlermeldungen zum Einsatz kommen. Jetzt ist die pikante Sache daran, dass der ts-Parameter von openssl erst ab Version 0.99 mit dabei ist, die standardmäßig unter Debian Lenny nicht mit installiert ist. Jetzt erzeugt netterweise ein Aufruf von openssl ts einen Returnwert von 0 (= alles okay), obwohl openssl den ts-Befehl in der installierten Version garnicht kennt – wir haben also keine Möglichkeit über eine Prüfung des Returnwertes alleine über Erfolg oder Misserfolg der Funktion zu entscheiden:

Als Waffe der Wahl haben wir uns nun also für exec entschieden, da shell_exec keinen Returnwert zurückliefert und system / passthru den Programmoutput einfach rausfeueren und nicht returnen.… Den ganzen Post lesen

Veröffentlicht unter php, Quicktips, webdev, Linux | 1 Kommentar

praktischer Linux/Ubuntu-Stuff

Mal ein paar zusammengewürfelte Sachen die ich in letzter Zeit als recht praktisch empfunden habe. Los gehts mit

Alias

Wer in die Shell

alias l="ls -lha"

reinkloppt, kann in Zukunft nur noch l in die Konsole tippen und spart sich den Rest. Allerdings gilt der Spaß nur für die aktuell laufende Sitzung. Mittels

gksudo gedit /home/username/.bash_aliases

wird die alias-Datei geöffnet. Da dann den oben beschriebenen Befehl reingehauen und er ist auch persistent über den Neustart hinaus.

Entfernen des Boot-Splash-Screens (GRUB)

Ich schau mir lieber die durchratternden Bootmeldungen an als einen unsexy Ubuntu Ladebalken. Wie kriegt man den weg?

gksudo gedit /etc/default/grub

und dann in der Datei die Zeile anpassen, die quiet splash in Hochkomma stehen hat.… Den ganzen Post lesen

Veröffentlicht unter Quicktips, Linux | Hinterlasse einen Kommentar