<?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>TheGeek.de &#187; wordpress</title>
	<atom:link href="http://thegeek.de/t/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://thegeek.de</link>
	<description>WordPress, PHP, JavaScript, Web 2.0, Gaming, Motorräder, Fotografie, Piratenpartei, Privates</description>
	<lastBuildDate>Tue, 07 Feb 2012 13:21:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WordPress und lighttpd, Permalinks mit URL rewriting</title>
		<link>http://thegeek.de/wordpress-und-lighttpd-permalinks-mit-url-rewriting</link>
		<comments>http://thegeek.de/wordpress-und-lighttpd-permalinks-mit-url-rewriting#comments</comments>
		<pubDate>Tue, 24 Nov 2009 11:54:00 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[permalinks]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://thegeek.de/?p=355</guid>
		<description><![CDATA[Ich nutze schon seit langem keinen Apache Webserver mehr, sondern lighttpd, da dieser schlank und performant ist. Einziger Nachteil ist in meinen Augen die fehlende Kompatibilität zu &#8220;.htaccess&#8221; Dateien, die bei vielen Open-Source Web-Anwendungen oft bereits mitgeliefert werden, um z.B. die URL&#8217;s für Suchmaschinen zu optimieren. Bei WordPress wird diese Funktion über die sogenannte &#8220;Permalink [...]]]></description>
			<content:encoded><![CDATA[<p>Ich nutze schon seit langem keinen Apache Webserver mehr, sondern <a href="http://www.lighttpd.net/">lighttpd</a>, da dieser schlank und performant ist. Einziger Nachteil ist in meinen Augen die fehlende Kompatibilität zu &#8220;.htaccess&#8221; Dateien, die bei vielen Open-Source Web-Anwendungen oft bereits mitgeliefert werden, um z.B. die URL&#8217;s für Suchmaschinen zu optimieren. Bei WordPress wird diese Funktion über die sogenannte &#8220;Permalink Struktur&#8221; realisiert. Einfach erklärt: Mittels URL rewrite wird eine eigentlich nicht existente URL trotzdem an die Web-Anwendung übergeben, ohne einen 404 Status Header zu senden. WordPress kann den passenden Inhalt dann anhand der definierten Permalink Struktur laden und anzeigen. Diese Funktionalität wollte ich bei keinem meiner Blogs missen und kann glücklicherweise auch recht einfach für lighttpd umgesetzt werden.<span id="more-355"></span></p>
<p>Lighttpd bietet hierfür die Möglichkeit in einem virtuellen Host eine URL rewrite Regel zu definieren. Im VHost von thegeek.de sieht das z.B. so aus:</p>
<pre class="brush:plain">
# Auszug aus dem thegeek.de VHost
$HTTP["host"] =~ "(^www\.thegeek\.de)|(^thegeek\.de)" {
	url.rewrite =	(
				"^(/gallery/|/wp-.*|/xmlrpc\.php|/robots\.txt|/sitemap\.xml|.*\?album=[0-9]+&#038;gallery=[0-9]+|.*\?p=[0-9]+|.*\?cat=[0-9]+|.*\?feed=|.*\?s=).*$" => "$0",
				"^" => "index.php"
			)
}
</pre>
<p>Die erste Regel greift bei den URL-Parametern des NextGen Gallery Plugins, den WordPress internen Verzeichnissen und Parametern, der Google-Sitemap, der robots.txt, sowie der XML-RPC und Feed Schnittstelle. Trifft die Regel zu, wird die URL auf keinen Fall umgeschrieben und so wie sie ist weitergegeben. Dies ist absolut notwendig, denn sonst würde z.B. &#8220;thegeek.de/wp-admin&#8221; auch umgeleitet und das Backend könnte nicht mehr aufgerufen werden.</p>
<p>Die zweite Regel leitet alle restlichen URL&#8217;s zur Index Datei von WordPress um, welche die URL dann interpretieren kann, um anhand der Permalink Struktur den richtigen Inhalt zu finden.</p>
<p>Im Grunde recht einfach und vorallem: Es funktioniert prima.</p>
<p><a href="http://flattr.com/thing/331574/WordPress-und-lighttpd-Permalinks-mit-URL-rewriting" target="_blank"><br />
<img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://thegeek.de/wordpress-und-lighttpd-permalinks-mit-url-rewriting/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SVN per PHP bedienen</title>
		<link>http://thegeek.de/svn-per-php-bedienen</link>
		<comments>http://thegeek.de/svn-per-php-bedienen#comments</comments>
		<pubDate>Mon, 26 Oct 2009 17:51:33 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://thegeek.de/?p=240</guid>
		<description><![CDATA[Da ich ja einige WordPress Plugins entwickele und ich mir die Zusammenarbeit mit dem WP SVN Server erleichtern wollte, habe ich für alle Plugins ein kleines PHP Script geschrieben, welche die Änderungen im SVN eincheckt. Klar ginge das auch über ein Shell-Script, aber die PHP Datei kann ich nicht nur auf der Konsole, sondern auch [...]]]></description>
			<content:encoded><![CDATA[<p>Da ich ja einige WordPress Plugins entwickele und ich mir die Zusammenarbeit mit dem WP SVN Server erleichtern wollte, habe ich für alle Plugins ein kleines PHP Script geschrieben, welche die Änderungen im SVN eincheckt. Klar ginge das auch über ein Shell-Script, aber die PHP Datei kann ich nicht nur auf der Konsole, sondern auch über den Browser aufrufen &#8211; manchmal ganz praktisch.</p>
<p>Wenn ich an einem Plugin also nur kleine Änderungen gemacht habe, die ich eben schnell ins Repository schubsen will, dann kopiere ich die geänderten Dateien einfach in den trunk, erhöhe die Version im SVN Script und rufe dieses anschließend auf. Die neue Version wird dann eingecheckt und der neue tag erstellt.</p>
<pre class="brush:php">
&lt;?php
	// Config
	$plugin_src	= '/home/www/example/src/article2pdf/';
	$svn_home	= '/home/www/example/src/article2pdf/svn/article2pdf/';
	$svn_trunk	= '/home/www/example/src/article2pdf/svn/article2pdf/trunk/';
	$svn_tags	= '/home/www/example/src/article2pdf/svn/article2pdf/tags/';
	$svn_user	= 'the_user';
	$svn_passwd	= 'the_password';

	// Version values
	$version	= '0.27';
	$message	= 'Adding some new functions.';

	// Set home for svn, important, or svn will not work!
	putenv( "HOME=$svn_home" );

	// Up
	echo passthru( "cd $svn_home ; svn up", $ret );
	if( $ret === 0 )
	{
		// Stat
		echo passthru( "cd $svn_home ; svn stat", $ret );
		if( $ret === 0 )
		{
			// Check in trunk
			echo passthru( "cd $svn_home ; svn ci --username $svn_user --password $svn_passwd -m '$message'", $ret );
			if( $ret === 0 )
			{
				// Copy new version to tag
				echo passthru( "cd $svn_home ; svn cp trunk tags/$version", $ret );
				if( $ret === 0 )
				{
					// Stat and check in new version
					echo passthru( "cd $svn_home ; svn stat", $ret );
					echo passthru( "cd $svn_home ; svn ci --username $svn_user --password $svn_passwd -m 'Tagging $version'", $ret );
				}
			}
		}
	}
?&gt;
</pre>
<p>Wichtig ist per putenv das HOME-Verzeichnis auf den Pfad zum SVN Verzeichnis zu setzen, da SVN über PHP sonst nicht funktioniert. SVN braucht zwingend im Environment eine passende HOME-Angabe. Diese Umgebungsvariable scheint aber standardmäßig von PHP nicht gesetzt zu sein.</p>
]]></content:encoded>
			<wfw:commentRss>http://thegeek.de/svn-per-php-bedienen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

