PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for the ‘Ubuntu’ tag

undefined function json_encode(): Distributionen tauschen JSON Extension

with 5 comments

Letzte Woche habe ich zum ersten Mal folgende Fehlermeldungen gesehen:

PHP Fatal error: Call to undefined function json_decode()
PHP Fatal error: Call to undefined function json_encode()

JSON LogoDiese Fehler kommen nach dem Upgrade auf PHP 5.5 unter Ubuntu 13.10. Doch warum kommt der Fehler, JSON ist doch schon seit langen Jahren (PHP 5.2) fest in PHP eingebaut? Auf der Suche nach der Lösung stösst man dann auf die folgenden Sätze:

– The Software shall be used for Good, not Evil.

– The freedom to run the program for any purpose.

Der erste Satz steht in den Lizenzbedingungen der JSON-Extension, die Teil des PHP-Kerns und eine C-Library vom Javascript-Guru und JSON-Erfinder Douglas Crockford ist.

Der zweite Satz stammt aus dem sogenannten „freedom 0“ der Free Software Foundation (FSF), den sehr viele große Distributionen unterstützen und übernehmen.

Weiterlesen »

Written by Michael Kliewe

Oktober 31st, 2013 at 10:13 am

Zuhause im IPv6 Web surfen (Teil1: Ubuntu)

with 4 comments

Das neue Internet Protokoll in der Version 6 wird kommen, soviel ist sicher. Da es ein langsamer Umstieg ist, leben wir aktuell in einer zweigeteilten Welt: Der alten IPv4 Welt und der neuen IPv6 Welt. Einige Länder sind bei der Umstellung schneller, andere müssen noch mehr oder weniger dazu gezwungen werden.

Ganz getrennt sind die beiden Welten jedoch nicht. Mit Hilfe von Tunnel-Protokollen und -Servern kann man zwischen den jeweiligen Netzen vermitteln.

Da die meisten von euch wohl noch IPv4 zuhause haben werden (kein großer deutscher Provider bietet aktuell IPv6 DSL-Anschlüsse an, es gibt nur ein paar kleinere), will ich hier kurz eine Anleitung schreiben, wie ich es zuhause nutze.

So sieht es vorher aus, wenn man noch keine IPv6 Verbindung hat (so sollte es bei euch auch aussehen):

$ ping6 ipv6.google.com
connect: Network is unreachable

(Diese komplette Anleitung ist für Linux/Ubuntu, für Windows gibt es auch Software und eine Anleitung, also einfach weiterlesen)

without_ipv6

Alles was wir brauchen ist eine Client-Software, die uns auf unserem Rechner hilft, ein Tunnel-Device zu erstellen, welches dann den IPv6-Traffic zum Tunnel-Server leitet. Ich habe zuhause die Software „gogoClient“(gw6c) genutzt, um mich mit einem kostenlosen IPv6 Tunnelbroker zu verbinden.

Es gibt verschiedene Möglichkeiten, je nach Betriebssystem, das grundlegende Vorgehen ist dabei: Download der Client Software und Starten der Sofware 😉

Und das müßt ihr dafür tun:

Ihr registriert euch kostenlos auf dieser Seite: http://gogonet.gogo6.com/

Jedes Mitglied dort erhält nämlich die Möglichkeit, die Software herunterzuladen und eine IPv6-Adresse (bzw. ein Netz) zu erhalten. Unten in diesem Artikel gibt es noch einige interessante Links, die man sich durchlesen kann, falls man Probleme hat oder wissen möchte, was alles hinter dem Service steckt. Oder gar eine feste IPv6-Adresse haben möchte.

Nach der Registrierung kann man hier den Client herunterladen:

http://gogonet.gogo6.com/page/download-1

Es gibt Versionen für Windows, Linux, *BSD, OpenWRT etc, alles was das Herz begehrt.

Nach dem Download entpackt man das entsprechende Archiv (Unter Windows startet man den Installer).

$ tar -xzvf gw6c-linux.tar.gz
gw6c/
gw6c/template/
gw6c/template/README
gw6c/template/linux.sh
gw6c/bin/
gw6c/bin/gw6c.conf
gw6c/bin/gw6c
gw6c/bin/gw6c.conf.sample
gw6c/man/
gw6c/man/man5/
gw6c/man/man5/gw6c.conf.5
gw6c/man/man8/
gw6c/man/man8/gw6c.8

In meinem Fall mußte ich nur noch eine kleine Einstellung in der gw6c/bin/gw6c.conf machen, nämlich den Pfad korrekt angeben, wohin ich gw6c entpackt habe:

gw6_dir=/usr/local/gw6c

Danach einfach starten via

sudo /usr/local/gw6c/bin/gw6c

Dann sollte der Tunnel aufgebaut sein:

$ ifconfig tun
tun       Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet6 addr: 2001:5c0:1000:a::539/128 Scope:Global
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1280  Metric:1
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:1032 (1.0 KB)  TX bytes:608 (608.0 B)

Falls das nicht der Fall ist, kann man das Logging aktivieren, indem man in der gw6c.conf die folgenden Einstellungen abändert:

log_file=3
log_filename=gw6c.log

Sobald nun also der Tunnel aufgebaut ist, können wir IPv6 nutzen:

$ ping6 ipv6.google.com
PING ipv6.google.com(fx-in-x68.1e100.net) 56 data bytes
64 bytes from fx-in-x68.1e100.net: icmp_seq=1 ttl=56 time=42.3 ms
64 bytes from fx-in-x68.1e100.net: icmp_seq=2 ttl=56 time=44.8 ms
64 bytes from fx-in-x68.1e100.net: icmp_seq=3 ttl=56 time=44.4 ms
64 bytes from fx-in-x68.1e100.net: icmp_seq=4 ttl=56 time=48.3 ms
64 bytes from fx-in-x68.1e100.net: icmp_seq=5 ttl=56 time=43.6 ms
$ host ipv6.google.com

ipv6.google.com is an alias for ipv6.l.google.com.
ipv6.l.google.com has IPv6 address 2001:4860:a003::68
whois 2001:4860:a003::68

OrgName:    Google Inc.
OrgID:      GOGL
Address:    1600 Amphitheatre Parkway
City:       Mountain View
StateProv:  CA
PostalCode: 94043
Country:    US

NetRange:   2001:4860:0000:0000:0000:0000:0000:0000 - 2001:4860:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
CIDR:       2001:4860:0000:0000:0000:0000:0000:0000/32
OriginAS:   AS15169
NetName:    GOOGLE-IPV6

Oder im Firefox:

with_ipv6

Ihr surft nun also transparent in beiden Netzen. Falls eine Adresse ins IPv6 führt, wird es über gogo6 geroutet, bei IPv4 bleibt alles beim alten.

Man kann nun auch noch bei gogo6 den Freenet6 Tunnel Service nutzen und eine feste IPv6 Adresse bekommen. Dazu mußt man sich auf einer Seite registrieren, und mit diesen Registrierungsdaten die gw6c.conf anpassen. Und schon hat man eine statische IPv6 Adresse, unter der man auch seinen Rechner zuhause erreichen kann und Dienste anbieten kann.

Für Windows gibt es hier die Anleitung mit vielen Screenshots 🙂

Weitere Seiten, die man mit IPv6 Zugangn besuchen kann:

http://www.six.heise.de

http://www.ipv6.bieringer.de (mit Informationen über die eigene IPv6-Adresse)

http://www.kame.net Die tanzende IPv6-Schildkröte aus Japan

ACHTUNG: Mit einem solchen Tunnel erhaltet ihr eine öffentliche IPv6-Adresse. Ihr umgeht damit euren Router/NAT und seid direkt aus dem Internet erreichbar. Achtet also darauf, welche Dienste ihr ins Internet zur Verfügung stellt! Eventuell müßt ihr eine lokale Firewall installieren/konfigurieren, damit ihr nicht zu einer Spam-Drohne werdet oder gar schlimmeres. Achtet auf Freigaben, lokale Entwickler-Webserver etc etc.

=======================================================

Interessante Kurzvideos über ping6, traceroute6, whois usw: http://ipv6.he.net/presentations.php

http://gogonet.gogo6.com/page/freenet6-tunnelbroker

http://gogonet.gogo6.com/page/help-center

http://gogonet.gogo6.com/page/service-status

Diese Anleitung sieht einfacher aus, hat bei mir aber nicht funktioniert: http://unquietwiki.blogspot.com/2009/10/go-go-dancing-on-internet-ipv6-anyway.html

Written by Michael Kliewe

November 17th, 2009 at 11:34 pm

Posted in Linux

Tagged with , , , , ,