<?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>ROAE-Blog &#187; Tutorial</title>
	<atom:link href="http://blog.root-of-all-evil.com/category/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.root-of-all-evil.com</link>
	<description>Studium, Codeing und Gedachtes</description>
	<lastBuildDate>Mon, 30 Jan 2012 22:58:12 +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>Mac / iPhone / iPad programming ressources list</title>
		<link>http://blog.root-of-all-evil.com/2012/01/iphone-ipad-programming-ressources-list/</link>
		<comments>http://blog.root-of-all-evil.com/2012/01/iphone-ipad-programming-ressources-list/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 22:09:41 +0000</pubDate>
		<dc:creator>Felix</dc:creator>
				<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.root-of-all-evil.com/?p=877</guid>
		<description><![CDATA[<a href="http://blog.root-of-all-evil.com/2012/01/iphone-ipad-programming-ressources-list/" title="Mac / iPhone / iPad programming ressources list"></a>I started to build apps for the iPhone. Here are some ressources which are useful to know. Tutorials Very good video tutorial about iPhone programming from Paul Hegarty (Stanford University) can be found under IPad and iPhone Application Development (SD) &#8230;<p class="read-more"><a href="http://blog.root-of-all-evil.com/2012/01/iphone-ipad-programming-ressources-list/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.root-of-all-evil.com/2012/01/iphone-ipad-programming-ressources-list/" title="Mac / iPhone / iPad programming ressources list"></a><p>I started to build apps for the iPhone. Here are some ressources which are useful to know.</p>
<h1>Tutorials</h1>
<ul>
<li>Very good video tutorial about iPhone programming from Paul Hegarty (Stanford University) can be found under <a href="http://itunes.apple.com/de/itunes-u/ipad-iphone-application-development/id480479762" target="_blank">IPad and iPhone Application Development (SD)</a> on iTuns U.</li>
<li>Video tutorials from video2brain:</li>
<ul>
<li><a href="http://www.video2brain.com/en/products-193.htm#" target="_blank">Getting Started with iOS 5</a></li>
<li><a href="http://www.video2brain.com/en/products-86.htm#" target="_blank">iPhone and iOS Application Development Workshop</a></li>
<li><a href="http://www.video2brain.com/en/products-233.htm?r=1#" target="_blank">iPhone and iOS 5 Advanced App Development</a></li>
</ul>
<li><a href="http://developer.apple.com/videos/" target="_blank">http://developer.apple.com/videos/</a>, developer videos from Apple</li>
<li><a href="http://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40010215" target="_blank">http://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/&#8230;,</a> XCode User Guide from Apple</li>
<li><a href="http://developer.apple.com/library/mac/#documentation/General/Conceptual/Mac101/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010611-CH1-SW1" target="_blank">http://developer.apple.com/library/mac/#documentation/General/Conceptual/Mac101/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40010611-CH1-SW1</a>, Your first Mac APP from Apple</li>
<li><a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ScriptingBridgeConcepts/UsingScriptingBridge/UsingScriptingBridge.html" target="_blank">Scripting Bride Programming Guide</a>, interact with programs on your Mac (e.g. iTunes)</li>
</ul>
<h1>Code snippets</h1>
<ul>
<li><a href="http://blog.rzepus.pl/index.php/cocoa/traybar-status-bar-in-cocoa-nsstatusbar/" target="_blank">TrayBar – Status Bar in Cocoa (NSStatusBar)</a>, get programs into the traybar (Mac OS)</li>
<li><a href="http://stackoverflow.com/questions/412562/execute-a-terminal-command-from-a-cocoa-app" target="_blank">Execute a terminal command from a Cocoa app,</a> code from stackoverflow.com</li>
<li><a href="http://stackoverflow.com/questions/5033266/can-i-receive-a-callback-whenever-an-nspasteboard-is-written-to" target="_blank">Can I receive a callback whenever an NSPasteboard is written to?</a>, information from stackoverflow.com</li>
<li><a href="http://developer.apple.com/library/mac/#qa/qa1134/_index.html" target="_blank">Programmatically causing restart, shutdown and/or logout</a>, Mac OS X Developer Library</li>
<li><a href="http://developer.apple.com/library/mac/navigation/#section=Resource%20Types&amp;topic=Sample%20Code" target="_blank">List of sample code from Apple,</a> Mac OS X Developer Library</li>
</ul>
<h1><span style="line-height: 18px;">Communities</span></h1>
<div>
<ul>
<li><a href="http://www.osxentwicklerforum.de/" target="_blank">http://www.osxentwicklerforum.de/</a></li>
</ul>
</div>
<div></div>
<p>&nbsp;</p>
<p>List will be extended. If you know additional links, post them in the comments, I will add them.</p>
<p>Updates:</p>
<ul>
<li>2012-01-08: Added code snippets, video tutorials</li>
<li>2012-01-10: Added code snippets, communities</li>
<li>2012-01-14: Added code snippets, tutorials</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.root-of-all-evil.com/2012/01/iphone-ipad-programming-ressources-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up SVN on Mac OS X &#8211; Quick &amp; Easy</title>
		<link>http://blog.root-of-all-evil.com/2010/08/setting-up-svn-on-mac-os-x-quick-easy/</link>
		<comments>http://blog.root-of-all-evil.com/2010/08/setting-up-svn-on-mac-os-x-quick-easy/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 16:48:22 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Erklärungen]]></category>
		<category><![CDATA[Guides]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[mac os]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[setup]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[svn server]]></category>

		<guid isPermaLink="false">http://blog.root-of-all-evil.com/?p=822</guid>
		<description><![CDATA[You'll find quite a lot of guides showing you how to install an svn server on your Mac OS X machine. But most of them don't tell you, that Mac OS X ships with a fully functional svn system. This is how you configure it.<p class="read-more"><a href="http://blog.root-of-all-evil.com/2010/08/setting-up-svn-on-mac-os-x-quick-easy/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/08/setting-up-svn-on-mac-os-x-quick-easy/" title="Setting up SVN on Mac OS X - Quick &amp; Easy"></a><p>You&#8217;ll find quite a lot of guides showing you how to install an svn server on your Mac OS X machine. But most of them don&#8217;t tell you, that Mac OS X ships with a fully functional svn system. This is how you configure it.</p>
<p><span id="more-822"></span>Start of by opening Terminal and creating a new folder holding your future svn repositories:</p>
<pre>sudo mkdir /usr/local/svn</pre>
<p>Make sure you change the folder&#8217;s owner to &#8220;www&#8221; in order to make it accesable through apache:</p>
<pre>sudo chown -R www:www /usr/local/svn</pre>
<p>Now create a new repository:</p>
<pre>sudo svnserve create /user/local/svn/foo</pre>
<p>where foo is your repository&#8217;s name.</p>
<p>Make sure, apache is running by checking your system preferences and enabling <em>web sharing</em>.</p>
<p><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/08/Bildschirmfoto-2010-08-26-um-18.42.30.png" rel="lightbox[822]"><img class="aligncenter size-medium wp-image-823" title="Bildschirmfoto 2010-08-26 um 18.42.30" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/08/Bildschirmfoto-2010-08-26-um-18.42.30-300x132.png" alt="" width="300" height="132" /></a>Now create a new file named <em>svn.conf</em> and place it in <em>/etc/apache2/other</em>. Type the following into the file:</p>
<pre>LoadModule dav_svn_module /usr/libexec/apache2/mod_dav_svn.so
&lt;Location /svn&gt;
  DAV svn
  SVNParentPath /usr/local/svn
&lt;/Location&gt;</pre>
<p>Restart apache by typing</p>
<pre>sudo apachectl graceful</pre>
<p>into your terminal. And you&#8217;re ready and set. Access your repository through <em>http://localhost/svn</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.root-of-all-evil.com/2010/08/setting-up-svn-on-mac-os-x-quick-easy/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Backup your files using tar and cronjobs on Mac OS X</title>
		<link>http://blog.root-of-all-evil.com/2010/08/backup-your-files-using-tar-and-cronjobs-on-mac-os-x/</link>
		<comments>http://blog.root-of-all-evil.com/2010/08/backup-your-files-using-tar-and-cronjobs-on-mac-os-x/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 14:22:04 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Erklärungen]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[cronjob]]></category>
		<category><![CDATA[crontab]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[sh]]></category>

		<guid isPermaLink="false">http://blog.root-of-all-evil.com/?p=818</guid>
		<description><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/08/backup-your-files-using-tar-and-cronjobs-on-mac-os-x/" title="Backup your files using tar and cronjobs on Mac OS X"></a>Mac OS X comes with a huge amount of useful stuff. You just need to find and use them. Here is a walkthrough showing you how to set up an automatically backup-system on Mac OS X. There are several ways &#8230;<p class="read-more"><a href="http://blog.root-of-all-evil.com/2010/08/backup-your-files-using-tar-and-cronjobs-on-mac-os-x/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/08/backup-your-files-using-tar-and-cronjobs-on-mac-os-x/" title="Backup your files using tar and cronjobs on Mac OS X"></a><p>Mac OS X comes with a huge amount of useful stuff. You just need to find and use them. Here is a walkthrough showing you how to set up an automatically backup-system on Mac OS X.</p>
<p>There are several ways to backup your files and probably the best way to do it would be to use rsync. It allows you to backup your files onto a remote machine. But probably this is a bit to heavy for the task you most probably want to achieve: Backup a folder on your local harddrive on a regular basis.</p>
<p><span id="more-818"></span>First, create a new file called backupFiles.sh in a folder of your choice. I place sh scripts in /User/myusername/Documents/scripts.</p>
<p>Open it in you favourite editor and type:</p>
<pre># Remove the oldest backup file.
rm –f /Library/WebServer/backups/backup.2.tgz

# Rename the old backup files
mv –f /Library/WebServer/backups/backup.1.tgz /Library/WebServer/backups/backup.2.tgz
mv –f /Library/WebServer/backups/backup.0.tgz /Library/WebServer/backups/backup.1.tgz

# create a new backup file.
tar –czf /Library/WebServer/backups/backup.0.tgz /Library/WebServer/Documents/*</pre>
<p>Replace the directories to the directories of your choice. Note: The directory paths have to be absolute paths.</p>
<p>The above script will create a new compressed backup file named backup.0.tgz of my htdocs directory located at /Library/WebServer/Documents. A total of three backups will be found in /Library/WebServer/backups/, where backup.0.tgz is the latest and backup.2.tgz the oldest one.</p>
<p>To set up a new so called cronjob (a command that will be excecutet on a defined, regulare basis) open up your terminal and type:</p>
<pre>crontab –e</pre>
<p>This will open up your crontab file in your default editor. Probably vim. If you have no crontab file, it will simply create a new empty one.</p>
<p>After pressing <strong>i</strong> to insert into vim, type:</p>
<pre>#min hour mday month wday command
0 3 * * 6 sh /Users/myusername/Documents/scripts/backupFiles.sh</pre>
<p>Replace the file path with the path of your custom backup script. Press ESC to stop inserting and type :wq to write and quit vim. A new cronjob has been defined. It will be run at 3 am every Saturday.</p>
<p>You can define the time you want the script to be excecuted like this:</p>
<pre>Minute Hour DayOfTheMonth Month Weekday (0 = Sunday, 6 = Saturday) Command</pre>
<p>A few examples:</p>
<p>Daily excecution at 3:15 am</p>
<pre>15 3 * * * command</pre>
<p>Weekly excecution at 6:30 pm every Saturday</p>
<pre>30 18 * * 6 command</pre>
<p>Monthly excecution at midnight on the first day of the month:</p>
<pre>0 0 1 * * command</pre>
<p>Use */10 to define the excecution every 10 minutes:</p>
<pre>*/10 * * * * command</pre>
<p>Hope this helped you backup your files.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.root-of-all-evil.com/2010/08/backup-your-files-using-tar-and-cronjobs-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Punkte in Google-Mail-Adressen</title>
		<link>http://blog.root-of-all-evil.com/2010/05/punkte-in-google-mail-adressen/</link>
		<comments>http://blog.root-of-all-evil.com/2010/05/punkte-in-google-mail-adressen/#comments</comments>
		<pubDate>Tue, 18 May 2010 18:09:29 +0000</pubDate>
		<dc:creator>Felix</dc:creator>
				<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Erklärungen]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://blog.root-of-all-evil.com/?p=797</guid>
		<description><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/05/punkte-in-google-mail-adressen/" title="Punkte in Google-Mail-Adressen"></a>Registriert man bei Google Mail eine E-Mailadresse &#8211; z.B. dasIstEineEMailAdresse@googlemail.com &#8211; so wird der komplette Benutzername unabhängig von Groß-/Kleinschreibung und Punkten (.) interpretiert: registriert man die E-Mail-Adresse dasIstEineEMailAdresse@googlemail.com, so hat man automatisch auch folgende weitere Adressen das.ist.eine.emailadresse@googlemail.com oder das.istEineEmailAdresse@googlemail.com etc. &#8230;<p class="read-more"><a href="http://blog.root-of-all-evil.com/2010/05/punkte-in-google-mail-adressen/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/05/punkte-in-google-mail-adressen/" title="Punkte in Google-Mail-Adressen"></a><p>Registriert man bei Google Mail eine E-Mailadresse &#8211; z.B. dasIstEineEMailAdresse@googlemail.com &#8211; so wird der komplette Benutzername unabhängig von Groß-/Kleinschreibung und Punkten (.) interpretiert: registriert man die E-Mail-Adresse dasIstEineEMailAdresse@googlemail.com, <strong>so hat man automatisch auch folgende weitere Adressen</strong> das.ist.eine.emailadresse@googlemail.com oder das.istEineEmailAdresse@googlemail.com etc.</p>
<p>Welche <strong>Vorteile sich für den Benutzer</strong> und welche <strong>Nachteile für einen Webmaster</strong> sich hierdurch ergeben soll hier kurz aufgezeigt werden.</p>
<p><span id="more-797"></span></p>
<h2>Vorteile für den Benutzer</h2>
<p>Durch unterschiedliche E-Mail-Adressen, welche aber alle zu einem Postfach führen, gibt es für den Benutzer eine Reihe von Vorteilen.</p>
<h3>Organisation/Kategorisierungen</h3>
<p>Der Benutzer kann die E-Mails besser organisieren bzw. kategorisieren. Beispielsweise wird für alle <strong>Newsletter die E-Mail-Adresse m.ax.mueller@googlemail.com</strong> verwendet, für den <strong>privaten Kontakt max.mueller@googlemail.com.</strong> Mit Hilfe der <strong>Filtereinstellungen bei Google-Mail</strong> können dann alle Newsletter unabhängig vom Absender mit einem Label versehen und aus dem Posteingang verschoben werden &#8211; so findet man im Posteingang dann wirklich nur die &#8220;wichtigen&#8221; E-Mails.</p>
<p><img class="aligncenter size-medium wp-image-804" title="Filter-Einstellungen bei Google-Mail" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/05/screen-capture-300x60.jpg" alt="" width="300" height="60" /></p>
<h3>Privatsphäre</h3>
<p>Manche Plattformen bieten die Möglichkeit über eine E-Mail-Adresse zu prüfen ob ein User angemeldet ist (z.B. Facebook). Dies ist nicht von jedem User gewünscht. Hier bietet sich dann mit einer Google-Mail-Adresse die Möglichkeit seine <strong>E-Mail-Adresse auf der Plattform z.B. auf max.m.u.e.l.l.e.r@googlemail.com zu ändern.</strong> Sucht ein User nach max.mueller@googlemail.com so wird er nicht fündig werden &#8211; und trotzdem muss man nicht eine weitere E-Mail-Adresse registrieren.</p>
<h2>Nachteile für den Webmaster</h2>
<p>Natürlich ergeben Sie durch dieses Feature auch Nachteile. Oft wird die <strong>E-Mail-Adresse als primary Key</strong> verwendet um so Mehrfachanmeldungen oder Nutzungen schnell und einfach zu unterbinden. Dies wird genutzt unter anderem bei:</p>
<ul>
<li>Serialversand<br />
Das Produkt X darf 14 Tage mit der Serial Y getestet werden. Wird danach versucht erneut eine Serial anzufordern, schlägt das für die benutzte Adresse fehl</li>
<li>Unterbinden von Mehrfachregistrierung<br />
Es soll verhindert werden dass sich ein Benutzer mehrfach registriert &#8211; unabhängig ob das Verhalten gewollt oder ungewollt ist. Sei es auf Community-Seiten oder auch finanziell orientierten Homepages wie Online-Shops.</li>
</ul>
<p>Natürlich gibt es neben der &#8220;Google-Mail-Problematik&#8221; auch noch andere Möglichkeiten wie Wegwerf-E-Mail-Adressen, Automatische Erstellung von E-Mail-Konten, oder sogar der Besitz einer (E-Mail-)Domain (ich@meineDomain.de, ich1@meineDomain.de, &#8230;). Wir wollen uns aber hier nur mit Google-Mail beschäftigen.</p>
<p>Eine Möglichkeit das Problem zu umgehen ist der folgende einfache Algorithmus:</p>
<ol>
<li>Prüfe ob Google-Mail-Adresse</li>
<li>Wenn Ja entferne im Benutzername alle Punkte</li>
<li>Speichere E-Mail-Adresse</li>
</ol>
<p>Wenn nun geprüft werden soll, ob ein Account schon eine E-Mail-Adresse verwendet, wird auf diese der Algorithmus angewandt, und dann z.B. die Datenbank nach der Mail-Adresse durchsucht. Bleibt die Suche erfolglos, darf sich der User registrieren, wenn nicht, ist der User wohl mit einer ähnliche Adresse bereits registriert und sollte darauf hingewiesen werden. <strong>Wichtig ist hierbei, dass der Datenbestand, in dem die Mail-Adresse gesucht wird, bereits die &#8220;gesäuberte Adressen&#8221; besitzt.</strong></p>
<p><span style="text-decoration: underline;"><span style="color: #ff0000;">Hinweis:</span></span> Bei Google-Mail sind gmail.com und googlemail.com möglich. Dies wird vom Script entsprechend beachtet und alle Adressen auf gmail.com umgeschrieben.<strong><br />
</strong></p>
<p>Die Implementierung könnte in PHP z.B. gefolgt aussehen:</p>
<pre class="php" title="code">/**
 * Cleans an e-mail-address (especially Google-Mail-adresses) to avoid duplicates.
 * @param String $emailStr e-mail-address
 */
function clean_email($emailStr) {
	$emailStr = strtolower ($emailStr);
	$tokens = preg_split ("/@/", $emailStr);

	if ($tokens [1] == "gmail.com" || $tokens [1] == "googlemail.com") {
		return str_replace (".", "", $tokens [0]) . "@googlemail.com";
	} else {
		return $emailStr;
	}
}</pre>
<p>Ein Aufruf von</p>
<pre class="php" title="code">echo clean_email("m.a.x.MUELLE.R@gmail.com") . "&lt;br/&gt;";
echo clean_email("m.a.x.MUELLE.R@googlemail.com") . "&lt;br/&gt;";
echo clean_email("max.mueller@web.de");</pre>
<p>hat dann entsprechende folgende Ausgabe:</p>
<pre>maxmueller@googlemail.com
maxmueller@googlemail.com
max.mueller@web.de</pre>
<h2>Epilog</h2>
<p>Nicht immer wenn sich ein User versucht nochmal zu registrieren ist dies beabsichtigt. Ggf. hat der User schlicht vergessen dass er auf einer Seite registriert ist, oder kann sich nicht mehr einloggen, weil er seine Logindaten nicht mehr kennt. Deshalb sollte immer eine entsprechende Meldung ausgegeben werden wie z.B. &#8220;Es ist bereits ein User mit dieser E-Mail-Adresse registriert. Haben Sie Ihr Passwort vergessen?&#8221; mit entsprechenden Link zu einer Seite, wo ein neues Passwort beantragt werden kann.</p>
<p>Auch ist bei Prüfung auf Google-Mail-Adressen und Wegwerf-Adressen natürlich nicht vor einer Mehrfachregistrierung geschützt. Sicher ist das nur über das kostenpflichtige und  zeitaufwendige Postident-Verfahren &#8211; was jedoch im Internet an der Praxis scheitert.</p>
<p><strong>Weitere Informationen:</strong></p>
<ul>
<li><a href="http://mail.google.com/support/bin/answer.py?hl=de&amp;answer=10313">Google Mail-Hilfe &#8211; Empfangen von E-Mail-Nachrichten anderer Personen</a></li>
<li><a href="http://bspamfree.org/">bspamfree.org &#8211; Wegwerf-E-Mail-Adressen</a></li>
<li><a href="http://de.wikipedia.org/wiki/Postident">Wikipedia &#8211; Postident</a></li>
<li><a href="http://www.deutschepost.de/dpag?xmlFile=1015469">Deutsche Post &#8211; Identitätsprüfung</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.root-of-all-evil.com/2010/05/punkte-in-google-mail-adressen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Automatisieren: Stapelverarbeitung mit Adobe Photoshop</title>
		<link>http://blog.root-of-all-evil.com/2010/04/automatisieren-stapelverarbeitung-mit-adobe-photoshop/</link>
		<comments>http://blog.root-of-all-evil.com/2010/04/automatisieren-stapelverarbeitung-mit-adobe-photoshop/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 10:00:52 +0000</pubDate>
		<dc:creator>Felix</dc:creator>
				<category><![CDATA[Erklärungen]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Adobe Photoshop]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Stapelverarbeitung]]></category>
		<category><![CDATA[Thumbnails generieren]]></category>
		<category><![CDATA[Wasserzeichen]]></category>

		<guid isPermaLink="false">http://blog.root-of-all-evil.com/?p=562</guid>
		<description><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/04/automatisieren-stapelverarbeitung-mit-adobe-photoshop/" title="Automatisieren: Stapelverarbeitung mit Adobe Photoshop"></a>Oft fallen im Bereich der Bildbearbeitung Aufgaben an, die für eine Fülle von Bildern wiederholt werden muss. Hierfür bietet Adobe Photoshop die Stapelverarbeitung welche beliebige Schritte, z.B. für einen Ordner mit Bildern, wiederholt. Hier sollen die notwendigen Schritte aufgezeigt werden, &#8230;<p class="read-more"><a href="http://blog.root-of-all-evil.com/2010/04/automatisieren-stapelverarbeitung-mit-adobe-photoshop/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/04/automatisieren-stapelverarbeitung-mit-adobe-photoshop/" title="Automatisieren: Stapelverarbeitung mit Adobe Photoshop"></a><p>Oft fallen im Bereich der Bildbearbeitung Aufgaben an, die für eine Fülle von Bildern wiederholt werden muss. Hierfür bietet Adobe Photoshop die Stapelverarbeitung welche beliebige Schritte, z.B. für einen Ordner mit Bildern, wiederholt.</p>
<p>Hier sollen die notwendigen Schritte aufgezeigt werden, welche es benötigt, <strong>von Bildern automatisiert Thumbnails zu generieren. Das Orginal-Bild und das Thumbnail (Vorschaubild) sollen beide über ein Wasserzeichen geschützt sein.</strong></p>
<p><strong>Sämtliche <a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/ROAE-Tutorial-Stapelverarbeitung-mit-Photoshop.zip">benötigten Dateien</a> werden zur Verfügung gestellt</strong>, sodass die notwendigen Schritte gut nachvollzogen werden können.</p>
<p><span id="more-562"></span></p>
<h3>Das Ziel</h3>
<p>Das Video zeigt auf, wie Sie die Aktion, welche wir erstellen, anwenden. Natürlich könne Sie jedes beliebige Wasserzeichen verwenden.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/l4W2zlZZvUo&amp;hl=de_DE&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/l4W2zlZZvUo&amp;hl=de_DE&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: center;">
<h3>Vorbereitung</h3>
<p>Die <a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/ROAE-Tutorial-Stapelverarbeitung-mit-Photoshop.zip">benötigten Dateien laden Sie bitte hier herunter. </a>Nachdem Sie diese auf dem Desktop entpackt haben, starten Sie bitte <em>Adobe Photoshop.</em></p>
<p>Zu Beginn starten wie Adobe Photoshop und  blenden die <strong>Aktionen-Palette</strong> über <em>Fenster -&gt; Aktionen</em> oder die Funktionstaste <em>F9 </em>ein.</p>
<div id="attachment_574" class="wp-caption aligncenter" style="width: 360px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/Photoshop-Aktionen1.png" rel="lightbox[562]"><img class="size-full wp-image-574" title="Photoshop Aktionen" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/Photoshop-Aktionen1.png" alt="" width="350" height="216" /></a><p class="wp-caption-text">Aufrufen der Aktionen-Palette</p></div>
<p>Im rechten Teil verfügen wir nun über die Aktionen-Palette.</p>
<div id="attachment_576" class="wp-caption aligncenter" style="width: 304px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/ps_aktionen.png" rel="lightbox[562]"><img class="size-full wp-image-576" title="ps_aktionen" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/ps_aktionen.png" alt="" width="294" height="298" /></a><p class="wp-caption-text">Aktionen-Palette</p></div>
<p>Mit Hilfe dieser Palette können wir (fast) alles was wir in Photoshop ausführen aufzeichen lassen und dann später durch einen Knopfdruck abspielen.</p>
<p>Darüber hinaus <strong>öffnen Sie bitte die Datei ROAE-Tutorial/logo.gif </strong>(Sie können später die Datei durch Ihr eigenes Logo ersetzen).<strong><br />
</strong></p>
<h3>Aktion erstellen und aufzeichen</h3>
<p><span style="color: #ff0000;">Hinweis:</span> In den  Dateien ist bereits die fertige Aktion enthalten (Datei <em>Wasserzeichen_und_Thumbnaill-Photoshop_Aktion</em>), welche Sie durch einen  Doppelklick in Photoshop importieren können. Sie müssen also nicht die  folgenden Schritte nicht durchführen.<em><br />
</em></p>
<p>Aus je einem Orginal-Bild sollen zwei Bilder erstellt werden. Einmal das Bild mit einem Wasserzeichen versehen, zum zweiten ein Thumbnail (Vorschaubild), mit einer Breite von 400 Pixeln und ebenfalls einem Wasserzeichen.</p>
<p><strong>Schritt 01: Aktion erstellen</strong></p>
<p>Um die notwendigen Schritte aufzeichnen zu lassen, klicken wir in der Aktionen-Palette auf <em>Neue Aktion erstellen</em></p>
<div id="attachment_577" class="wp-caption aligncenter" style="width: 229px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/neue_aktion_erstellen.png" rel="lightbox[562]"><img class="size-full wp-image-577" title="neue_aktion_erstellen" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/neue_aktion_erstellen.png" alt="" width="219" height="58" /></a><p class="wp-caption-text">Erstellen einer neuen Aktion</p></div>
<p>und tragen in dem neuen Fenster als Aktionsname <em>Wasserzeichen und Thumbnail</em> ein.</p>
<div id="attachment_623" class="wp-caption aligncenter" style="width: 469px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/aktion_aufzeichnen.jpg" rel="lightbox[562]"><img class="size-full wp-image-623" title="aktion_aufzeichnen" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/aktion_aufzeichnen.jpg" alt="" width="459" height="164" /></a><p class="wp-caption-text">Neue Aktion erstellen &amp; aufzeichnen beginnen</p></div>
<p>Rechts in der Aktionenpalette ist nun der Eintrag <em>Wasserzeichen und Thumbnail</em> markiert. Des weiteren ist der Aufnahme-Knopf aktiviert:</p>
<div id="attachment_580" class="wp-caption aligncenter" style="width: 300px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/aktion-läuft.png" rel="lightbox[562]"><img class="size-full wp-image-580" title="aktion läuft" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/aktion-läuft.png" alt="" width="290" height="135" /></a><p class="wp-caption-text">Aktionen werden aufgezeichnet</p></div>
<p><strong>Bitte achten Sie darauf folgende Schritte genau wie beschrieben auszuführen</strong>. Kleine Abweichungen (z.B. wechseln zwischen den geöffneten Dateien) können später zu einem Fehler führen.</p>
<p><strong>Schritt 02: Orginal-Bild öffnen</strong></p>
<p>Über <em>Datei -&gt; Öffnen</em> laden wir zuerst eines unser Original-Bilder in Photoshop. Wählen Sie die Datei <em>ROAE-Tutorial/original_bilder/auto.jpg</em> aus dem entpackten ZIP-Archiv (hier können Sie die Bilder nochmal herunterladen &#8211; falls Sie dass noch nicht gemacht haben sollten).</p>
<p><strong>Schritt 03: Hintergrund in Ebene wandeln</strong></p>
<p>Betrachten Sie nun die Ebenenpalette rechts unten (sollte diese nicht sichtbar sein, so blenden Sie diese bitte über<em> Fenster -&gt; Ebenen</em> bzw. die Funktionstaste <em>F7 </em>ein). Klicken Sie mit der rechten Maustaste in der Ebenpalette auf die Ebene <em>Hintergrund </em>und wählen Sie im Kontexmenü <em>Ebene aus Hintergrund</em>. Durch diese Aktion wird die Ebene zu einer &#8220;gewöhnlichen&#8221; Ebene, was mehr Operationen gestartet.<br />
Den Dialog  welcher Name, Farbe und ähnliches abfragt, bestätigen Sie mit <em>ENTER</em>, d.h. die Standardeinstellungen werden übernommen.</p>
<div id="attachment_581" class="wp-caption aligncenter" style="width: 313px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/ebene_aus_hintergrund.jpg" rel="lightbox[562]"><img class="size-full wp-image-581" title="ebene_aus_hintergrund" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/ebene_aus_hintergrund.jpg" alt="" width="303" height="192" /></a><p class="wp-caption-text">In Ebene wandeln</p></div>
<p>Die Ebene heißt danach nicht mehr <em>Hintergrund</em>, sondern <em>Ebene 0</em> oder ähnlich.</p>
<p><strong>Schritt 04: Wasserzeichen kopieren</strong></p>
<p>Wechseln Sie nun auf das zuvor bereits geöffnete Datei <em>logo.gif</em>.</p>
<p>Wählen Sie nun das komplette Bild aus, in dem Sie über das Menü <em>Auswahl -&gt; Alles auswählen</em> oder die Tastenkombination <em>STRG + A</em> verwenden. Kopieren Sie das Wasserzeichen in die Zwischenablage über das Menü <em>Bearbeiten -&gt; Kopieren</em> (alternativ <em>STRG + C</em>).</p>
<p><strong>Schritt 05: Wasserzeichen in Orginal-Bild einfügen</strong></p>
<p>Wechseln Sie nun zurück auf das Original-Bild mit dem Auto und fügen dort das Wasserzeichen über <em>Bearbeiten -&gt; Einfügen</em> (alternativ <em>STRG + V</em>) ein. Das Wasserzeichen wurde nun zentriert eingefügt und in der Ebenen-Palette eine neue Ebene erstellt:</p>
<div id="attachment_582" class="wp-caption aligncenter" style="width: 620px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/ebeneundbild.jpg" rel="lightbox[562]"><img class="size-full wp-image-582" title="ebeneundbild" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/ebeneundbild.jpg" alt="" width="610" height="323" /></a><p class="wp-caption-text">Zentriertes Logo und neue Ebene</p></div>
<p><strong>Schritt 06: Wasserzeichen ausrichten</strong></p>
<p>Kontrollieren Sie dass in der Ebenen-Palette die Ebene, mit dem Wasserzeichen markiert ist (Ebene 1). Markieren Sie nun wieder alles über <em>Auswahl -&gt; Alles auswählen</em> bzw. <em>STRG + A</em>. Richten Sie nun das Logo aus in dem Sie im Menü <em>Ebene -&gt; Ebenen an Auswahl ausrichten -&gt; Untere Kanten</em> und <em>Ebene -&gt; Ebenen an Auswahl ausrichten -&gt; Rechte Kanten</em> wählen. Das Wasserzeichen befindet sich nun bündig unten rechts.</p>
<div id="attachment_584" class="wp-caption aligncenter" style="width: 439px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/logo-ausgerichtet.jpg" rel="lightbox[562]"><img class="size-full wp-image-584" title="logo ausgerichtet" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/logo-ausgerichtet.jpg" alt="" width="429" height="323" /></a><p class="wp-caption-text">Wasserzeichen ausgerichtet</p></div>
<p><strong>Schritt 07: Bild mit Wasserzeichen speichern</strong></p>
<p>Über Datei -&gt; Speichern unter speichern wir das Bild  in dem Ordner <em>roae_tutorial/fertige_bilder/orginal_Bild.jpg.</em> Wählen Sie hierzu bei <strong>Format <em>JPEG</em><em> (*.JPEG, *.JPG, *.JPE)</em></strong>.</p>
<p><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/als_jpg_speichern.jpg" rel="lightbox[562]"><img class="aligncenter size-medium wp-image-673" title="Datei als JPG speichern" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/als_jpg_speichern-300x260.jpg" alt="" width="300" height="260" /></a></p>
<p>Bei den Speicheroptionen setzten Sie bitte die <em>Qualität </em>(<span style="color: #ff0000;">1</span>) auf <em>Hoch </em>und klicken anschließend auf <em>Speichern </em>.</p>
<div id="attachment_669" class="wp-caption aligncenter" style="width: 383px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/jpeg_options.jpg" rel="lightbox[562]"><img class="size-full wp-image-669" title="jpeg_options" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/jpeg_options.jpg" alt="" width="373" height="300" /></a><p class="wp-caption-text">Qualtität für Bild festlegen</p></div>
<p><strong>Schritt 08: Thumbnail erstellen</strong></p>
<p>Wählen Sie im Menü <em>Bild -&gt; Bildgröße</em>. Für die Breite tragen Sie <em>400</em> unter <em>Pixel </em>ein und klicken anschließend auf <em>OK</em>.</p>
<div id="attachment_587" class="wp-caption aligncenter" style="width: 451px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/bildgroesse-aendern.jpg" rel="lightbox[562]"><img class="size-full wp-image-587" title="bildgroesse aendern" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/bildgroesse-aendern.jpg" alt="" width="441" height="364" /></a><p class="wp-caption-text">Bildgröße ändern</p></div>
<p><strong>Schritt 09: Thumbnail speichern</strong></p>
<p>Speichern Sie das verkleinerte Bild nun über Datei -&gt; Speichern unter  in dem  Ordner<em> roae_tutorial/fertige_bilder/thumbnail.jpg</em>. Wählen Sie als <strong>Dateityp auch hier wieder JPG</strong>. Als Qualitätsstufe dürfte hier Mittel in vielen Fällen ausreichend sein.</p>
<p><strong>Schritt 10: Fenster schließen</strong></p>
<p>Schließen Sie nun das Fenster mit dem Orignal-Bild. Eine Nachfrage ob Sie die Änderung speichern wollen verneinen Sie. Die Datei mit dem Wasserzeichen / Logo lassen Sie geöffnet.</p>
<p><strong>Schritt 11: Aufnahme beenden</strong></p>
<p>Beenden Sie nun die Aufnahme über den Button <em>Aufnahme beenden.</em></p>
<div id="attachment_589" class="wp-caption aligncenter" style="width: 287px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/aufnamhe-beenden.jpg" rel="lightbox[562]"><img class="size-full wp-image-589" title="aufnahme beenden" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/aufnamhe-beenden.jpg" alt="" width="277" height="41" /></a><p class="wp-caption-text">Beenden der Aufnahme</p></div>
<h3>Aktion auf alle Bilder in einem Ordner anwenden / Stapelverarbeitung</h3>
<p>Damit die Aktion erfolgreich ausgeführt werden kann,<strong> schließen Sie alle Dateien in Photoshop</strong>. Anschließend öffnen Sie das Wasserzeichen (ROAE-Tutorial/logo.gif).</p>
<p><strong>Einstellungen</strong></p>
<p>Wählen Sie <em>Datei -&gt; Automatisieren -&gt; Stapelverarbeitung</em>. Es öffnet sich ein großer Dialog der sich in die Bestandteile Abspielen, Quelle, Ziel und Fehler unterteilt. Übernehmen Sie nun die Einstellungen wie im Screenshot gezeigt. Die einzelnen Werte sind gefolgt nochmal schriftlich erläutert:</p>
<div id="attachment_674" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/stapelverarbeitung_optionen.jpg" rel="lightbox[562]"><img class="size-medium wp-image-674" title="stapelverarbeitung_optionen" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/stapelverarbeitung_optionen-300x210.jpg" alt="" width="300" height="210" /></a><p class="wp-caption-text">Einstellungen für die Stapelverarbeitung</p></div>
<p><span style="text-decoration: underline;">Abspielen</span></p>
<p>Wählen Sie bei Satz <em>Standardaktion </em>(<span style="color: #ff0000;">1</span>), bei Aktion <em>Wasserzeichen und Thumbnails</em> (<span style="color: #ff0000;">2</span>).</p>
<p><span style="text-decoration: underline;">Quelle</span></p>
<p>Bei der Art der Qelle wählen Sie <em>Ordner </em>(<span style="color: #ff0000;">3</span>) damit Sie im Dialog den Pfad zu den Orginal-Bildern (ROAE-Tutorial/original-Bilder) angegeben können (<span style="color: #ff0000;">4</span>). <em>Öffnen in Aktionen überschreiben</em> (<span style="color: #ff0000;">5</span>) muss darüber hinaus aktiviert werden.</p>
<p><span style="text-decoration: underline;">Ziel</span></p>
<p>Bei Ziel wählen Sie wie bei<em> </em>Quelle  <em>Ordner </em>(<span style="color: #ff0000;">6</span>) und legen als Pfad im Dialog den Ordner fertige Bilder (ROAE-Tutorial/fertige-Bilder) fest (<span style="color: #ff0000;">7</span>). Hier muss <em>&#8220;Speichern unter&#8221; in Aktionen überschreiben</em> aktiviert werden (<span style="color: #ff0000;">8</span>), da sonst die Dateien überschrieben werden.</p>
<p>Im Bereiech <em>Dateibennenung </em>legen Sie bitte folgendes fest: <em>Dokumentenname </em>(<span style="color: #ff0000;">9</span>) + <em>_</em> (<span style="color: #ff0000;">10</span>) + Dreistellige Seriennummer (<span style="color: #ff0000;">11</span>) + <em>Erweiterung </em>(<span style="color: #ff0000;">12</span>). Die Anfangsseriennummer sollte den Wert <em>1</em> haben (<span style="color: #ff0000;">13</span>)</p>
<p><span style="text-decoration: underline;">Fehler</span></p>
<p>Im Bereich <em>Fehler </em>wählen Sie <em>Bei Fehlern anhalten</em> (<span style="color: #ff0000;">14</span>)</p>
<p><strong>Starten und Resultat</strong></p>
<p>Nachdem Sie all diese Einstellungen vorgenommen haben, klicken Sie auf OK (<span style="color: #ff0000;">15</span>). Kurz darauf können Sie Photoshop bei der Arbeit zuschauen, wie innerhalb weniger Sekunden die Bilder erstellt  und im Ordner fertige Bilder abgelegt werden:</p>
<div id="attachment_676" class="wp-caption aligncenter" style="width: 347px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/fertige_bilder1.jpg" rel="lightbox[562]"><img class="size-full wp-image-676" title="fertige_bilder" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/fertige_bilder1.jpg" alt="" width="337" height="197" /></a><p class="wp-caption-text">Die fertigen Bilder, automatisch generiert von Photoshop</p></div>
<p>Sie können nun natürlich die das Logo oder die Orginal-Bilder durch ihre eigenen ersetzen. Auch können Sie die Aktion anpassen und z.B. die Vorschaubilder mit abgerundeten Ecken versehen.</p>
<p>Für Fragen, Hinweise und Anmerkungen kann wie immer die Kommentarfunktion benutzt werden.</p>
<p><strong>Siehe auch</strong></p>
<ul>
<li><a href="http://blog.root-of-all-evil.com/2010/02/thumbnails-erzeugen-und-durchschnittsfarbe-in-php-ermitteln/">Thumbnails erzeugen und Durchschnittsfarbe in PHP ermitteln</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.root-of-all-evil.com/2010/04/automatisieren-stapelverarbeitung-mit-adobe-photoshop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress multidomainfähig machen &#8211; Eine WordPress-Installation für mehrere Blogs</title>
		<link>http://blog.root-of-all-evil.com/2010/03/wordpress-multidomainfahig-machen-eine-wordpress-installation-fur-mehrere-blogs/</link>
		<comments>http://blog.root-of-all-evil.com/2010/03/wordpress-multidomainfahig-machen-eine-wordpress-installation-fur-mehrere-blogs/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 14:23:58 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Erklärungen]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Mehrere Blogs]]></category>
		<category><![CDATA[Multidomain]]></category>
		<category><![CDATA[Multiple Blogs]]></category>
		<category><![CDATA[Umzug]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.root-of-all-evil.com/?p=666</guid>
		<description><![CDATA[Die Überlegung ist simpel: Ich besitze mehrere Blogs zu unterschiedlichen Themen, die ich auf demgleichen Server mit Verwendung der Wordpress-Blogsoftware und Verwendung der gleichen Datenbank hoste. Jeder Blog basiert auf seiner eigenen Wordpress-Installation und ist in seinem eigenen Ordner hinterlegt. Das bedeutet aber auch: Jeden Blog einzeln auf neue Wordpress-Installationen und für jeden Blog jedes einzelne Plugin bei Updates aktualisieren. Eine Menge Administrationsaufwand...<p class="read-more"><a href="http://blog.root-of-all-evil.com/2010/03/wordpress-multidomainfahig-machen-eine-wordpress-installation-fur-mehrere-blogs/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/03/wordpress-multidomainfahig-machen-eine-wordpress-installation-fur-mehrere-blogs/" title="Wordpress multidomainfähig machen - Eine Wordpress-Installation für mehrere Blogs"></a><p>Die Überlegung ist simpel: Ich besitze mehrere Blogs zu unterschiedlichen Themen, die ich auf demgleichen Server mit Verwendung der WordPress-Blogsoftware und Verwendung der gleichen Datenbank hoste. Jeder Blog basiert auf seiner eigenen WordPress-Installation und ist in seinem eigenen Ordner hinterlegt. Das bedeutet aber auch: Jeden Blog einzeln auf neue WordPress-Installationen und für jeden Blog jedes einzelne Plugin bei Updates aktualisieren. Eine Menge Administrationsaufwand&#8230;</p>
<p>Dabei geht es viel einfacher. Warum nicht eine einzelne WordPress-Installation für mehrere Blogs und Domains nutzen? Die WordPress-Installation also multidomainfähig machen. So muss nur ein einziges WordPress-System muss aktualisiert werden und alle meine Blogs arbeiten mitder neuesten Version.</p>
<p><span id="more-666"></span></p>
<h4>1. Schritt &#8211; alle WordPress-Installationen auf die gleiche Version updaten</h4>
<p>Damit die Zusammenführung reibungslos funktioniert müssen zunächst alle vorhandenen WordPress-Installationen ein letztes mal auf die aktuellste &#8211; oder zumindest gleiche &#8211; Version aktualisiert werden.</p>
<h4>2. Schritt &#8211; einen neue WordPress-Installation in neuem Verzeichnis anlegen</h4>
<p>Sind alle WordPress-Installationen auf die gleiche Version aktualisiert worden müssen wir eine komplett neue WordPress-Installation anlegen. Dazu <a title="Wordpress herunterladen" href="http://wordpress.org/download/" target="_blank">laden wir die benötigte WordPress-Version herunter</a> und entpacken sie auf unseren Server in einem neuen Verzeichnis. Achtung: Die Installation selbst muss nicht ausgeführt werden. Lediglich die Dateien müssen auf den Server entpackt werden.</p>
<h4>3. Schritt &#8211; eine neue Datenbank anlegen (optional)</h4>
<p>Um die neue Installation von allen vorherigen zu trennen empfehle ich eine neue Datenbank anzulegen. Das muss aber nicht sein. Die WordPress-Installation kann auch in einer bereits vorhanden Datenbank arbeiten.</p>
<h4>3. Schritt &#8211; die wp-config.php anpassen</h4>
<p>Der Trick ist einfach: WordPress nutzt für die Datenbank einen Table_Prefix. Dieser wird in der wp-config.php festgelegt und kann von uns beliebig verändert werden. Folgende Änderungen an der Variablendeklaration von $table_prefix müssen an der wp-config vorgenommen werden:</p>
<pre class="php" title="code">$table_prefix = str_replace(array('.', '-' ), '_', $_SERVER['HTTP_HOST'] ) . '_';
$table_prefix = str_replace(array('www_'), '', $table_prefix);</pre>
<p>Unser Table_Prefix wird jetzt also gemäß unserer aufgerufenen Domain ausgewählt. Striche und Punkte werden in Unterstriche übersetzt, das &#8220;www&#8221; entfernt. Beispiel:</p>
<ul>
<li>&#8220;www.mein-cooler-blog.de&#8221; wird auf die Tabellen mit dem Table_Prefix &#8220;mein_cooler_blog_de_&#8221; basieren</li>
<li>&#8220;www.meinblog.com&#8221; wird auf die Tabellen mit dem Table_Prefix &#8220;meinblog_com_&#8221; basieren</li>
<li>&#8220;blog.meine-domain.de&#8221; wird auf die Tabellen mit dem Table_Prefix &#8220;blog_meine_domain_de_&#8221; basieren</li>
</ul>
<p>Dazu müssen die Verbindungsdaten der (neu erstellten) Datenbank wie gewohnt in der wp-config.php angepasst werden.</p>
<h4>4. Schritt &#8211; alle wp-content Ordner übertragen</h4>
<p>Sämtliche wp-content Ordner aus den alten WordPress-Installationen müssen in die neue Installation übertragen werden. Dabei werden alle Bilder, Medien, Plugins und Skins mit übertragen.</p>
<h4>5. Schritt &#8211; die Datenbanktabellen umziehen</h4>
<p>In diesem Schritt müssen alle Datenbanktabellen der einzelnen WordPress-Installationen in die (neu erstellte) Datenbank umgezogen werden. Das lässt sich mit php_MyAdmin recht leicht lösen (allerdings wird der Table_Prefix nicht geändert und muss manuel geändert werden):</p>
<p><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/phpMyAdminUmzug.png" rel="lightbox[666]"><img class="aligncenter size-medium wp-image-667" title="phpMyAdminUmzug" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/phpMyAdminUmzug-300x222.png" alt="Umzug einer Datenbank in phpMyAdmin" width="300" height="222" /></a>Das PHP-Skript macht dagegen alles vollautomatisch und ändert den Table_Prefix gleich mit:</p>
<pre class="php" title="code">&lt;?php
function echoOk($msg) { echo('[OK]    ' . $msg . "\n"); }
?&gt;&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
&lt;title&gt;Datenbank-Umzug&lt;/title&gt;
&lt;style&gt;
    div.form label, div.form input {
        display: block;
    }
    div.form label {
        margin: 10px 0 5px 0;
    }
    div.form input {
        margin: 5px 0 10px 0;
    }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;?php
    $formElements = array('server', 'username', 'password',
        'database', 'newdatabase',
        'tableprefix', 'newtableprefix');
    $showForm = false;
    foreach($formElements as $element) {
        if(!isset($_POST[$element])) {
            $showForm = true;
        }
    }
    if($showForm) {
?&gt;
&lt;div class="form"&gt;
    &lt;form action="" method="post"&gt;
        &lt;fieldset&gt;
            &lt;label for="server"&gt;Datenbank-Server&lt;/label&gt;
            &lt;input type="text" name="server" /&gt;
            &lt;label for="username"&gt;Benutzername&lt;/label&gt;
            &lt;input type="text" name="username" /&gt;
            &lt;label for="password"&gt;Passwort&lt;/label&gt;
            &lt;input type="password" name="password" /&gt;
        &lt;/fieldset&gt;
        &lt;fieldset&gt;
            &lt;label for="database"&gt;Ursprüngliche Datenbank&lt;/label&gt;
            &lt;input type="text" name="database" /&gt;
            &lt;label for="newdatabase"&gt;Neue Datenbank&lt;/label&gt;
            &lt;input type="text" name="newdatabase" /&gt;
            &lt;label for="tableprefix"&gt;Ursprünglicher Table_Prefix&lt;/label&gt;
            &lt;input type="text" name="tableprefix" /&gt;
            &lt;label for="newtableprefix"&gt;Neuer Table_Prefix&lt;/label&gt;
            &lt;input type="text" name="newtableprefix" /&gt;
        &lt;/fieldset&gt;
        &lt;fieldset&gt;
            &lt;p&gt;ACHTUNG: Dieses Skript sendet manche der eingegebenen Daten ungefiltert an die Datenbank und überschreibt bereits existierende Tabellen beim Umzug!&lt;/p&gt;
            &lt;input type="submit" /&gt;
        &lt;/fieldset&gt;
    &lt;/form&gt;
&lt;/div&gt;
&lt;?php } else {
    echo('&lt;pre&gt;');
    try {

        $con = mysql_connect($_POST['server'], $_POST['username'], $_POST['password']);
        if(!$con) {
            throw new Exception('Verbindung mit Server nicht möglich. ' . mysql_error());
        } else {
            echoOk('Mit \'' . htmlentities($_POST['server']) . '\' verbunden.');
        }

        if(!mysql_select_db($_POST['database'], $con)) {
            throw new Exception('Auswahl der Datenbank nicht möglich. ' . mysql_error());
        } else {
            echoOk('Aktuelle Datenbank \'' . htmlentities($_POST['database']) . '\'.');
        }

        $res = mysql_query('SHOW TABLES IN `' . $_POST['database'] . '` LIKE \'' . $_POST['tableprefix'] . '%\'', $con);
        if(!$res) {
            throw new Exception('Fehler bei Datenbankabfrage. ' . mysql_error());
        } else {
            while($result = mysql_fetch_row($res)) {
                $tables[] = $result[0];
                $newTables[] = str_replace($_POST['tableprefix'], $_POST['newtableprefix'], $result[0]);
            }
            $numTables = count($tables);
            if($numTables &gt; 0) {
                echoOk($numTables . ' Tabellen mit Table_Prefix \'' . htmlentities($_POST['tableprefix']) . '\' in Datenbank \'' . htmlentities($_POST['database']) . '\' gefunden.');
            } else {
                throw new Exception('Keine Tabellen mit Table_Prefix \'' . htmlentities($_POST['tableprefix']) . '\' gefunden.');
            }
        }

        foreach($tables as $num =&gt; $table) {
            $res = mysql_query('DROP TABLE IF EXISTS `' . $_POST['newdatabase'] . '`.`' . $newTables[$num] . '`', $con);
            if(!$res) {
                throw new Exception('Fehler bei Datenbankabfrage: ' . mysql_error());
            }
            $res = mysql_query('CREATE TABLE `' . $_POST['newdatabase'] . '`.`' . $newTables[$num] . '` LIKE `' . $_POST['database'] . '`.`' . $table . '`');
            if(!$res) {
                throw new Exception('Fehler bei Datenbankabfrage: ' . mysql_error());
            }
            $res = mysql_query('INSERT INTO `' . $_POST['database'] . '`.`' . $table . '` SELECT * FROM `' . $_POST['newdatabase'] . '`.`' . $newTables[$num] . '`');
            if(!$res) {
                throw new Exception('Fehler bei Datenbankabfrage: ' . mysql_error());
            } else {
                $process = round($num / $numTables * 100);
                if($process &lt; 10) {
                    $process = ' ' . $process;
                }
                if($process &lt; 100) {
                    $process = ' ' . $process;
                }
                echoOk('[' . $process . '%] Tabelle \'' . htmlentities($table) . '\' nach \'' . htmlentities($newTables[$num]) . '\' kopiert.');
            }
        }
        echoOk('[100%] ' . $numTables . ' Tabellen kopiert.');

        if(!mysql_close($con)) {
            throw new Exception('Verbindung mit Server konnte nicht geschlossen werden.');
        } else {
            echoOk('Verbindung mit Server geschlossen.');
        }

    } catch(Exception $e) {
        echo('[ERROR] ' . $e-&gt;getMessage() . "\n");
    }
    echo('&lt;/pre&gt;');
} ?&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Das Skript zum schnellen Umzug von mysql Tabellen kann auch hier heruntergeladen werden: <a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/dbUmzug.zip">PHP Skript zum schnellen Umzug von mysql Tabellen</a></p>
<h4>6. Schritt &#8211; Domain ändern</h4>
<p>Letzter Schritt: Die Domain muss jetzt nur noch auf den Speicherplatz der neuen WordPress-Installation umgestellt werden.</p>
<h4>Troubleshooting bei &#8220;kaputten&#8221; Umlauten</h4>
<p>Sollten Umlaute nicht funktionieren, empfehle ich diesen Blogpost: <a href="http://blog.root-of-all-evil.com/2010/03/den-inhalt-einer-mysql-datenbank-in-utf8-umwandeln/" target="_blank">Den Inhalt einer mysql Datenbank in utf8 umwandeln</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.root-of-all-evil.com/2010/03/wordpress-multidomainfahig-machen-eine-wordpress-installation-fur-mehrere-blogs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Den Inhalt einer mysql Datenbank in utf8 umwandeln</title>
		<link>http://blog.root-of-all-evil.com/2010/03/den-inhalt-einer-mysql-datenbank-in-utf8-umwandeln/</link>
		<comments>http://blog.root-of-all-evil.com/2010/03/den-inhalt-einer-mysql-datenbank-in-utf8-umwandeln/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 09:08:08 +0000</pubDate>
		<dc:creator>Philipp</dc:creator>
				<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[converter]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[skript]]></category>
		<category><![CDATA[umwandeln]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://blog.root-of-all-evil.com/?p=552</guid>
		<description><![CDATA[Es kann schon einiges an Kopfzerbrechen verursachen, wenn beispielsweise ein Wordpress-Update nur noch kryptische Zeichen statt Umlaute darstellt. Meist liegt das Problem am in der Datenbank verwendetem Zeichensatz. Daten, die beispielsweise in einem latin1 Zeichensatz formatiert sind und in einer utf8-Tabelle abgespeichert werden, werden dadurch beim Auslesen meist unbrauchbar.<p class="read-more"><a href="http://blog.root-of-all-evil.com/2010/03/den-inhalt-einer-mysql-datenbank-in-utf8-umwandeln/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/03/den-inhalt-einer-mysql-datenbank-in-utf8-umwandeln/" title="Den Inhalt einer mysql Datenbank in utf8 umwandeln"></a><p>Es kann schon einiges an Kopfzerbrechen verursachen, wenn beispielsweise ein WordPress-Update nur noch kryptische Zeichen statt Umlaute darstellt. Meist liegt das Problem am in der Datenbank verwendetem Zeichensatz. Daten, die beispielsweise in einem latin1 Zeichensatz formatiert sind und in einer utf8-Tabelle abgespeichert werden, werden dadurch beim Auslesen meist unbrauchbar.</p>
<p>Das PHP-Skript hier hilft bei der Umwandlung des <em>Inhalts </em>der Datenbanktabellen in die utf8 Zeichenkodierung. Das Skript wandelt zunächst alle Tabellendaten in Binärdaten um, ändert dann die Tabellencodierung und wandelt schließlich die Tabellendaten wieder in das ursprüngliche Format um. Dadurch werden zum Beispiel Umlaute in ihre utf8-Entsprechungen verwandelt.</p>
<p><span id="more-552"></span></p>
<h3>Das ist zu tun</h3>
<ol>
<li>Zunächst alle Tabellen im Originalformat belassen</li>
<li><strong>Eine SICHERHEITSKOPIE DER DATENBANK ANLEGEN</strong></li>
<li>Das Skript in einem Texteditor öffnen und die Datenbankparameter anpassen</li>
<li>Das Skript auf den Webspace hochladen und im Browser öffnen</li>
<li>Das Skript vom Webspace löschen</li>
</ol>
<h3>Wie funktioniert das Skript? Kann ich das auch ohne Skript machen?</h3>
<p>Der Trick ist ganz einfach: Wandel ich den Zeichenkodierung einer Tabellenspalte mit folgendem mysql-Befehl in Binärdaten um &#8230;</p>
<pre title="code" class="sql">ALTER TABLE Tabellenname CONVERT TO CHARACTER SET binary</pre>
<p>&#8230; änder dann mit diesem Befehl hier die Zeichenkodierung der Tabelle auf utf8 &#8230;</p>
<pre title="code" class="sql">ALTER TABLE Tabellenname CONVERT TO CHARACTER SET utf8</pre>
<p>&#8230; muss ich im nächsten Schritt die Tabellenspalte wieder auf den ursprünglichen Typ zurücksetzen:</p>
<pre title="code" class="sql">ALTER TABLE Tabellenname MODIFY Spaltentyp Spaltenoptionen</pre>
<p>(Wobei Spaltentyp der ursprüngliche Spaltentyp wie Text, Varchar, Enum etc. ist und die Spaltenoptionen die Optionen wie zB. NOT NULL oder DEFAULT sind.)</p>
<h3>Das Skript</h3>
<pre class="php" title="code">&lt;?php

$DB_HOST = 'localhost'; // Enter your Database Host
$DB_USER = 'username'; // Enter your Database Username
$DB_PASSWORD = 'password'; // Enter your Database Password
$DB_DATABASE = 'database'; // Enter your Database Name

$tables = array();
$tables_with_fields = array();

$link_id = mysql_connect($DB_HOST, $DB_USER, $DB_PASSWORD) or die('Error establishing a database connection');
echo 'Connected' ."\n";
mysql_select_db($DB_DATABASE, $link_id);
echo 'Selected database' ."\n";

// Gathering information about tables and all the text/string fields that can be affected
// during the conversion to UTF-8.
echo 'Getting tables:' ."\n";
$resource = mysql_query("SHOW TABLES", $link_id);
while ( $result = mysql_fetch_row($resource) ) {
	$tables[] = $result[0];
	echo ' - ' . $result[0] ."\n";
}

if ( !empty($tables) ) {
    echo 'Starting process' ."\n";
    foreach ( (array) $tables as $table ) {
        echo 'Working on table "' . $table . '"';
        $resource = mysql_query("EXPLAIN $table", $link_id);
        while ( $result = mysql_fetch_assoc($resource) ) {
            if ( preg_match('/(char)|(text)|(enum)|(set)/', $result['Type']) )
                $tables_with_fields[$table][$result['Field']] = $result['Type'] . " " . ( "YES" == $result['Null'] ? "" : "NOT " ) . "NULL " .  ( !is_null($result['Default']) ? "DEFAULT '". $result['Default'] ."'" : "" );
                echo '.';
        }
        echo "\n";
    }

    // Change all text/string fields of the tables to their corresponding binary text/string representations.
    echo 'Altering tables to binary character set';
    foreach ( (array) $tables as $table ) {
        mysql_query("ALTER TABLE $table CONVERT TO CHARACTER SET binary", $link_id);
        echo '.';
    }
    echo "\n";

    // Change database and tables to UTF-8 Character set.
    echo 'Altering tables to utf8 character set';
    mysql_query("ALTER DATABASE " . $DB_DATABASE . " CHARACTER SET utf8", $link_id);
    foreach ( (array) $tables as $table ) {
        mysql_query("ALTER TABLE $table CONVERT TO CHARACTER SET utf8", $link_id);
        echo '.';
    }
    echo "\n";

    // Return all binary text/string fields previously changed to their original representations.
    echo 'Altering binary text/string fields to original representation';
    foreach ( (array) $tables_with_fields as $table =&gt; $fields ) {
        foreach ( (array) $fields as $field_type =&gt; $field_options ) {
            mysql_query("ALTER TABLE $table MODIFY $field_type $field_options", $link_id);
        }
        echo '.';
    }
    echo "\n";

    // Optimize tables and finally close the mysql link.
    echo 'Optimizing tables' . "\n";
    foreach ( (array) $tables as $table )
        mysql_query("OPTIMIZE TABLE $table", $link_id);
    mysql_close($link_id);
    echo 'DONE';
} else {
    die('There are no tables?');
}
?&gt;</pre>
<p>Das Skript basiert auf dem mitlerweile nicht mehr weiter entwickeltem <a href="http://wordpress.org/extend/plugins/utf-8-database-converter/" target="_blank">WordPress UTF-8 Database Converter</a> und lässt sich in der obigen Form <a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/utf8-converter.zip">hier herunterladen</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.root-of-all-evil.com/2010/03/den-inhalt-einer-mysql-datenbank-in-utf8-umwandeln/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>MySQL Passwort zurücksetzen unter Windows</title>
		<link>http://blog.root-of-all-evil.com/2010/03/mysql-passwort-zurucksetzen-unter-windows/</link>
		<comments>http://blog.root-of-all-evil.com/2010/03/mysql-passwort-zurucksetzen-unter-windows/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 12:18:36 +0000</pubDate>
		<dc:creator>Felix</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[passwort]]></category>
		<category><![CDATA[passwort löschen]]></category>
		<category><![CDATA[passwort vergessen]]></category>
		<category><![CDATA[passwort zurücksetzen]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[windos]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[Zend Server]]></category>

		<guid isPermaLink="false">http://blog.root-of-all-evil.com/?p=478</guid>
		<description><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/03/mysql-passwort-zurucksetzen-unter-windows/" title="MySQL Passwort zurücksetzen unter Windows"></a>Ein kurzer Beitrag welcher beschreibt, wie man unter Windows das Passwort des Benutzers root zurücksetzen, bzw. neu setzen kann, wenn man es vergessen hat. Um das vergessene Passwort des root Benutzers bei MySQL neu zu setzen sind 3 Schritte notwendig: &#8230;<p class="read-more"><a href="http://blog.root-of-all-evil.com/2010/03/mysql-passwort-zurucksetzen-unter-windows/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://blog.root-of-all-evil.com/2010/03/mysql-passwort-zurucksetzen-unter-windows/" title="MySQL Passwort zurücksetzen unter Windows"></a><p>Ein kurzer Beitrag welcher beschreibt, wie man unter Windows das Passwort des Benutzers root zurücksetzen, bzw. neu setzen kann, wenn man es vergessen hat.</p>
<p><span id="more-478"></span></p>
<p>Um das vergessene Passwort des root Benutzers bei MySQL neu zu setzen sind 3 Schritte notwendig:</p>
<ul>
<li>MySQL-Daemon beenden</li>
<li>Init-Datei mit neuem Passwort anlegen</li>
<li>MySQL-Daemon mit Init-Datei starten &#8211; Passwort wird auf &#8220;Init-Passwort&#8221; gesetzt</li>
</ul>
<p>Die notwendigen Schritte werden gefolgt beschrieben bei Verwendung von Windows 7.</p>
<h3>Den MySQL-Daemon beenden</h3>
<p>Ein laufender MySQL-Daemon muss zuerst beendet werden, damit wir das Passwort ändern können. Hier werden zwei Varianten beschrieben, wobei Variante 1 klar zu empfehlen ist.</p>
<p><strong>Variante 1: MySQL-Daemon über die Computerverwaltung beenden</strong></p>
<p>Rufen Sie die Computerverwaltung über die folgende Schritte auf.</p>
<p style="text-align: center;"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/computerverwaltung_komplett.jpg" rel="lightbox[478]"><img class="size-full wp-image-514 aligncenter" title="computerverwaltung_komplett" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/computerverwaltung_komplett.jpg" alt="" width="554" height="427" /></a></p>
<p>In der Computerverwaltung wählen Sie links im Baum den Bereich Dienste (<span style="color: #ff0000;">1</span>), rechts MySQL (<span style="color: #ff0000;">2</span>) und beenden den Dienst zuletzt über das Stop-Icon (<span style="color: #ff0000;">3</span>).</p>
<p style="text-align: center;"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/mysql_beenden.jpg" rel="lightbox[478]"><img class="size-full wp-image-482 aligncenter" title="mysql_beenden" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/mysql_beenden.jpg" alt="" width="493" height="148" /></a></p>
<p><strong>Variante 2: MySQL-Daemon über den Task-Manager beenden/ killen</strong></p>
<p><em>(Diesen Schritt brauchen Sie nur durchführen, wenn Sie über die Computerverwaltung MySQL nicht beenden konnten).</em></p>
<p>Starten Sie den Task-Manger durch einen Rechtsklick auf die Taskleiste und einen Klick auf <em>Task-Manager starten</em>. Klicken Sie im Task-Manager auf den Button <em>Prozesse aller Benutzer anzeigen</em>, um auch die Systemprozesse und somit MySQL gelistet zu bekommen.</p>
<div id="attachment_499" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/alle-prozesse.jpg" rel="lightbox[478]"><img class="size-medium wp-image-499" title="alle prozesse" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/alle-prozesse-300x102.jpg" alt="" width="300" height="102" /></a><p class="wp-caption-text">Auch Systemprozesse anzeigen</p></div>
<p>Klicken Sie auf Abbildname (<span style="color: #ff0000;">1</span>) um alle Prozesse alphabetisch zu sortieren. Selektieren Sie nun in der Liste den Eintrag mysqld.exe (<span style="color: #ff0000;">2</span>). Diesen Prozess können Sie nun durch <em>Prozess beenden</em> (<span style="color: #ff0000;">3</span>) beenden. Bestätigen Sie die Aktion in dem Sie bei der Sicherheitsabfrage erneut auf <em>Prozess beenden</em> (<span style="color: #ff0000;">4</span>) klicken.</p>
<div id="attachment_500" class="wp-caption aligncenter" style="width: 815px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/mysql_killen.jpg" rel="lightbox[478]"><img class="size-full wp-image-500" title="mysql_killen" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/mysql_killen.jpg" alt="" width="805" height="470" /></a><p class="wp-caption-text">Killen von MySQL über den Task-Manager</p></div>
<h3>Init-Datei anlegen</h3>
<p>Die Init-Datei enthält Anweisungen, welche beim Starten von MySQL direkt ausgeführt werden. Wir hinterlegen in ein solchen Datei nun eine Direktive, um das Passwort des Users root zu ändern.</p>
<p>Legen Sie auf dem Desktop eine Datei mit dem Namen <em>mysql-init.txt</em> an. Öffen Sie Datei und kopieren Sie folgende SQL-Anweisung hinein</p>
<pre class="sql" title="code">SET PASSWORD FOR 'root'@'localhost' = PASSWORD('geheim');</pre>
<p>Natürlich können Sie statt <em>geheim </em>jedes erdenkliche Passwort verwenden.</p>
<h3>MySQL-Daemon mit init-Datei starten</h3>
<p>Nun starten wir den MySQL-Daemon mit der init-Datei, welcher wir zuvor erstellt haben.</p>
<p>Öffnen Sie eine Eingabeaufforderung (<em>Startmenü -&gt; CMD -&gt; ENTER</em>). Geben Sie nun folgende Anweisung ein:</p>
<pre class="html" title="code">&lt;Pfad mysqld.exe&gt; --init-file=C:\Users\&lt;Ihr Windowsbenutzer&gt;\Desktop\my-init.txt --console</pre>
<p>So sieht der Aufruf z.B. aus wenn MySQL in einem Unterordner namens <em>Zend </em>installiert ist:</p>
<div id="attachment_502" class="wp-caption aligncenter" style="width: 687px"><a href="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/console-mysqlinit.jpg" rel="lightbox[478]"><img class="size-full wp-image-502" title="console mysqlinit" src="http://blog.root-of-all-evil.com/wp-content/uploads/2010/03/console-mysqlinit.jpg" alt="" width="677" height="342" /></a><p class="wp-caption-text">mysqld mit --init-file aufgerufen</p></div>
<p>Das Passwort wurde nun auf Ihren Wert, welchen Sie im Schritt Init-Datei anlegen festgelegt haben, gesetzt. Beenden Sie nun die Eingabeaufforderung durch STRG + C. Starten Sie nun anschließend wieder mysql über die Diensteverwaltung (siehe oben), in dem Sie das Start-Icon benutzen.</p>
<p>Anschließend können Sie wie gewohnt MySQL nutzen &#8211; jetzt aber mit Ihrem neuen Passwort.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.root-of-all-evil.com/2010/03/mysql-passwort-zurucksetzen-unter-windows/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

