PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


HTTP Range-Request Header in PHP parsen

without comments

Hört sich eigentlich nach einer einfachen Aufgabe an: HTTP-Clients können beim Download nur Teile einer Datei anfragen, beispielsweise die ersten 500 Bytes eines Videos. Der Server announced die Unterstützung dieses Partial-Downloads mit dem Response-Header:

Accept-Ranges: bytes

Ein HTTP-Client, der partielle Downloads unterstützt kann nun mit dem folgenden Header die ersten 500 Bytes anfordern:

Range: bytes=0-500

Ein Webserver, der direkt die Datei ausliefert, tut wie ihm befohlen. Wird die angefragte Datei jedoch von einem PHP-Script ausgeliefert, muss im PHP-Script dieser Header geparst werden, damit man in PHP weiß wie viele Bytes man ausliefern soll.

Durchsucht man das Internet nach einer Antwort, findet man sehr häufig folgende Lösungen. Achtung, nicht dem RFC https://tools.ietf.org/html/draft-ietf-http-range-retrieval-00 entsprechend, nicht unbedingt nutzen:

Weiterlesen »

Written by Michael Kliewe

Mai 16th, 2017 at 9:44 pm

Posted in PHP

Tagged with

Blog mittels Let’s Encrypt dauerhaft via SSL erreichbar

with one comment

Nach einer viel zu langen Pause habe ich wieder etwas Luft für meinen Blog. Endlich…

Ein Kommentar von YamYamL hat mich daran erinnert, die HTTPS-Umstellung meiner Domain endlich abzuschliessen, und noch einen Endspurt einzulegen, die Domain verschlüsselt erreichbar zu machen.

Wäre hier nur ein einfaches WordPress-Blog gehostet, wäre es vermutlich eine Sache von einer Stunde gewesen. Ein Zertifikat besorgen, WordPress umkonfigurieren (Einstellungen -> Allgemein), und alle selbst gehosteten Bilder in den Posts in der Datenbank ändern von http://www.phpgangsta.de auf https://www.phpgangsta.de (ich habe das WordPress-Plugin Better Search & Replace genutzt). Aber…

Leider ist unter phpgangsta.de nicht nur dieser Blog erreichbar, sondern auch zig andere Projekte, selbst geschriebenes Zeug, teils 10 Jahre alt, und nicht HTTPS-fähig. Es ist also doch etwas mehr Arbeit gewesen, als „nur“ den Blog auf HTTPS umzustellen.
Der Port 443 war bereits seit langem offen, aber mit einem selbst signierten Zertifikat versehen. Da ich gern Let’s Encrypt (LE) verwende, LE aber keine Wildcards erlaubt (dann wäre es verhältnismäßig einfach gewesen, einfach für alle Subdomains ein zentrales Zertifikat zu hinterlegen), musste ich mein Domain-Verwaltungs-Reseller-Tool froxlor, das ich hier laufen habe, erstmal updaten auf eine Version, die LE unterstützt, so dass ich nun für einzelne Subdomains SSL aktivieren kann, und die Zertifikate auch via Cronjob immer brav erneuert werden.

Nicht vergessen darf man: In den Google Webmaster-Tools eine neue Property anlegen, den WordPress-Cache zu leeren falls man ein Cache-Plugin verwendet, Analytics umzustellen falls man es verwendet, und alle WordPress-Plugins prüfen dass sie HTTPS-fähig sind (bei mir waren sie das anscheinend dankenswerterweise).

Ich hoffe ich habe die meisten Mixed-Content-Probleme gelöst, könnte sein dass es noch irgendwo externen Content gibt (Bilder), der noch via HTTP eingebunden ist. Meldet ihn gern bei mir, sollte das Bild via HTTPS erreichbar sein, fixe ich das schnell, oder lade es auf meinen Space.

All in All durchaus einiges an Aufwand in den letzten Tagen und Wochen, aber seit heute ist der Blog nun via HTTPS verfügbar, incl. Let’s Encrypt Zertifikat, HTTP->HTTPS Weiterleitung und HSTS Header. Diverse Subdomains und andere (kleinere) Domains muss ich in den nächsten Wochen nach und nach umstellen, das kann noch etwas dauern.

Written by Michael Kliewe

Mai 4th, 2017 at 10:04 am

PHP 7: Migration eines Projekts

with 10 comments

PHP 7Noch knapp einen Monat warten, dann erscheint das Christkind PHP7! Was gibt es also schöneres als sich damit zu beschäftigen und erste Erfahrungen zu sammeln?

Im Januar habe ich mir speziell den Arbeitsspeicherverbrauch von PHP 7 angeschaut, die ChangeLogs verinnerlicht, es kompiliert und ein paar Testzeilen ausgeführt. Das lief schon sehr gut, aber um größere Projekte laufen zu lassen mangelte es noch an einigen Extensions. Außerdem wollte ich ein Zend Framework 1 Projekt testen, und ZF1 war zu dem Zeitpunkt noch nicht PHP 7-kompatibel.

Doch das hat sich geändert. ZF1 ist seit Mai 2015 mit Version 1.12.12 PHP 7 kompatibel, und auch die von mir benötigten Extensions wurden umgebaut, sodass es nun PHP 7-kompatible Branches vieler Extensions auf Github gibt.

Die Vorgehendweise: Neueste PHP 7 Version herunterladen, kompilieren, Extensions herunterladen, kompilieren, und dann SPASS HABEN!

Also los! PHP 7 RC5 kompilieren

Weiterlesen »

Written by Michael Kliewe

Oktober 24th, 2015 at 6:30 pm

Posted in PHP

Tagged with , , , , , ,

Gewinner der Verlosung für die code.talks 2015

with 2 comments

code.talks 2015Die Zeit ist um, ein Gewinner für das code.talks 2015 Freiticket muss bestimmt werden. 14 gültige Teilnehmer sind im Pott. Die richtige Antwort lautete natürlich: „Developer Conference“.

Max hat leider an die Key ID 79D56D60 verschlüsselt, die Key ID an die verschlüsselt werden sollte lautete jedoch A08ED813. Leider hat Max nicht auf meine E-Mail reagiert, ich hatte ihn darauf hingewiesen, er kann leider nicht teilnehmen an der Verlosung.

Wer von euch 14 hat gewonnen? Das Freiticket für die Konferenz geht an:

Weiterlesen »

Written by Michael Kliewe

Mai 27th, 2015 at 5:59 pm

code.talks 2015: Gutscheine und Freiticket!

with 20 comments

Die code.talks, die meines Wissens nach größte Webentwickler-Konferenz in Deutschland, findet auch dieses Jahr wieder statt und wird 1500 Entwickler begrüßen in Hamburg. Da sie in den letzten Jahren immer ausgebucht war und auch dieses Jahr wieder damit zu rechnen ist (nach 2,5 Monaten ist bereits über ein Drittel der Tickets verkauft), bin ich für euch an die Veranstalter herangetreten und habe um eine Aktion für meine Leser gebeten, und siehe da: Ich hatte Erfolg!

code.talks 2015Ich habe Gutscheincodes für euch, und auch ein Freiticket zu vergeben. Wie ihr die bekommt steht weiter unten.

Ende September, genauer am 29. und 30. September, werden alle 8 Säle im Cinemaxx Hamburg-Dammtor gefüllt und 112 Sessions mit Themen rund um Webentwicklung (PHP, Javascript, DevOps, Big Data, UX/Frontend, Skalierung, Infrastruktur, Mobile, Startups uvm.) werden viel Wissen vermitteln. Als Sprecher sind bereits an Bord: GitHub, StackOverflow, Zalando, Wooga, Jimdo, InnoGames, Cloudera und viele mehr. Der Call-for-Papers läuft noch, und die Liste wir garantiert viele weitere interessante Leute und Firmen beinhalten die aus der Praxis erzählen. 2 Tage volles Programm, incl. Frühstück, Mittagessen, Afterwork-Party, riesige Leinwände, bequeme Sessel und Popcorn & Nachos bis zum Umfallen 😉

Weiterlesen »

Written by Michael Kliewe

Mai 13th, 2015 at 1:52 pm