<?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>instant-thinking.de &#187; mirror</title>
	<atom:link href="http://instant-thinking.de/tag/mirror/feed/" rel="self" type="application/rss+xml" />
	<link>http://instant-thinking.de</link>
	<description>Just enough to get you started and leave you confused</description>
	<lastBuildDate>Thu, 26 Jan 2012 15:02:31 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>QuickLinks vom 29. Januar bis zum 2. Februar</title>
		<link>http://instant-thinking.de/2010/02/02/quicklinks-vom-29-januar-bis-zum-2-februar/</link>
		<comments>http://instant-thinking.de/2010/02/02/quicklinks-vom-29-januar-bis-zum-2-februar/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 08:00:05 +0000</pubDate>
		<dc:creator>der Dennis</dc:creator>
				<category><![CDATA[]]></category>
		<category><![CDATA[7]]></category>
		<category><![CDATA[artwork]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[gtd]]></category>
		<category><![CDATA[house]]></category>
		<category><![CDATA[ikea]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mail.app]]></category>
		<category><![CDATA[mathe]]></category>
		<category><![CDATA[mirror]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[plan]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[shareware]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[unattended]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[visualization]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[xp]]></category>
		<category><![CDATA[_why]]></category>

		<guid isPermaLink="false">http://instant-thinking.de/?p=2114</guid>
		<description><![CDATA[Meine delicious.com-Links vom 29. Januar bis zum 2. Februar: Rocketbox &#8211; is a powerful, new way of searching your e-mail in Apple Mail.app. $14,95. Springer LaTeX Search Beta &#8211; lets you search through over 1,096,133 LaTeX code snippets to find the equation you need. _why&#39;s Estate &#8211; Everything _why has published on the internet should [...]]]></description>
			<content:encoded><![CDATA[<p>Meine <a href="http://delicious.com/der_dennis" class="lidelicious">delicious.com-Links</a> vom 29. Januar bis zum 2. Februar:</p>

<ul>
<li><a href="http://www.getrocketbox.com/" class="liexternal">Rocketbox</a> &#8211; is a powerful, new way of searching your e-mail in Apple Mail.app. $14,95.</li>
<li><a href="http://www.latexsearch.com/LatexTool/" class="liexternal">Springer LaTeX Search Beta</a> &#8211; lets you search through over 1,096,133 LaTeX code snippets to find the equation you need.</li>
<li><a href="http://viewsourcecode.org/why/" class="liexternal">_why&#39;s Estate</a> &#8211; Everything _why has published on the internet should be accessible from here. It works sort of like a museum that sells maps. Many of his abandoned writings are mirrored locally here, and everything else is through external links.</li>
<li><a href="http://dragonfly.autodesk.com/home" class="liexternal">Autodesk Project Dragonfly</a> &#8211; Free Home Design Software &#8211; Think the Sims without any Sims&#8230;</li>
<li><a href="http://ninite.com/" class="liexternal">Ninite Easy PC Setup</a> &#8211; installs software fast with default settings and
says &quot;no&quot; to browser toolbars and other junk.

runs on Windows XP/Vista/7 and works in the
background unattended and 100% hands-free.</li>

</ul>
]]></content:encoded>
			<wfw:commentRss>http://instant-thinking.de/2010/02/02/quicklinks-vom-29-januar-bis-zum-2-februar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QuickLinks vom 7. Oktober bis zum 15. Oktober</title>
		<link>http://instant-thinking.de/2009/10/15/quicklinks-vom-7-oktober-bis-zum-15-oktober/</link>
		<comments>http://instant-thinking.de/2009/10/15/quicklinks-vom-7-oktober-bis-zum-15-oktober/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 09:00:04 +0000</pubDate>
		<dc:creator>der Dennis</dc:creator>
				<category><![CDATA[]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[adressbook]]></category>
		<category><![CDATA[airport]]></category>
		<category><![CDATA[bavaria]]></category>
		<category><![CDATA[beer]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[diff]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[festival]]></category>
		<category><![CDATA[fritzbox]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hdr]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[inotify]]></category>
		<category><![CDATA[iphoto]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[literature]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mirror]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[nas]]></category>
		<category><![CDATA[ocr]]></category>
		<category><![CDATA[oktoberfest]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[party]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[san]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[stream]]></category>
		<category><![CDATA[sync]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[telephone]]></category>
		<category><![CDATA[typo]]></category>
		<category><![CDATA[typography]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[vcs]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://instant-thinking.de/?p=2002</guid>
		<description><![CDATA[Meine delicious.com-Links vom 7. Oktober bis zum 15. Oktober: Openfiler &#8212; Openfiler &#8211; Open Source Storage Management Appliance &#8211; is a network storage operating system, fronted by a web based management user interface. With the features we built into Openfiler, you can take advantage of file-based Network Attached Storage and block-based Storage Area Networking functionality [...]]]></description>
			<content:encoded><![CDATA[<p>Meine <a href="http://delicious.com/der_dennis" class="lidelicious">delicious.com-Links</a> vom 7. Oktober bis zum 15. Oktober:</p>

<ul>
<li><a href="http://www.openfiler.com/" class="liexternal">Openfiler &mdash; Openfiler &#8211; Open Source Storage Management Appliance</a> &#8211; is a network storage operating system, fronted by a web based management user interface. With the features we built into Openfiler, you can take advantage of file-based Network Attached Storage and block-based Storage Area Networking functionality in a single cohesive framework.</li>
<li><a href="http://rubyforge.org/projects/raop/" class="liexternal">RAOP Client</a> &#8211; is an Airport Express client written in ruby. It allows you to stream music to an Airport Express from Ruby.</li>
<li><a href="http://detexify.kirelabs.org/classify.html" class="liexternal">Detexify</a> &#8211; LaTeX handwritten symbol recognition</li>
<li><a href="http://www.ohanaware.com/hdrtist/" class="liexternal">HDRtist</a> &#8211; Free and easy to use HDR-Software for Mac OS X</li>
<li><a href="http://code.google.com/p/lsyncd/" class="liexternal">lsyncd</a> &#8211; uses rsync to synchronize local directories with a remote machine running rsyncd. Lsyncd watches multiple directories trees through inotify. The first step after adding the watches is to rsync all directories with the remote host, and then sync single file by collecting the inotify events. So lsyncd is a light-weight live mirror solution that should be easy to install and use while blending well with your system.</li>
<li><a href="http://github.com/sebastien/sink" class="liexternal">sink</a> &#8211; is a tool that allows you to compare multiple directories, take snapshots
of their state, and compare the states. It also provides commands to create
logical links between files to do micro changes management.</li>
<li><a href="http://howto.wired.com/wiki/Oktoberfest_Etiquette" class="liexternal">Oktoberfest Etiquette</a> &#8211; Surviving the Oktoberfest from an US-perspective&#8230; Might come in handy&#8230;</li>
<li><a href="http://nexem.info/nexem-dev/" class="liexternal">Frizzix</a> &#8211; ist ein kostenloser FritzBox Anrufmonitor und Anrufmanager f&uuml;r Mac OS X.
Frizzix zeigt ein- und ausgehende Anrufe, die &uuml;ber eine Fritz!Box gef&uuml;hrt werden, sowie die integrierte Anrufliste der FritzBox bequem auf dem Mac an.</li>
<li><a href="http://googlebookdownloader.codeplex.com/" class="liexternal">Google Book Downloader</a> &#8211; is small utility which allows you to save books as PDF from google to your local filesystem.</li>

</ul>
]]></content:encoded>
			<wfw:commentRss>http://instant-thinking.de/2009/10/15/quicklinks-vom-7-oktober-bis-zum-15-oktober/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QuickLinks vom 17. Juni bis zum 2. Juli</title>
		<link>http://instant-thinking.de/2009/07/02/quicklinks-vom-17-juni-bis-zum-2-juli/</link>
		<comments>http://instant-thinking.de/2009/07/02/quicklinks-vom-17-juni-bis-zum-2-juli/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 11:00:03 +0000</pubDate>
		<dc:creator>der Dennis</dc:creator>
				<category><![CDATA[]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[chuck_norris]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[geotag]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[mirror]]></category>
		<category><![CDATA[mta]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[netbook]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[opml]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[typography]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://instant-thinking.de/?p=1800</guid>
		<description><![CDATA[Meine delicious.com-Links vom 17. Juni bis zum 2. Juli: Anonymous Pro &#8211; is a family of four fixed-width fonts designed especially with coding in mind. Characters that could be mistaken for one another (O, 0, I, l, 1, etc.) have distinct shapes to make them easier to tell apart in the context of source code. [...]]]></description>
			<content:encoded><![CDATA[<p>Meine <a href="http://delicious.com/der_dennis" class="lidelicious">delicious.com-Links</a> vom 17. Juni bis zum 2. Juli:</p>

<ul>
<li><a href="http://www.ms-studio.com/FontSales/anonymouspro.html" class="liexternal">Anonymous Pro</a> &#8211; is a family of four fixed-width fonts designed especially with coding in mind. Characters that could be mistaken for one another (O, 0, I, l, 1, etc.) have distinct shapes to make them easier to tell apart in the context of source code.</li>
<li><a href="http://ditchnet.org/httpclient/" class="liexternal">HTTP Client</a> &#8211; A Mac OS X Leopard developer tool for debugging HTTP services by graphically creating &amp; inspecting complex HTTP messages.</li>
<li><a href="http://times.debian.net/1327" class="liexternal">nullmailer</a> &#8211; is a minimal MTA that provides mail delivery services to programs in a host that otherwise does not require a full MTA like Exim or Postfix.</li>
<li><a href="http://feedafever.com/" class="liexternal">Fever</a> &#8211; Very stylish feedreader to be hosted on own server. $30,00</li>
<li><a href="http://www.mobilewikiserver.com/Welcome.html" class="liexternal">Mobile Wiki Server</a> &#8211; This mobile Wiki server is a fully functional Wiki hosted on your iPhone, or iPod touch</li>
<li><a href="http://code.google.com/p/wordpress-geo-mashup/" class="liexternal">wordpress-geo-mashup</a> &#8211; Make WordPress into a GeoCMS. Include Google maps in posts and pages, and map posts and pages on global maps.</li>
<li><a href="http://www.bastian.name/2006/02/abkrzungsverzeichnis-und-glossar.html" class="liexternal">Abk&uuml;rzungsverzeichnis und Glossar zusammen mit LaTeX</a> &#8211; </li>
<li><a href="http://www.tripwiremagazine.com/news/news/extensive-wordpress-2-8-getting-started-guide.html" class="liexternal">Extensive WordPress 2.8 Getting Started Guide</a> &#8211; Essential reading.</li>
<li><a href="http://www.codesqueeze.com/the-ultimate-top-25-chuck-norris-the-programmer-jokes/" class="liexternal">The Ultimate Top 25 Chuck Norris &ldquo;The Programmer&rdquo; Jokes</a> &#8211; </li>
<li><a href="http://moblin.org/" class="liexternal">moblin.org</a> &#8211; Netbook centric Linux distri by Intel&#8230;</li>

</ul>
]]></content:encoded>
			<wfw:commentRss>http://instant-thinking.de/2009/07/02/quicklinks-vom-17-juni-bis-zum-2-juli/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lokaler WordPress Mirror</title>
		<link>http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/</link>
		<comments>http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 23:04:21 +0000</pubDate>
		<dc:creator>der Dennis</dc:creator>
				<category><![CDATA[]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[instant-thinking.de]]></category>
		<category><![CDATA[mirror]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://instant-thinking.de/?p=1223</guid>
		<description><![CDATA[Es gibt einige gute Gr&#252;nde einen lokalen Mirror des eigenen Blogs zu erstellen. Eine nicht abschliessende Liste umfasst: Man kann nach Herzenslust an Themes, PlugIns und anderen Plumbing Bestandteilen der Website herumschrauben ohne dass die Besucher nur krude Fehlermeldungen zu sehen bekommen. Ein Live-Backup von dem man weiss dass es lauff&#228;hig ist kann man mit [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt einige gute Gr&#252;nde einen lokalen Mirror des eigenen Blogs zu erstellen. Eine nicht abschliessende Liste umfasst:</p>

<ul>
<li>Man kann nach Herzenslust an Themes, PlugIns und anderen <em>Plumbing</em> Bestandteilen der Website herumschrauben ohne dass die Besucher nur krude Fehlermeldungen zu sehen bekommen.</li>
<li>Ein Live-Backup von dem man <em>weiss</em> dass es lauff&#228;hig ist kann man mit Geld gar nicht bezahlen</li>
<li><del datetime="2008-08-01T07:56:56+00:00">Billige</del> G&#252;nstige Hoster<sup><a href="http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#footnote_0_1223" id="identifier_0_1223" class="footnote-link footnote-identifier-link" title="meiner zum Beispiel">1</a></sup> legen ihren Usern manchmal nervige Steine in den Weg wenn es um Performance geht. Die Laufzeit f&#252;r PHP-Scripte ist begrenzt, CPU-Zeit wird beschr&#228;nkt, Hauptspeicher ist nicht unendlich vorhanden, etc.</li>
</ul>

<p>Bei mir war gerade der dritte Punkt das Problem, denn durch diese Beschr&#228;nkungen konnte ich nach dem <a href="http://instant-thinking.de/2008/07/29/welcome-to-26/" class="liinternal">Update auf WordPress 2.6</a> leider meine alten <a href="http://sw-guide.de/wordpress/plugins/simple-tagging/" class="liexternal">SimpleTagging Tags</a> nicht in <a href="http://codex.wordpress.org/Version_2.3#Tagging" class="liwp">native WordPress Tags</a> <a href="http://wordpress.org/extend/plugins/simple-tagging-import/" class="liwp">umwandeln</a>.</p>

<p><a href="http://twitter.com/der_Dennis/statuses/870514656" class="liexternal">3651 tag to post relationships</a> waren einfach <em>too much</em> f&#252;r mein shared hosting Paket&#8230;</p>

<p>Der Plan war also, die Dateien und die Datenbank aus dem letzten Backup<sup><a href="http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#footnote_1_1223" id="identifier_1_1223" class="footnote-link footnote-identifier-link" title="Das Backup l&auml;uft jede Nacht, einmal war es bisher dringend n&ouml;tig&hellip;">2</a></sup> zu kopieren und lokal auf dem MacBook zu installieren. Dort dann ohne jede CPU- oder RAM-Beschr&#228;nkung die Konvertierung der Tags durchf&#252;hren und die fertig konvertierte lokale Datenbank wieder zu dumpen und live auf instant-thinking.de zu stellen.</p>

<p>Danach w&#228;re es ja nicht schlecht die Mirror-Erstellung zu automatisieren, um eine st&#228;ndig aktuelle lokale Testumgebung zu haben. Vielleicht k&#246;nnte man diese<sup><a href="http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#footnote_2_1223" id="identifier_2_1223" class="footnote-link footnote-identifier-link" title="dann aber nicht auf dem MacBook und eine entsprechende DNS-Konfiguration vorausgesetzt">3</a></sup> auch als Fallback einsetzen wenn die live Site mal offline gehen sollte&#8230;</p>

<p>Aber eins nach dem anderen&#8230;</p>

<p><strong>Vorraussetzungen</strong></p>

<ul>
<li>Ein Mac unter OS X 10.5<sup><a href="http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#footnote_3_1223" id="identifier_3_1223" class="footnote-link footnote-identifier-link" title="aber mit einigen kleinen Anpassungen sollte das hier auch auf anderen unixoiden Betriebssystemen laufen">4</a></sup></li>
<li>Apache Webserver mit aktiviertem PHP und MySQL Datenbankserver</li>
<li>Shell-Kenntnisse sind von Vorteil, aber eigentlich sollte das auch mit der Anpassung einiger Variablen per Copy &amp; Paste gehen</li>
</ul>

<p>Nach dem Klick gehts los&#8230;</p>

<p><strong>PHP aktivieren</strong></p>

<p>Auf dem MacBook brauchen wir zun&#228;chst einen laufenden Webserver mit PHP. Den Webserver liefert Apple dankenswerterweise bereits mit, PHP ist allerdings nicht aktiviert.</p>

<p>Um die PHP-Unterst&#252;tzung f&#252;r Apache unter Mac OS X 10.5 zu aktivieren, gen&#252;gt es in der Datei <code>/etc/apache2/httpd.conf</code> die Raute am Anfang der Zeile</p>

<p><code class="prettyprint">
&#35;LoadModule php5_module        libexec/apache2/libphp5.so
</code></p>

<p>zu entfernen.</p>

<p><img src="http://img.skitch.com/20080801-rh8xm98uwguh8qb2gq1ks3b1iu.jpg" alt="Sharing"/ class="right">Danach (re)startet man den Webserver. Dazu entweder in den Systemeinstellungen unter Sharing den Haken vor Web-Sharing setzen<sup><a href="http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#footnote_4_1223" id="identifier_4_1223" class="footnote-link footnote-identifier-link" title="bzw. entfernen und neu setzen um neu zu starten">5</a></sup> oder den Apache direkt aus der Shell mit <code>sudo apachectl start</code> starten. Der Neustart gelingt mit <code>restart</code> anstelle von <code>start</code>.</p>

<p>Um die PHP-Unterst&#252;tzung zu testen erstellt man eine Datei namens <code>info.php</code> in dem Ordner <em>Websites</em><sup><a href="http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#footnote_5_1223" id="identifier_5_1223" class="footnote-link footnote-identifier-link" title="Nur Sites in der Shell">6</a></sup> im Home-Verzeichnis und f&#252;llt sie mit der einzelnen Zeile:</p>

<p><code class="prettyprint">
&lt; ? php phpinfo(); ?>
</code></p>

<p>Danach l&#228;sst sich eine Seite mit detaillierten Informationen &#252;ber die PHP Installation unter der Adresse  <a href="http://localhost/~dennis/info.php" class="liexternal">http://localhost/~dennis/info.php</a><sup><a href="http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#footnote_6_1223" id="identifier_6_1223" class="footnote-link footnote-identifier-link" title="&ldquo;dennis&rdquo; ist nat&uuml;rlich mit dem eigenen Usernamen zu ersetzen">7</a></sup> aufrufen. Die sollte ungef&#228;hr so aussehen:</p>

<p><a href="http://img.skitch.com/20080809-etdx7n6dkq4d27nxfy8qpibim6.jpg" rel="lightbox" class="liimagelink"><img src="http://img.skitch.com/20080809-etdx7n6dkq4d27nxfy8qpibim6.jpg" alt="phpinfo()" class="center" width="400"/></a></p>

<p><strong>Mirror Addresse und VirtualHost Konfiguration</strong></p>

<p>Damit der Mirror unter einem bequemen Namen zu erreichen ist konfigurieren wir einen neuen Hostnamen inklusive neuer Top Level Domain und einen passenden VirtualHost f&#252;r den Apache Webserver.</p>

<p>In der Datei <code>/etc/hosts</code> wird am Ende einfach unser neuer Name f&#252;r den lokalen Host eingetragen:</p>

<p><code class="prettyprint">
&#35;#
&#35; Host Database
&#35;
&#35; localhost is used to configure the loopback interface
&#35; when the system is booting.  Do not change this entry.
&#35;#
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost
127.0.0.1   instant-thinking.mirror
</code></p>

<p>Ich habe den Mirror aus offensichtlichen Gr&#252;nden <code>instant-thinking.mirror</code> genannt. Hier kann man aber prinzipiell alles nehmen was einem einf&#228;llt, man sollte nur keine existierende Top Level Domain nehmen, auch <code>.local</code> ist keine gute Idee denn dar&#252;ber wickelt Apple sein <a href="http://www.apple.com/de/macosx/technology/bonjour.html" class="liexternal">Bonjour</a> ab&#8230;</p>

<p>Der gew&#252;nscht Name sollte jetzt im Terminal pingbar sein:</p>

<p><code class="prettyprint">
~ > ping instant-thinking.mirror
PING instant-thinking.mirror (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.139 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.438 ms
...
</code></p>

<p>Ausserdem wird ein neues DocumentRoot Verzeichnis angelegt:</p>

<p><code>mkdir /Users/dennis/Sites/instant-thinking.mirror</code></p>

<p>In diesem landen sp&#228;ter alle WordPress-Dateien aus der Original-Installation.</p>

<p>Als n&#228;chstes wird die Mirror-Adresse als virtueller Host in Apache konfiguriert. Anstelle der Hauptkonfigurationsdatei <code>httpd.conf</code> kann man unter OS X auch seine Userdatei anpassen. Das macht die Anpassungen sch&#246;n &#252;bersichtlich. Bei mir ist das die Datei <code>/etc/apache2/users/dennis.conf</code>. Dieser sollte man folgendes hinzuf&#252;gen:</p>

<p><code class="prettyprint">
NameVirtualHost *:80
&lt;VirtualHost *&gt;
    DocumentRoot /Users/dennis/Sites/instant-thinking.mirror
    ServerName instant-thinking.mirror
    &lt;Directory "/Users/dennis/Sites/instant-thinking.mirror"&gt;
        Options FollowSymLinks
        AllowOverride All
    &lt;/Directory&gt;
&lt;/VirtualHost&gt;
</code></p>

<p>Die Pfade und Namen muss man nat&#252;rlich wieder an die eigenen Gegebenheiten anpassen. Nach einem erneuten Apache Restart sind die Konfigurations&#228;nderungen &#252;bernommen.</p>

<p>Jetzt kann man im Prinzip schon alle WordPress Dateien von der Live Website in den DocumentRoot Ordner des Mirrors kopieren. Wie man das am liebsten macht ist eigentlich egal, ich nutze daf&#252;r <code>rsync</code>. Das hat bei der sp&#228;teren Automatisierung den Vorteil, dass nicht immer alles kopiert werden muss, sonder nur neue und ge&#228;nderte Daten. FTP, <code>scp</code> oder sonstige Methoden funktionieren aber auch.</p>

<p><code>rsync -avz --delete instant-thinking.de:./www/instant-thinking/ ~/Sites/instant-thinking.mirror/</code></p>

<p>Sobald die Dateien alle kopiert sind, kann man statische Seiten auf dem Mirror testen. So sollte die WordPress Readme bereits unter <a href="http://instant-thinking.mirror/readme.html" class="liexternal">http://instant-thinking.mirror/readme.html</a> erreichbar sein. F&#252;r die Inhalte aus der Datenbank ben&#246;tigen wir noch MySQL.</p>

<p><strong>MySQL installieren und konfigurieren</strong></p>

<p>Als erstes l&#228;dt man sich den aktuellen MySQL-Community Server von der <a href="http://dev.mysql.com/downloads/" class="liexternal">Download-Seite</a>. Ich habe hier f&#252;r mein MacBook die Version 5.0.67 f&#252;r Mac OS X 10.5 (x86) verwendet<sup><a href="http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#footnote_7_1223" id="identifier_7_1223" class="footnote-link footnote-identifier-link" title="Ausserdem hatte ich das Vorgehen auch auf dem Cube getestet. Da es keinen Installer f&uuml;r 10.5 und PowerPC gibt habe ich das 10.4er PowerPC-Paket verwendet, klappte auch gut.">8</a></sup>. Von dem DiskImage installiert man den Server, das Startup Item und die PrefPane. In letzterer kann man dann auch den automatischen Start des MySQL-Servers einschalten. Bei mir klappt das ganz hervorragend, die unten erw&#228;hnten Quellen sprechen von Problemen und bieten L&#246;sungen an, <a href="http://www.urbandictionary.com/define.php?term=YMMV" class="liexternal">YMMV</a>.</p>

<p>Wenn das erledigt ist kann man die verschiedenen MySQL-Binaries zu seinem <code>$PATH</code> hinzuf&#252;gen um sp&#228;ter bequemen Zugriff darauf zu haben. Die Binaries leben in <code>/usr/local/mysql/bin</code>. In meiner <code>~/.bash_profile</code> schaut die entsprechende Zeile so aus:</p>

<p><code class="prettyprint">export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin:$PATH </code></p>

<p>Ein frisch installiertes MySQL ist nicht sonderlich sicher konfiguriert. Um diesem Umstand abzuhelfen tippt man nun <code>mysql_secure_installation</code> in ein Terminal. Dort kann man dann das Passwort f&#252;r den MySQL-root setzen, remote root Zugriffe abschalten und die Test-Datenbanken entfernen.</p>

<p>Nachdem das erledigt ist loggt man sich mit dem neuen root-Passwort in der MySQL-Shell ein und erstellt eine Datenbank nebst User f&#252;r den WordPress-Mirror:</p>

<p><code class="prettyprint">
~ > mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.0.67 MySQL Community Server (GPL)</p>

<p>Type 'help;' or '\h' for help. Type '\c' to clear the buffer.</p>

<p>mysql> CREATE database wp_mirror;
Query OK, 1 row affected (0.00 sec)</p>

<p>mysql> CREATE user wp_mirror_user@localhost;
Query OK, 0 rows affected (0.00 sec)</p>

<p>mysql> SET PASSWORD FOR 'wp_mirror_user'@'localhost' = PASSWORD('passwort');
Query OK, 0 rows affected (0.00 sec)</p>

<p>mysql> GRANT ALL ON wp_mirror.* TO wp_mirror_user@localhost;
Query OK, 0 rows affected (0.00 sec)</p>

<p>mysql> 
</code></p>

<p>In der letzten Zeile werden dem User <code>wp_mirror_user</code> alle Rechte an allen Tabellen (<code>.*</code>) in der Datenbank <code>wp_mirror</code> gew&#228;hrt.</p>

<p>Die Namen f&#252;r die Datenbank und den User kann man nat&#252;rlich frei w&#228;hlen und das Passwort sollte auch nicht <em>unbedingt</em> &#8220;passwort&#8221; sein&#8230;</p>

<p>Jetzt m&#252;ssen wir die Mirror-Datenbank noch mit den Daten der Live-Site f&#252;llen. Ich nutze dazu den Befehl <code>mysqldump</code>. Bei anderen Providern hat man eventuell keinen direkten MySQL- oder ssh-Zugriff, aber irgendwie<sup><a href="http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#footnote_8_1223" id="identifier_8_1223" class="footnote-link footnote-identifier-link" title="Oft ist das Mittel der Wahl phpMyAdmin">9</a></sup> kommt man sicher an eine <code>.sql</code> Datei mit dem Datenbankinhalt.</p>

<p>Bei mir schaut das so aus:</p>

<p><code class="prettyprint">~ > mysqldump --default-character-set=latin1 -hmysqlhost.1blu.de -ubenutzer -ppasswort -f -v instant-thinking-db --lock-tables=false > instant-thinking_backup.sql</code></p>

<p>Wenn man die sql-Datei heruntergeladen hat f&#252;ttert man die Mirror-Datenbak mit deren Inhalt:</p>

<p><code class="prettyprint">~ > mysql -uwp_mirror_user -p wp_mirror &lt; instant-thinking_backup.sql</code></p>

<p>Hier erhielt ich den folgenden Fehler:</p>

<p><code class="prettyprint">ERROR 1153 (08S01) at line 349: Got a packet bigger than 'max_allowed_packet' bytes
</code></p>

<p>Nach diesen beiden &#196;nderungen in der MySQL-Shell trat der Fehler dann nicht mehr auf.</p>

<p><code class="prettyprint">
mysql> set global max_allowed_packet=1000000000; 
mysql> set global net_buffer_length=1000000; 
</code></p>

<p>Als letztes muss jetzt noch ein kleines Missverst&#228;ndniss zwischen PHP und MySQL beigelegt werden. Die beiden sind sich nicht einig wo die Datei f&#252;r die MySQL-Socket-Verbindung liegen soll. Um Fehlern bei der Datenbankanbindung vorzubeugen, erstellen wir einen Symlink:</p>

<p><code class="prettyprint">
~ > sudo mkdir /var/mysql
~ > sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
</code></p>

<p>So ist es egal welcher von beiden Sockets angesprochen wird.</p>

<p><strong>WordPress konfigurieren</strong></p>

<p>Da die lokale Datenbankkonfiguration bei mir von der Live Site abweicht, wird die <code>wp-config.php</code> bearbeitet um die lokalen Verh&#228;ltnisse wiederzugeben. Wenn man auch auf dem Server im Netz <code>localhost</code> benutzt und User, Passwort und Datenbankname ebenfalls identisch sind kann man diesen Schritt auch &#252;berspringen.</p>

<p><code class="prettyprint">
// ** MySQL settings ** //
define('DB_NAME', 'wp_mirror');<br />
define('DB_USER', 'wp_mirror_user');<br />
define('DB_PASSWORD', 'passwort'); 
define('DB_HOST', 'localhost');
</code></p>

<p>Als letztes m&#252;ssen zwei Optionen in der MySQL Datenbank auf die Mirror-URL abge&#228;ndert werden. Das erledigt man entweder per <a href="http://cocoamysql.sourceforge.net/" class="liexternal">CocoaMySQL</a><sup><a href="http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#footnote_9_1223" id="identifier_9_1223" class="footnote-link footnote-identifier-link" title="F&uuml;r MySQL Version 4.1 oder neuer braucht man eine Beta-Version von CocoaMySQL">10</a></sup> oder einfach direkt auf der MySQL Shell.</p>

<p>Hier sind beide M&#246;glichkeiten aufgef&#252;hrt. Letztlich ist es wichtig das in der Tabelle <code>wp_options</code> die Werte f&#252;r <code>home</code> und <code>site_url</code> auf die Mirror-Adresse ge&#228;ndert werden.</p>

<p><a href="http://img.skitch.com/20080927-j5w8nj2wa6q89bxc9naqtk3g1q.jpg" rel="lightbox" class="liimagelink"><img src="http://img.skitch.com/20080927-j5w8nj2wa6q89bxc9naqtk3g1q.jpg" class="center" width="400" alt="cocoaMySQL change url"/></a></p>

<p><code class="prettyprint">mysql> USE wp_mirror
Database changed
mysql> UPDATE wp_options SET option_value = "http://instant-thinking.mirror" WHERE option_name = "siteurl" OR option_name = "home";</code></p>

<p><strong>Fertig</strong></p>

<p>Das wars, unter der Mirror-URL ist jetzt eine aktuelle Kopie der eigenen WordPress Installation erreichbar.</p>

<p><strong>Automatisierung</strong></p>

<p>Um das ganze zu automatisieren gibt es einige M&#246;glichkeiten. Ich habe ein Shell-Script geschrieben das sich recht gut an verschiedene Gegebenheiten anpassen lassen sollte:</p>

<p><code class="prettyprint">
&#35;!/bin/sh</p>

<p>&#35; Remote Variables
SITE_TO_MIRROR=instant-thinking.de:./www/instant-thinking/</p>

<p>MYSQL_HOST=mysql.host.de
MYSQL_USER=username
MYSQL_PW=passwort
MYSQL_DB=datenbank
MYSQL_DUMP=wordpress_dump.sql</p>

<p>&#35; Local Variables
TEMP_DIR=/tmp</p>

<p>LOCAL_MIRROR=~/Sites/instant-thinking.mirror/
LOCAL_MIRROR_URL=http://instant-thinking.mirror</p>

<p>LOCAL_MYSQL_DB=wp_mirror
LOCAL_MYSQL_USER=wp_mirror_user
LOCAL_MYSQL_PW=passwort</p>

<p>&#35; rsync the filesystem to the local directory</p>

<p>rsync -avz --delete $SITE_TO_MIRROR $LOCAL_MIRROR</p>

<p>&#35; Dump the Database to a temporary folder</p>

<p>mysqldump --default-character-set=latin1 -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PW -f -v $MYSQL_DB --lock-tables=false > $TEMP_DIR/$MYSQL_DUMP</p>

<p>&#35; Import the dump into the local database</p>

<p>mysql -u$LOCAL_MYSQL_USER -p$LOCAL_MYSQL_PW $LOCAL_MYSQL_DB &lt; $TEMP_DIR/$MYSQL_DUMP</p>

<p>&#35; Cleanup, remove the tmp-Database</p>

<p>rm $TEMP_DIR/$MYSQL_DUMP</p>

<p>&#35; Replace the Original Values in wp-config.php with the local ones</p>

<p>sed -i '' -e s@$MYSQL_DB@$LOCAL_MYSQL_DB@ -e s@$MYSQL_USER@$LOCAL_MYSQL_USER@ -e s@$MYSQL_PW@$LOCAL_MYSQL_PW@ -e s@$MYSQL_HOST@localhost@ $LOCAL_MIRROR/wp-config.php</p>

<p>&#35; Put the Mirror-Address in the Database</p>

<p>echo 'UPDATE wp_options SET option_value = "http://instant-thinking.mirror" WHERE option_name = "siteurl" OR option_name = "home";' | mysql -u$LOCAL_MYSQL_USER -p$LOCAL_MYSQL_PW $LOCAL_MYSQL_DB
</code></p>

<p>Alle ben&#246;tigten Daten werden oben in die Variablen eingetragen, nur in der letzten MySQL Anweisung ist die URL des Mirrors fest verdrahtet. Ich weiss leider nicht wie ich in dem escapten <code>echo</code> Befehl an die Variable dran komme<sup><a href="http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/#footnote_10_1223" id="identifier_10_1223" class="footnote-link footnote-identifier-link" title="Wenn jemand eine gute Idee hat, nur her damit, dann baue ich da auch noch die Variable ein">11</a></sup>&#8230;</p>

<p>Mit diesem Script kann ich nun nach Belieben eine lokale Kopie meines Blogs erstellen und an Themes, Tags und allem anderen arbeiten ohne dass die werten Leser unter meiner Experimentierwut leiden m&#252;ssen&#8230;</p>

<p><strong>Quellen</strong></p>

<p>Diese Anleitung basiert zum Gro&#223;teil auf den beiden Artikeln <a href="http://codex.wordpress.org/MacOS_X_Local_Mirror" class="liwp">Mac OS X Local Mirror im Codex</a> und  <a href="http://www.sysarchitects.com/node/58" class="liexternal">Installing Drupal on Mac OS X 10.5 Leopard</a>. <em>Thank you very much, guys!</em></p>
<ol class="footnotes"><li id="footnote_0_1223" class="footnote"><a href="https://www.1blu.de/start.php" class="liexternal">meiner</a> zum Beispiel</li><li id="footnote_1_1223" class="footnote">Das Backup l&#228;uft jede Nacht, <a href="http://instant-thinking.de/2008/04/05/instant-thinkingde-downtime/" class="liinternal">einmal</a> war es bisher dringend n&#246;tig&#8230;</li><li id="footnote_2_1223" class="footnote">dann aber nicht auf dem MacBook und eine entsprechende DNS-Konfiguration vorausgesetzt</li><li id="footnote_3_1223" class="footnote">aber mit einigen kleinen Anpassungen sollte das hier auch auf anderen unixoiden Betriebssystemen laufen</li><li id="footnote_4_1223" class="footnote">bzw. entfernen und neu setzen um neu zu starten</li><li id="footnote_5_1223" class="footnote">Nur <code>Sites</code> in der Shell</li><li id="footnote_6_1223" class="footnote">&#8220;dennis&#8221; ist nat&#252;rlich mit dem eigenen Usernamen zu ersetzen</li><li id="footnote_7_1223" class="footnote">Ausserdem hatte ich das Vorgehen auch auf dem Cube getestet. Da es keinen Installer f&#252;r 10.5 und PowerPC gibt habe ich das 10.4er PowerPC-Paket verwendet, klappte auch gut.</li><li id="footnote_8_1223" class="footnote">Oft ist das Mittel der Wahl <a href="http://www.phpmyadmin.net/home_page/index.php" class="liexternal">phpMyAdmin</a></li><li id="footnote_9_1223" class="footnote">F&#252;r MySQL Version 4.1 oder neuer braucht man eine <a href="http://cocoamysql.sourceforge.net/beta.php" class="liexternal">Beta-Version von CocoaMySQL</a></li><li id="footnote_10_1223" class="footnote">Wenn jemand eine gute Idee hat, nur her damit, dann baue ich da auch noch die Variable ein</li></ol>]]></content:encoded>
			<wfw:commentRss>http://instant-thinking.de/2008/09/28/lokaler-wordpress-mirror/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>QuickLinks vom 17. Dezember bis zum 20. Dezember</title>
		<link>http://instant-thinking.de/2007/12/21/quicklinks-vom-17-dezember-bis-zum-20-dezember/</link>
		<comments>http://instant-thinking.de/2007/12/21/quicklinks-vom-17-dezember-bis-zum-20-dezember/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 00:31:10 +0000</pubDate>
		<dc:creator>der Dennis</dc:creator>
				<category><![CDATA[]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[fuse]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[kino]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[mirror]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[ram]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[tarantino]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://instant-thinking.de/2007/12/21/quicklinks-vom-17-dezember-bis-zum-20-dezember/</guid>
		<description><![CDATA[Meine del.icio.us-Links vom 17. Dezember bis zum 20. Dezember: httrack &#8211; is a powerful tool that allows you to download / mirror a website to a local location. IsTwitterDown.com &#8211; Yes or No? KeePassX &#8211; Cross platform secure storage for passwords, urls, usernames and more&#8230; facefuse &#8211; Filesystem FUSE for MacFUSE that supplies an interface [...]]]></description>
			<content:encoded><![CDATA[<p>Meine <a href="http://del.icio.us/der_dennis" class="lidelicious">del.icio.us-Links</a> vom 17. Dezember bis zum 20. Dezember:</p>

<ul>
<li><a href="http://www.httrack.com/" class="liexternal">httrack</a> &#8211; is a powerful tool that allows you to download / mirror a website to a local location.</li>
<li><a href="http://istwitterdown.com/" class="liexternal">IsTwitterDown.com</a> &#8211; Yes or No?</li>
<li><a href="http://www.keepassx.org/" class="liexternal">KeePassX</a> &#8211; Cross platform secure storage for passwords, urls, usernames and more&#8230;</li>
<li><a href="http://code.google.com/p/facefuse/" class="liexternal">facefuse</a> &#8211; Filesystem FUSE for MacFUSE that supplies an interface to Facebook.</li>
<li><a href="http://www.jkrieger.de/tools/latex/tips.html" class="liexternal">LaTeX Tips und Tricks</a> &#8211; </li>
<li><a href="http://wiki.debianforum.de/LinuxSpeichermanagement" class="liexternal">Linux Speichermanagement</a> &#8211; Der Unterschied zwischen Buffers und Caches&#8230;</li>
<li><a href="http://norvig.com/21-days.html?id=344" class="liexternal">Teach Yourself Programming in Ten Years</a> &#8211; </li>
<li><a href="http://www.tarantino.info/wiki/index.php/Kill_Bill_References_Guide" class="liexternal">Kill Bill Volume 1 &amp;2 &#8211; The Tarantino Archives&#8217; ultimate guide to movies that inspired it</a> &#8211; This movie guide lists a wide range of movies that have inspired Kill Bill (both Volumes). This list provides cover/poster images, links to buy them and the information on how they influenced Kill Bill or how those movies are somehow linked to it.</li>
<li><a href="http://www.berthels.co.uk/exmap/" class="liexternal">EXMAP</a> &#8211; is a memory analysis tool which allows you to accurately determine how much physical memory and swap is used by individual processes and shared libraries on a running system.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://instant-thinking.de/2007/12/21/quicklinks-vom-17-dezember-bis-zum-20-dezember/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

