<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>trafex</title>
	<atom:link href="http://trafex.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://trafex.de</link>
	<description>webdev blog</description>
	<lastBuildDate>Sun, 22 Nov 2009 19:55:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SSH Mount unter Windows &#8211; Pfade vom Server als Laufwerk in Windows einbinden</title>
		<link>http://trafex.de/blog/51/ssh-mount-unter-windows-pfade-vom-server-als-laufwerk-in-windows-einbinden/</link>
		<comments>http://trafex.de/blog/51/ssh-mount-unter-windows-pfade-vom-server-als-laufwerk-in-windows-einbinden/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 08:14:37 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[trafex]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[betriebssystem]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[pfad]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=51</guid>
		<description><![CDATA[Da ich zuhause der Bequemlichkeit wegen Windows einsetze, aber trotzdem gerne privat Entwickeln möchte, ohne mir einen kompletten Server unter Windows auf zu setzen, habe ich gesucht und gefunden: es gibt mit Dokan SSHFS eine gut funktionierende Lösung die ähnlich fusessh unter Linux funktioniert. Man kann damit einfach einen Pfad auf einem externen Server verschlüsselt [...]]]></description>
			<content:encoded><![CDATA[<p>Da ich zuhause der Bequemlichkeit wegen Windows einsetze, aber trotzdem gerne privat Entwickeln möchte, ohne mir einen kompletten Server unter Windows auf zu setzen, habe ich gesucht und gefunden: es gibt mit <a href="http://dokan-dev.net">Dokan SSHFS</a> eine gut funktionierende Lösung die ähnlich fusessh unter Linux funktioniert. Man kann damit einfach einen Pfad auf einem externen Server verschlüsselt via SSH als Laufwerk unter Windows einsetzen.</p>
<p>Alle Links und Anleitung unter weiterlesen.</p>
<p><span id="more-51"></span></p>
<p>Dafür benötigt werden:</p>
<ul>
<li> <a href="http://www.microsoft.com/Net/Download.aspx">aktuelles .NET Framework von Microsoft</a></li>
<li><a href="http://dokan-dev.net/en/download/">Dokan library</a></li>
<li><a href="http://dokan-dev.net/en/download/">Dokan SSHFS</a></li>
</ul>
<p>Als erstes sollte man (wenn noch nicht vorhanden) das .NET Framework von Microsoft laden und installieren.<br />
Anschließend die Dokan library. Das ist die Basis für das Dokan SSHFS und stellt eine Schicht zwischen der Anwendung (in dem Fall Dokan SSHFS) und dem Betriebssystem (Windows) zur Verfügung. Die Installation sollte keine weiteren Probleme darstellen, ein Neustart ist nicht nötig.<br />
Als letztes einfach das Dokan SSHFS installieren. Auch hier sollte es keine Probleme geben.</p>
<p>Die Benutzung sollte weitestgehend selbsterklärend sein &#8211; einfach starten und die benötigten Daten eingeben:</p>
<p style="text-align: center;"><img class="size-full wp-image-58 aligncenter" title="dokansshfs1" src="http://trafex.de/wp-content/uploads/2009/09/dokansshfs1.png" alt="dokansshfs1" width="375" height="388" /></p>
<ul>
<li> Unter &#8220;Host&#8221; den Hostnamen des Servers eingeben (z.B.: trafex.de)</li>
<li>Bei &#8220;User&#8221; den Benutzernamen angeben, mit dem man sich einloggen möchte</li>
<li>der Port ist der Port, unter dem der SSH Daemon auf dem Server erreichbar ist</li>
<li>als nächstes kann man zwischen der Authentifizierung via Passwort wählen, dabei braucht man nur das Benutzerpasswort auf dem Server eingeben, oder ein SSH Keyfile.</li>
<li>&#8220;Server Root&#8221; gibt das als Basisverzeichnis, welches eingebunden werden soll. Die darunterliegende Verzeichnisse sind, solang man nich neu Mounted, nicht erreichbar.</li>
<li>zum Schluss gibt man den Laufwerksbuchstaben an, unter dem die Dateien unter Windows erreichbar sein sollen</li>
</ul>
<p>Nach dem Connecten braucht es einen kleinen Augenblick. Im Erfolgsfall bekommt man in einer kleinen Box den Status &#8220;sshfs start&#8221; gemeldet, im Fehlerfall die Meldung &#8220;failed to connect&#8221; &#8211; dann sollte man einfach noch mal die Angaben überprüfen.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/51/ssh-mount-unter-windows-pfade-vom-server-als-laufwerk-in-windows-einbinden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu auf Root-Server installieren</title>
		<link>http://trafex.de/blog/37/ubuntu-auf-root-server-installieren/</link>
		<comments>http://trafex.de/blog/37/ubuntu-auf-root-server-installieren/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 16:10:02 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[trafex]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[betriebssystem]]></category>
		<category><![CDATA[dateisystem]]></category>
		<category><![CDATA[einrichten]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[intrepid]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[neuinstallation]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=37</guid>
		<description><![CDATA[Einer meiner Root-Server verlangte nach einer Neuinstallation. Da mir die Dekstop-Edition ganz gut gefällt wollte ich mal die Server-Edition ausprobieren. Da man auf einem entfernten Root-Server natürlich keine CD einlegen kann ist etwas Arbeit notwendig damit man das auch ohne CD / DVD zum Arbeiten bringt.
Für Ubuntu spricht für mich das es aktueller ist als [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://trafex.de/blog/37/ubuntu-auf-root-server-installieren/"><img class="alignleft size-full wp-image-46" style="margin-right: 2em; margin-bottom: 1em;" title="Ubuntu Logo" src="http://trafex.de/wp-content/uploads/2008/11/153px-ubuntu-logo-no-textsvg.png" alt="" width="153" height="158" align="left" /></a>Einer meiner Root-Server verlangte nach einer Neuinstallation. Da mir die Dekstop-Edition ganz gut gefällt wollte ich mal die Server-Edition ausprobieren. Da man auf einem entfernten Root-Server natürlich keine CD einlegen kann ist etwas Arbeit notwendig damit man das auch ohne CD / DVD zum Arbeiten bringt.</p>
<p>Für Ubuntu spricht für mich das es aktueller ist als Debian und sich trotzdem weitestgehend wie ein Debian bedienen lässt. Außerdem ist die Einrichtung von XEN ohne grosse Neukompilierung des Kernels möglich.</p>
<p>Mehr unter weiter lesen &#8230;</p>
<p><span id="more-37"></span></p>
<p>Als Anleitung fand ich eine veraltete Anleitung im <a href="http://serversupportforum.de/forum/faqs-anleitungen/9840-howto-ubuntu-6-06-tls-dapper-drake-auf-vserver-oder-rootds-oder-root-server.html">serversupportforum</a>, diese Anleitung basiert auf dieser.</p>
<h3>Erster Schritt: Netzwerkdaten sichern</h3>
<p>Diese muss man später wieder eintragen und sind zur Konnektivität sehr wichtig.</p>
<p>Die wichtigsten Daten erhält man mit dem mit dem Befehl:</p>
<pre>ifconfig</pre>
<p>Man erhält in Etwa folgende Ausgabe:</p>
<pre>eth0      Link encap:Ethernet  HWaddr 00:13:8F:10:92:8F
          inet addr:85.12.123.123  Bcast:85.12.123.255  Mask:255.255.248.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17660218 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18155043 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1490089780 (1.3 GiB)  TX bytes:3045423043 (2.8 GiB)
          Interrupt:16 Base address:0xdc00</pre>
<p>Folgende Werte sind wichtig: &#8220;inet addr&#8221;, &#8220;Bcast&#8221; und &#8220;Mask&#8221;, diese notieren.<br />
Weiterhin brauchen wir noch die IP-Adresse des Gateways:</p>
<pre># route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
85.12.123.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         85.12.123.1     0.0.0.0         UG    0      0        0 eth0</pre>
<p>Hier notieren wir uns die IP hinter der Zeile die mit &#8220;0.0.0.0&#8243; beginnt (in dem Fall also 85.12.123.1)</p>
<p>Weiterhin die Inhalte der Dateien /etc/resolv.conf notieren.</p>
<p>Zweiter Schritt: Rettungssystem booten &amp; Festplatte vorbereiten</p>
<p>Jetzt startet ihr das Rettungssystem. Das geht meistens über das Web-Interface eures Anbieters.<br />
Sobald ihr euch da eingeloggt habt leeren wir die Platte des Servers und teilen diese neu ein.</p>
<h3>2. Festplatte &amp; Dateisysteme</h3>
<p>Ich habe meine Festplatte nach dem &#8220;klassischem&#8221; Schema partitioniert.<br />
/dev/sda1 als ext2 für das Boot-Device mit dem Boot-Flag,<br />
/dev/sda2 für Swap<br />
/dev/sda3 als ext3 für die Daten<br />
Einteilen des ganzen mit fdisk (Anleitung z.B. hier) und dann die Dateisysteme anlegen und alles mounten:</p>
<pre>mke2fs /dev/sda1
mke2fs -j /dev/sda3
swapoff -a
swapon /dev/sda2
mkdir /mnt/debinst
mount /dev/sda3 /mnt/debinst
mkdir /mnt/debinst/boot
mount /dev/sda1 /mnt/debinst/boot</pre>
<p>Hinweis: falls der Swap-Bereich vorher noch nicht eingerichtet worden ist, muss man diesen erst mit &#8220;mkswap /dev/sda2&#8243; initialiseren. Danke an Andi für diesen Hinweis. (siehe Kommentare)</p>
<h3>3. Ubuntu Basisdateien</h3>
<p>Nachdem alles gemountet ist geht es an die Installation von Ubuntu mittels debbootstrap. (aktuell ist Intrepid)<br />
Die Basisdateien holt man sich vom <a href="http://de.archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/">Ubuntu-Server</a>. Danach muss man das .deb-Paket umwandeln, damit man es einfach entpacken kann:</p>
<pre>mkdir /mnt/debinst/root
cd /mnt/debinst/root
wget http://de.archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/debootstrap_1.0.10ubuntu1~intrepid1_all.deb
ar -xf debootstrap_1.0.10ubuntu1~intrepid1_all.deb
cd /
tar -zxvf /mnt/debinst/root/data.tar.gz
/usr/sbin/debootstrap --arch amd64 intrepid /mnt/debinst/ http://de.archive.ubuntu.com/ubuntu</pre>
<p>Wer keine 64Bit-Installation (bei Intel-Prozessoren auch amd64 benutzen) möchte erstzt das amd64 mit i386.<br />
Das ganze dauert jetzt etwas. Das Script holt sich die Ubuntu-Basisdateien vom Ubuntu-Server und packt sie an die richtigen Stellen auf der gemounteten Partition.<br />
Wenn das ganze dann fertig ist müssen wir das proc-Dateisystem und die Devices auf dem neuem System initialisieren. Das geht auch sehr einfach:</p>
<pre>mount -t proc proc /mnt/debinst/proc
cd /mnt/debinst/dev/
MAKEDEV -v generic</pre>
<h3>4. Ubuntu Grundsystem installieren</h3>
<p>Jetzt ins neu angelegte System chrooten. D.h. wir gaukeln den Programmen vor das das neue System das Basissystem ist &#8211; sprich virtuell wird /mnt/debinst zu /</p>
<pre>LANG= chroot /mnt/debinst /bin/bash</pre>
<p>Die voreingestellten Quelldateien beschränken sich auf die Basispakete. Für die volle Auswahl müssen wir die Source-Datei ändern:</p>
<pre>vim /etc/apt/sources.list</pre>
<p>Die Originaldatei sieht bei mir so aus:</p>
<pre>deb http://de.archive.ubuntu.com/ubuntu intrepid main</pre>
<p>Das ändere ich in:</p>
<pre>deb http://de.archive.ubuntu.com/ubuntu intrepid main restricted universe multiverse
deb http://de.archive.ubuntu.com/ubuntu intrepid-security main restricted universe multiverse
deb http://de.archive.ubuntu.com/ubuntu intrepid-updates main restricted universe multiverse</pre>
<p>Danach die Paketlisten updaten und schauen ob es evtl. Updates gibt:</p>
<pre>apt-get update
apt-get upgrade</pre>
<h3>5. Grundsystem konfigurieren</h3>
<p>Zuerst kümmern wir uns um das automatische Mounten der Dateisystem beim Systemstart. Das wird in der /etc/fstab getan. Hier der Inhalt meiner neuen fstab:</p>
<pre>/dev/sda3       /       ext3    defaults,noatime                        0       1
/dev/sda1       /boot   ext2    defaults,noatime,nosuid,nodev           0       2

/dev/sda2       none    swap    sw                                      0       0
proc            /proc   proc    defaults                                0       0</pre>
<p>Dann das nächste, das Netzwerk. Die Konfiguration wird an mehreren Stellen festgelegt.</p>
<p>/etc/network/interfaces</p>
<pre>auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address &lt;IP-Adresse&gt;
        netmask &lt;Netzmaske&gt;
        broadcast &lt;Broadcast-Adresse&gt;
        gateway &lt;Default-Gateway&gt;</pre>
<p>Zur Namensauflösung muss die /etc/resolv.conf angepasst werden. Hier einfach das gleich &#8216;reinschreiben was im alten System auch schon in der Datei stand.<br />
Den Hostnamen des neuen Systems legt man in der /etc/hostname fest. Diesen da einfach &#8216;rein schreiben.<br />
Die Hosts-Datei ist obligatorisch, aber sollte für den Normalbetrieb zumindest die Definition für localhost aufweisen:</p>
<pre>127.0.0.1       localhost.localdomain   localhost</pre>
<p>Jetzt kommen Pakete und Einstellungen zur Sprache:</p>
<pre>apt-get install language-pack-en language-pack-de
dpkg-reconfigure locales</pre>
<p>Um Deutsch und UTF-8 zur Voreinstellung zu machen muss folgendes in die /etc/environment hinzugrüfgt werden:</p>
<pre>LANG="de_DE.UTF-8"
LANGUAGE="de_DE:de:en_GB:en"</pre>
<p>Nun kommen wir zur Uhrzeit. Dazu müssen wir die Zeitzone des Servers einstellen:</p>
<pre>dpkg-reconfigure tzdata</pre>
<p>Und danach können wir gleich die Uhrzeit des Servers mit einem NTP-Server abgeleichen:</p>
<pre>ntpdate ptbtime1.ptb.de</pre>
<p>Damit wir nachher wieder zum Server verbinden können brauchen wir noch den SSH Server:</p>
<pre>apt-get install ssh</pre>
<p>Und das Passwort für den root-Benutzer festlegen:</p>
<pre>passwd root</pre>
<h3>6. Kernel installieren</h3>
<p>Vor dem Kernel muss der Bootloader installiert werden. Da ich Grub bevorzuge mache ich das manuell vorher, ansosnten würde Lilo installiert werden.</p>
<pre>apt-get install grub</pre>
<p>Dann der eigentliche Kernel, das geht eigentlich sehr einfach. Zuerst schauen wir uns an welche Kernel-Version wir installieren wollen:</p>
<pre>apt-cache search linux-image</pre>
<p>Da wir einen Server betreiben wollen bietet sich das Server-Image an. Installiert wird es mit:</p>
<pre>apt-get install linux-image-server</pre>
<p>Man kann auch eine feste Version benutzen, dann wird der Kernel des Servers allerdings nicht mit geupdated.<br />
Zum Abschluss der Kernel-Installation muss noch Grub eingerichtet werden:</p>
<pre>cp /proc/mounts /etc/mtab
grub-install /dev/sda</pre>
<p>Das dauert einen Augenblick, nicht erschrecken.</p>
<p>Damit Grub auch weiss, was es später booten soll muss eine menu.lst angelegt werden. Das macht man mit:</p>
<pre>update-grub</pre>
<p>Die Abfrage, ob eine menu.lst generiert werden soll, mit y bestätigen.</p>
<h3>7. Neustart</h3>
<p>Der Moment der Wahrheit. Der Neustart des Systems.</p>
<p>Erst mal müssen wir aus dem chroot &#8216;raus. Dazu einfach</p>
<p>exit</p>
<p>eingeben.<br />
Jetzt kann man den Server neu starten lassen:</p>
<p>reboot</p>
<p>Und hoffen das der Server online geht.<br />
Wenn alles geklappt hat hat man ein minimales Grundsystem, auf dem man aufbauen kann und z.B. Apache, MySQL und und und installieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/37/ubuntu-auf-root-server-installieren/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Xen unter Ubuntu Intrepid (8.10) zum laufen bringen</title>
		<link>http://trafex.de/blog/39/xen-unter-ubuntu-intrepid-810-zum-laufen-bringen/</link>
		<comments>http://trafex.de/blog/39/xen-unter-ubuntu-intrepid-810-zum-laufen-bringen/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 23:37:35 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[trafex]]></category>
		<category><![CDATA[dom0]]></category>
		<category><![CDATA[intrepid]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=39</guid>
		<description><![CDATA[Leider kann man Ubuntu Intrepid (Ubuntu 8.10) nicht mehr direkt als Xen-Host (Dom0)nutzen, da die Xen-Maintainer wohl keine Patches für die aktuelle Kernel-Versionen anbieten.
Dem kann man zum Glück etwas auf die Sprünge helfen: einfach ein Kernel-Image einer älteren Ubuntu-Version benutzen.
Die derzeit aktuelle Version gibt es hier: http://packages.ubuntu.com/hardy/linux-image-2.6.24-22-xen
Einfach (z.B. mittels wget) auf den Server laden und [...]]]></description>
			<content:encoded><![CDATA[<p>Leider kann man Ubuntu Intrepid (Ubuntu 8.10) nicht mehr direkt als Xen-Host (Dom0)nutzen, da die Xen-Maintainer wohl keine Patches für die aktuelle Kernel-Versionen anbieten.</p>
<p>Dem kann man zum Glück etwas auf die Sprünge helfen: einfach ein Kernel-Image einer älteren Ubuntu-Version benutzen.</p>
<p>Die derzeit aktuelle Version gibt es hier: <a href="http://packages.ubuntu.com/hardy/linux-image-2.6.24-22-xen">http://packages.ubuntu.com/hardy/linux-image-2.6.24-22-xen</a><br />
Einfach (z.B. mittels wget) auf den Server laden und dann via dpkg installieren, anschliessend die /boot/grub/menu.lst anpassen. Hier mein Eintrag als Beispiel:</p>
<p>title           XEN Ubuntu 8.10, 2.6.24-22 (Hardy) kernel<br />
uuid            81706b95-438e-4d18-a7ce-0b4899ab76a7<br />
kernel          /xen-3.3.gz<br />
module          /vmlinuz-2.6.24-22-xen root=UUID=d20b2199-7242-4de9-97f7-f97831e58232 ro quiet splash<br />
module          /initrd.img-2.6.24-22-xen<br />
savedefault<br />
boot</p>
<p>Danach neustarten. That&#8217;s all.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/39/xen-unter-ubuntu-intrepid-810-zum-laufen-bringen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpMyAdmin 3 released</title>
		<link>http://trafex.de/blog/33/phpmyadmin-3-released/</link>
		<comments>http://trafex.de/blog/33/phpmyadmin-3-released/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 10:25:31 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PBXT]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[Verwaltung Maria]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=33</guid>
		<description><![CDATA[An diesem Wochenende wurde die 3. Version des MySQL-Verwaltungstools phpMyAdmin veröffentlicht.
Die Hauptänderung ist die Unterstützung für MySQL 5.1 sowie die Maria- und PBXT Storage Engine. Die Maria-Engine soll auf lange Sicht die  standardmäßig verwendete MyISAM-Engine ablösen.
Allerdings ist damit die Unterstützung für ältere MySQL Versionen weggefallen, so das man jetzt MySQL 5.00 oder höher benötigt. Als [...]]]></description>
			<content:encoded><![CDATA[<p>An diesem Wochenende wurde die 3. Version des MySQL-Verwaltungstools phpMyAdmin <a href="http://wiki.cihar.com/pma/phpMyAdmin_3.0.0">veröffentlicht</a>.<br />
Die Hauptänderung ist die Unterstützung für MySQL 5.1 sowie die <a href="http://forge.mysql.com/wiki/Maria_Preview">Maria</a>- und <a href="http://dev.mysql.com/tech-resources/articles/pbxt-storage-engine.html">PBXT</a> Storage Engine. Die Maria-Engine soll auf lange Sicht die  standardmäßig verwendete MyISAM-Engine ablösen.<br />
Allerdings ist damit die Unterstützung für ältere MySQL Versionen weggefallen, so das man jetzt MySQL 5.00 oder höher benötigt. Als weitere Voraussetzung benötigt man PHP 5.2.1 oder neuer.</p>
<p>Weitere Informationen und den Download gibt es auf <a href="http://www.phpmyadmin.net/">phpMyAdmin.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/33/phpmyadmin-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Authentifizierung und Anfängerfehler</title>
		<link>http://trafex.de/blog/28/authentifizierung-und-anfangerfehler/</link>
		<comments>http://trafex.de/blog/28/authentifizierung-und-anfangerfehler/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 21:46:51 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[anfängerfehler]]></category>
		<category><![CDATA[authentifizierung]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[milw0rm]]></category>
		<category><![CDATA[Nutzerauthentifizerung]]></category>
		<category><![CDATA[php icalendar]]></category>
		<category><![CDATA[phpicalendar]]></category>
		<category><![CDATA[vulnerability]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=28</guid>
		<description><![CDATA[Heute habe ich bei milw0rm.com folgenden Fehler im Script &#8220;PHP iCalendar&#8221; gefunden:
####################################################################
[+] PHP iCalendar &#60;= 2.24 Insecure Cookie Handling Vulnerability
[+] Discovered By Stack
[+] Greetz : All my freind
####################################################################
---
exploit:
javascript:document.cookie = "phpicalendar_login=1; path=/";
javascript:document.cookie = "phpicalendar=1; path=/";
# milw0rm.com [2008-09-22]
Quelle: http://www.milw0rm.com/exploits/6526
Dieses Beispiel zeigt man wieder aufs deutlichste das man einfache Cookies nicht zur Authentifizierung benutzen sollte. Alle Scriptsprachen bieten [...]]]></description>
			<content:encoded><![CDATA[<p>Heute habe ich bei milw0rm.com folgenden Fehler im Script &#8220;PHP iCalendar&#8221; gefunden:</p>
<pre>####################################################################
[+] PHP iCalendar &lt;= 2.24 Insecure Cookie Handling Vulnerability
[+] Discovered By Stack
[+] Greetz : All my freind
####################################################################
---
exploit:
javascript:document.cookie = "phpicalendar_login=1; path=/";
javascript:document.cookie = "phpicalendar=1; path=/";</pre>
<pre># milw0rm.com [2008-09-22]
Quelle: http://www.milw0rm.com/exploits/6526</pre>
<p>Dieses Beispiel zeigt man wieder aufs deutlichste das man einfache Cookies nicht zur Authentifizierung benutzen sollte. Alle Scriptsprachen bieten mindestens eine Art von Session-System, mit dem man eine Nutzerauthentifizerung auf einfache Art und Weise implementieren kann und an allen Stellen wird darauf hingewiesen das Cookies unsicher sind. Um so schlimmer ist es auch noch das solche Scripte öffentlich angeboten werden. Ein Grund mehr nicht jedem Script, welches angeboten wird, zu vertrauen.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/28/authentifizierung-und-anfangerfehler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MooTools 1.2 erschienen</title>
		<link>http://trafex.de/blog/27/mootools-12-erschienen/</link>
		<comments>http://trafex.de/blog/27/mootools-12-erschienen/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 11:31:35 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[JavaScript-Framework]]></category>
		<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=27</guid>
		<description><![CDATA[Nach einiger Zeit ist endlich MooTools 1.2 erschienen. Das JavaScript-Framework wurde fast ein Jahr nach dem letzten 1.11er Release veröffentlicht.
Einige der neuen Features der 1.2er Version:

bessere Domunentation
verbesserte Effekte
&#8216;richtige&#8217; Hash-Objekte
Swiff Objekt zur Interaktion mit Flash
die Möglichkeit zu jedem Element Metadaten zu speichern

Bei der Umstellung ist zu beachten, das sich an der API einiges getan hat und [...]]]></description>
			<content:encoded><![CDATA[<p>Nach einiger Zeit ist endlich <a href="http://www.mootools.net">MooTools</a> 1.2 erschienen. Das JavaScript-Framework wurde fast ein Jahr nach dem letzten 1.11er Release veröffentlicht.</p>
<p>Einige der neuen Features der 1.2er Version:</p>
<ul>
<li>bessere Domunentation</li>
<li>verbesserte Effekte</li>
<li>&#8216;richtige&#8217; Hash-Objekte</li>
<li>Swiff Objekt zur Interaktion mit Flash</li>
<li>die Möglichkeit zu jedem Element Metadaten zu speichern</li>
</ul>
<p>Bei der Umstellung ist zu beachten, das sich an der API einiges getan hat und man somit evtl. etwas Arbeit in die Umstellung stecken muss &#8211; was sich aber meiner Meinung nach mehr als Lohnt.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/27/mootools-12-erschienen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benchmark von PHP Funktionen und ihren Varianten</title>
		<link>http://trafex.de/blog/26/benchmark-php-funktionen-und-ihren-varianten/</link>
		<comments>http://trafex.de/blog/26/benchmark-php-funktionen-und-ihren-varianten/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 14:10:09 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[Optimierung]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=26</guid>
		<description><![CDATA[Das sich die Ausführungsgeschwindigkeit von verschiedenen Funktionen in PHP unterscheidet sollte eigentlich bekannt sein. Chris Vincent hat dazu nun auf der Seite phpbench.com dazu eine Übersicht bereitgestellt, welche die verschiedenen Funktionen miteinander vergleicht. Dazu gibt es zu jeder Funktion Code-Beispiele.
So sieht man z.B. schön, dass die Verwendung von foreach() beim Abarbeiten eines Hashs deutlich schneller [...]]]></description>
			<content:encoded><![CDATA[<p>Das sich die Ausführungsgeschwindigkeit von verschiedenen Funktionen in PHP unterscheidet sollte eigentlich bekannt sein. <a href="http://www.chrisvincent.com.au/">Chris Vincent</a> hat dazu nun auf der Seite <a href="http://www.phpbench.com/">phpbench.com</a> dazu eine Übersicht bereitgestellt, welche die verschiedenen Funktionen miteinander vergleicht. Dazu gibt es zu jeder Funktion Code-Beispiele.<br />
So sieht man z.B. schön, dass die Verwendung von foreach() beim Abarbeiten eines Hashs deutlich schneller ist als eine while()-Schleife, aber auch nicht in jedem Fall. Oder das print etwas langsamer arbeitet als echo.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/26/benchmark-php-funktionen-und-ihren-varianten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Mail als Standard Mailclient unter Windows</title>
		<link>http://trafex.de/blog/25/gmail-als-standard-mailclient-unter-windows/</link>
		<comments>http://trafex.de/blog/25/gmail-als-standard-mailclient-unter-windows/#comments</comments>
		<pubDate>Fri, 23 May 2008 09:43:49 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[trafex]]></category>
		<category><![CDATA[default]]></category>
		<category><![CDATA[G-Mailto]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google mail]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mailclient]]></category>
		<category><![CDATA[standard]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=25</guid>
		<description><![CDATA[Passt zwar nicht ganz zum Thema des Blogs, aber dennoch wollte ich es festhalten.
Durch eine Frage bei Wer-Weiss-Was, in der gefragt wurde, wie man GMail (aka Google Mail) als Standard Mailclient einrichtet kam ich auf das Programm G-Mailto.
Dieses richtet die entsprechenden Einstellungen und Registry-Eintröge so ein, dass sich beim Klick auf einen Mailto-Link künftig der [...]]]></description>
			<content:encoded><![CDATA[<p>Passt zwar nicht ganz zum Thema des Blogs, aber dennoch wollte ich es festhalten.<br />
Durch eine Frage bei <a href="http://www.wer-weiss-was.de/app/archive/show/4614071?special=id#4614071">Wer-Weiss-Was</a>, in der gefragt wurde, wie man GMail (aka Google Mail) als Standard Mailclient einrichtet kam ich auf das Programm <a href="http://www.rabidsquirrel.net/G-Mailto/">G-Mailto</a>.<br />
Dieses richtet die entsprechenden Einstellungen und Registry-Eintröge so ein, dass sich beim Klick auf einen Mailto-Link künftig der (Standard) Browser öffnet und die GMail-Mailsenden-Seite mit den entsprechenden voreingestellten Einträgen anzeigt.<br />
Google selbst hat früher den GMail Notifier angeboten, welcher jetzt zu Gunsten von Google Talk leider nicht mehr weiter entwickelt wird. G-Mailto ist dazu (wie ich finde) eine sehr gute Alternative.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/25/gmail-als-standard-mailclient-unter-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress 2.5 Flash-Uploader deaktivieren</title>
		<link>http://trafex.de/blog/24/wordpress-25-flash-uploader-deaktivieren/</link>
		<comments>http://trafex.de/blog/24/wordpress-25-flash-uploader-deaktivieren/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 17:53:57 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[trafex]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=24</guid>
		<description><![CDATA[Ich hatte einige Probleme mit dem Flash-Uploader von Wordpress 2.5, welcher u.a. regelmäßig meinen Browser zum Abstürzen brachte. Nach etwas googeln hatte ich jedoch keine Lösung gefunden, also habe ich mich selbst daran gemacht und für mich etwas kleines geschrieben.

Erst schaute ich nach, wo der Flash-Uploader geladen wird. Dies geschieht in der Datei wp-admin/includes/media.php. In [...]]]></description>
			<content:encoded><![CDATA[<p>Ich hatte einige Probleme mit dem Flash-Uploader von Wordpress 2.5, welcher u.a. regelmäßig meinen Browser zum Abstürzen brachte. Nach etwas googeln hatte ich jedoch keine Lösung gefunden, also habe ich mich selbst daran gemacht und für mich etwas kleines geschrieben.</p>
<p><span id="more-24"></span></p>
<p>Erst schaute ich nach, wo der Flash-Uploader geladen wird. Dies geschieht in der Datei wp-admin/includes/media.php. In dieser Datei ist mir die Zeile</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000088;">$flash</span> <span style="color: #339933;">=</span> apply_filters<span style="color: #009900;">&#40;</span><span style="">'flash_uploader'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$flash</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>aufgefallen. Also kurz nach apply_filters() gegoogelt und in der recht guten Wordpress-API-Beschreibung fündig geworden: mit <a href="http://codex.wordpress.org/Function_Reference/add_filter" target="_blank">add_filter()</a> kann man Filter hinzufügen.</p>
<p>Wer die Datei my-hacks.php noch nicht erstellt hat sollte dies tun. In dieser Datei kann man eigene Hacks nachladen ohne dabei die Wordpress-Dateien selbst anzufassen und somit bei einem Update die Änderungen zu behalten. Einfach im Wordpress-Verzeichniss diese Datei anlegen und danach in den Einstellungen -&gt; Verschiedenes den Support für die my-hacks.php aktivieren.</p>
<p>Die my-hacks.php sieht jetzt bei mir so aus:</p>

<div class="wp_syntax"><div class="code"><pre class="php php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
add_filter<span style="color: #009900;">&#40;</span><span style="">'flash_uploader'</span><span style="color: #339933;">,</span> <span style="">'disable_flash_uploader'</span><span style="color: #009900;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> disable_flash_uploader <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">false</span>;
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Et voilà &#8211; jetzt kommt der alte Uploader wieder zum Vorschein, der einwandfrei funktioniert.<strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/24/wordpress-25-flash-uploader-deaktivieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intern: trafex.de jetzt XHTML 1.0 Valid</title>
		<link>http://trafex.de/blog/23/intern-trafexde-jetzt-xhtml-10-valid/</link>
		<comments>http://trafex.de/blog/23/intern-trafexde-jetzt-xhtml-10-valid/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 13:30:57 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[Kompatibilität]]></category>
		<category><![CDATA[trafex]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[intern]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Templates]]></category>
		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=23</guid>
		<description><![CDATA[Gestern Abend hatte ich kurz Zeit gefunden ein paar XHTML-Fehler zu beseitigen. Somit ist trafex.de jetzt XHTML 1.0 Valid.
Im Wesentlichen handelte es sich dabei um eine Ersetzung von onClick nach onclick, sowie um &#38; Zeichen in Links welche korrekt &#38;amp; geschrieben werden müssen.
]]></description>
			<content:encoded><![CDATA[<p>Gestern Abend hatte ich kurz Zeit gefunden ein paar XHTML-Fehler zu beseitigen. Somit ist trafex.de jetzt XHTML 1.0 Valid.<br />
Im Wesentlichen handelte es sich dabei um eine Ersetzung von onClick nach onclick, sowie um &amp; Zeichen in Links welche korrekt &amp;amp; geschrieben werden müssen.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/23/intern-trafexde-jetzt-xhtml-10-valid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.422 seconds -->
<!-- Cached page served by WP-Cache -->
