dec 202015
 

php_MQTTDit is even een blogpost die 99% van de lezers niet zal zeggen, maar die ik voor mezelf hier maak zodat ik hem de volgende keer weer terug kan vinden, zonder het bijbehorende uitzoekwerk.

Wat wilde ik?
Ik heb op een Raspberry Pi een Mosquitto MQTT server draaien en op die server draait ook een Apache webserver met PHP5 ondersteuning. Nu wilde ik vanuit PHP data naar de Mosquitto server kunnen sturen en lezen. Dat kan, via deze uitbreiding. Maar daar moest ik een paar zaken voor doen. De commando’s zijn:

> sudo apt-get install php-pear
> sudo apt-get install php5-dev
> sudo apt-get install libmosquitto-dev
> sudo pecl install Mosquitto-alpha
> sudo nano /etc/php5/apache2/php.ini
voeg
extension=mosquitto.so
toe aan het bestand en sluit af
> sudo nano /etc/php5/cli/php.ini
voeg
extension=mosquitto.so
toe aan het bestand en sluit af
> sudo /etc/init.d/apache2 restart

Belangrijk is dat ik extension=mosquitto.so aan /etc/php5/cli/php.ini toe bleek te moeten voegen om het ook vanaf de commando prompt te kunnen gebruiken.

Deel dit bericht:
 Reacties uitgeschakeld voor Quick notes: MQTT ondersteuning in PHP op Raspberry Pi  Tags: , ,
okt 122011
 

Het is/was even hard doorwerken de afgelopen tijd. Voor een experiment als onderdeel van mijn promotieonderzoek moest ik een online webomgeving inrichten waarbij studenten via tags toegang krijgen tot onderdelen van opnames die gemaakt zijn met behulp van Mediasite. Dat is al een keer gebouwd voor andere systemen (Recordingbox en P2G) maar omdat mijn onderzoek plaats vindt bij Fontys en de TU/e bij waar gebruik gemaakt wordt van Mediasite, moest het ook samenwerken met die omgeving. Nou zou het op zich kunnen met behulp van de “chapter”-optie die Mediasite heeft, maar dan zitten de chapters (vind ik) wat ver weg verstopt. Ik had niet heel veel tijd om een oplossing te realiseren omdat het vak waar we het experiment willen uitvoeren nu loopt en we de tags al na de herfstvakantie (gelukkig die in het zuiden, dus een week later dan in het noorden) moeten kunnen invoeren.

Van de grond af aan een omgeving opbouwen leek een onhaalbare zaak, maar gelukkig kwam ik terecht bij CakePHP. Het is een framework voor PHP waarmee je redelijk snel web applicaties kunt opbouwen. Je begint met een datamodel die je in een database verwerkt (je maakt tabellen aan met onderlinge relaties) en op basis daarvan genereert het framework een model voor de validatie van die data (voor als je wilt wijzigen of nieuwe data toevoegen), maar je kunt ook de benodigde CRUD (Create, Read, Update, Delete) controllers laten genereren voor het bewerken van de data en de bijbehorende views voor de weergave, het wijzigen, het toevoegen en het verwijderen van die data laten aanmaken.
Gooi daar een autorisatie-schil overheen en je bent al een heel eind.
Lees verder….

Deel dit bericht:
 Reacties uitgeschakeld voor CakePHP – PHP programming as Easy as Pie  Tags: , ,

Er werd een virus gevonden!

 Gepubliceerd door om 19:36  Algemeen
mei 242010
 

Oei, dat is niet het soort mailtje dat je in je mailbox wilt vinden als je net een weekend offline geweest bent: “Het zal wel loos alarm zijn, maar mijn virusscanner begon te loeien toen ik naar een oud bericht van jou ging” schreef Willem Karssenberg.

Ik moet bekennen dat ik ook eerst aan loos alarm dacht, zoeken op “HTML: Script-inf” leverde wel hits op, maar niet direct iets waar ik iets mee kon. Toch maar even kijken op de server. En daar zag ik eigenlijk meteen al dat er iets aan de hand was. De datum/tijd van wijzigen van de PHP-bestanden op de server was namelijk vele te recent. Die server bij Dreamhost wordt namelijk op het moment alleen gebruikt als archief voor de grote bestanden etc. en PHP-bestanden wijzigen heb ik daar al een hele tijd niet meer gedaan.

Het bleek dat een oude hack, eerder al een keer opgetreden als gevolg van het niet direct updaten van een WordPress installatie op de server daar, weer opgetreden was. Alle PHP bestanden waren in de header voorzien van een stuk code die met “<?php /**/ eval(base64_decode(” begon.

Ik heb niet kunnen achterhalen waar of hoe de hacker binnen gekomen is. Het kan zijn dat dit code is die er al een tijdje zat, blijkbaar is het vooral hardnekkig als je het niet volledig (en dus in echt in alle geïnfecteerde PHP-bestanden) weet te verwijderen.

Handmatig is dat echter een hele klus die moeilijk gegarandeerd volledig te doen is.

Daarom was ik ook heel blij dat ik deze website tegen kwam met een beschrijving van een commandoregel die je uit kunt voeren vanaf een SSH-prompt op de server en waarmee je dan gegarandeerd in één keer alle bestanden schoon weet te maken:

for i in `find ./* -name “*.php”`;do  if [ -f $i ];then perl -p -i -e ‘s/.*==”\)\);\?>[^.]*//g’ $i ; perl -p -i -e ‘s/^\n//’ $i ; fi done;

Ik heb het commando uitgevoerd en de PHP-bestanden werden inderdaad netjes opgeschoond. De WordPress versies die op die server zijn inmiddels ook verwijderd of worden voortaan automatisch bijgewerkt door Dreamhost. Nu dus maar hopen dat daarmee ook alle ingangen afgesloten zijn.

En Willem, reuze bedankt voor het seintje!

Deel dit bericht:
mrt 082010
 

Soms lijkt iets niet te kunnen (of in ieder geval niet gratis) en blijkt het achteraf heel erg eenvoudig te zijn. Zo ben ik vorige week bezig geweest aan een script dat in de browser tamelijk complexe tabellen produceert. De exacte inhoud en betekenis daarvan doet er niet zo toe, de tabellen zijn opgemaakt in HTML. Daarnaast maakte mijn script op basis van dezelfde data een grafiek die gebruikt maakt van JQuery. Ziet er ook heel mooi uit. In de browser.
Maar wilde die tabellen en grafieken ook in rapportages kunnen opnemen, bijvoorbeeld in een Word-document of een PDF. Nu zijn er wel scripts om PDF’s te maken vanuit PHP (dat is waar ik de server-kant van de scripts in schrijf), maar dan moest ik ze nogmaals opbouwen in een andere syntax (namelijk van de component die PDF’s kon genereren). En daar kwam bij dat dat dan niet voor de JQuery grafiek zou lukken.

Nu kon ik natuurlijk de pagina’s printen, maar dat vond ik teveel werk (het gaat om in totaal zo’n 75 verschillende rapportages nu al en dan dus steeds een tabel en grafiek). Het moest automatisch kunnen. Mijn voordeel is daarbij wel dat het gaat om een prototype dat alleen op mijn eigen Windows-laptop of computer thuis hoeft te kunnen functioneren.

Lees verder….

Deel dit bericht: