PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Search Results

Gearman Worker verbinden sich nach Upgrade nicht mehr

with 5 comments

Heute ein kurzer Tipp bezüglich PECL/gearman: Wenn ihr bei der Nutzung einer aktuellen Version den folgenden Fehler bekommt

send_packet(GEARMAN_COULD_NOT_CONNECT) Failed to send server-options packet
-> libgearman/connection.cc:430

dann liegt es daran dass ihr keinen Port beim Aufruf der Methode GearmanClient::addServer() angegeben habt. Bisher war der zweite Parameter optional und als Default wurde 4730 genommen, aber seit einigen Versionen (welcher genau kann ich nicht sagen) scheint er angegeben werden zu müssen. Wir benutzen aktuell PECL/gearman Version 1.1.1 kompiliert mit libgearman 1.1.5

Falls ihr also Gearman nutzt und den zweiten Parameter noch nicht gesetzt habt, fügt ihn am besten jetzt schon hinzu, damit ihr bei einem Upgrade in der Zukunft keine Probleme bekommt.

Hier habe ich die Lösung gefunden (wäre ich selbst wahrscheinlich nie drauf gekommen):
http://stackoverflow.com/questions/14883681/gearman-gives-me-gearman-could-not-connect-it-is-definitely-running
https://answers.launchpad.net/gearmand/+question/221277

Written by Michael Kliewe

April 8th, 2013 at 3:22 pm

Javascript Web Worker

without comments

Ergänzend zu einem älteren Artikel über Google Gears hier eine kurze Statusmeldung: Mittlerweile sind die modernen Browser (zur Zeit Firefox 3.5, Safari 4 und Google Chrome) in der Lage, die Funktionalität der Worker auch ohne das Gears-Plugin anzubieten, sodass man auf eine große Anzahl an Nutzern zurückgreifen kann. Wir werden also in Zukunft vermehrt tolle Seiten mit vielen Effekten und Funktionalitäten sehen, und vielleicht ja auch selbst entwickeln.

Weitere Infos bietet die Suchmaschine eurer Wahl. Einfach nach “Javascript Web Worker” suchen, es gibt bereits einige Beispiele und auch den Draft, der diese Technik hoffentlich bald zum Standard macht.

Written by Michael Kliewe

Oktober 28th, 2009 at 9:24 pm

Posted in PHP

Tagged with , ,

OpenSSL: Heartbleed

with 5 comments

heartbleedIhr habt es wahrscheinlich schon alle mitbekommen, es klafft ein riesiges Loch in der häufig eingesetzten OpenSSL-Bibliothek. Webserver, Mailserver, Jabberserver, alles was irgendwie mit Verschlüsselung zu tun hat ist gefährdet. Ist bereits OpenSSL 1.0.1 bis 1.0.1f im Einsatz (das ist die aktuelle Version, seit 2 Jahren verfügbar) steht ein dringendes Update an auf 1.0.1g.

Nicht betroffen sind OpenSSL 1.0.0 und 0.9.8. Nicht betroffen ist auch OpenSSH (wichtiger Unterschied).

Die Lücke hat den Namen “Heartbleed” bekommen und ist unter der CVE-Nummer CVE-2014-0160 verzeichnet.

Mit Hilfe dieser Lücke können Angreifer auf “die nächsten 64KB” des Arbeitsspeichers des Prozesses zugreifen. “Die nächsten” ist aber variabel, je nachdem wo er gerade landet im Arbeitsspeicher, sodass mit einer gewissen Wahrscheinlichkeit auch der private SSL-Schlüssel zu finden ist. Dieser kann nun von außen ausgelesen werden, ohne dass es Logeinträge gibt, also völlig unsichtbar. Mit Hilfe dieses Private Keys kann der Angreifer die aufgezeichneten Trafficdaten der Vergangenheit entschlüsseln, aber auch in Echtzeit in der Zukunft den Traffic entschlüsseln. Er kann außerdem per Man-in-the-Middle anderen vorgaukeln dass sein Server gültig ist für die jeweilige Domain, und damit Phishing betreiben.

Sehr ausführliche Informationen befinden sich auf der Seite heartbleed.com.

Was ist zu tun:
Read the rest of this entry »

Written by Michael Kliewe

April 9th, 2014 at 4:34 pm

Algorithmuswettbewerb: Beim Lotto den niedrigsten Gewinn ausschütten

with 42 comments

LottoHeute mal wieder etwas zum Grübeln und in die Tasten hauen, ich habe eine kleine Programmieraufgabe für euch, die ihr mit der Programmiersprache eurer Wahl lösen sollt. Es geht um folgendes:

Nehmen wir an ihr seid Lottoveranstalter und könnt die Ziehung beeinflussen. Die Teilnehmer geben vorher Lottoscheine ab mit ihren Tipps, und ihr möchtet nun errechnen welche 6 Zahlen gezogen werden müssen um den geringsten Gewinn auszuzahlen. Nehmen wir vereinfacht folgende Gewinne an:

3 Richtige: 50 Euro
4 Richtige: 200 Euro
5 Richtige: 5000 Euro
6 Richtige: 300.000 Euro

Uns allen ist bekannt dass es beim deutschen Lotto 6 aus 49 anders abläuft, denn dort wird immer die Hälfte der Einzahlungen ausgeschüttet und auf die Gewinnklassen verteilt, egal welche Zahlen der Veranstalter zieht, er muss immer 50% auszahlen. Dann funktioniert das ganze Denkspiel hier aber nicht 😉

Gegeben ist eine Anzahl an Tipps, beispielsweise:

Read the rest of this entry »

Written by Michael Kliewe

Juli 17th, 2013 at 10:58 am

Richtige Threads in PHP einfach erstellen mit pthreads

with 27 comments

Wir alle haben gelernt dass PHP kein richtiges Multi-Threading kann, und auch Kindprozesse zu forken ist nicht ganz trivial. Extensions wie PCNTL funktionieren nicht unter Windows und sind schwer zu bedienen. Man kann sich eventuell mit exec() behelfen und damit weitere Prozesse starten, verliert dann jedoch die Möglichkeit, die Prozesse zu synchronisieren oder einfach Nachrichten zwischen ihnen auszutauschen.

Und wer möchte eigentlich Threads in PHP und wofür?

Größere Projekte gehen heutzutage häufig den Weg, für Asynchronität und Parallelität Tools wie Gearman zu nutzen. Mit einem Gearman-Job-Server und einer beliebigen Menge an verbundenen Workern, die auch noch in beliebigen Programmiersprachen geschrieben sein können, kann man eine Menge Arbeit parallelisieren, aber ist eine komplette Gearman-Installation wirklich immer nötig? Gerade für kleinere Projekte ist das sicherlich zuviel, und auf Shared Hosting Platformen kann man keine Worker starten.

Read the rest of this entry »

Written by Michael Kliewe

März 13th, 2013 at 12:26 pm

Posted in PHP

Tagged with , , , ,