<?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>zeidlos.de &#187; Tutorials</title>
	<atom:link href="http://blog.zeidlos.de/category/tutorials/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.zeidlos.de</link>
	<description>Technik, Gesellschaft, CMYK &#38; RGB</description>
	<lastBuildDate>Mon, 23 Aug 2010 12:26:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Homebrew und crlf</title>
		<link>http://blog.zeidlos.de/homebrew-und-crlf</link>
		<comments>http://blog.zeidlos.de/homebrew-und-crlf#comments</comments>
		<pubDate>Sun, 21 Feb 2010 23:30:52 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://blog.zeidlos.de/?p=622</guid>
		<description><![CDATA[Git ist ein verteiltes Versionskontrollsystem. Soweit so gut. Genauer werde ich in diesem Artikel nicht darauf eingehen, schreibe aber seit einiger Zeit an einer Kurzeinf&#252;hrung. Nun will es der Zufall, dass ich Git f&#252;r einige Webprojekte einsetze. Auf diversen Seiten, so auch auf Github gab es den Hinweis, in der Config folgendes Einzutragen: autocrlf = [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://git-scm.de">Git</a> ist ein verteiltes Versionskontrollsystem. Soweit so gut. Genauer werde ich in diesem Artikel nicht darauf eingehen, schreibe aber seit einiger Zeit an einer Kurzeinf&#252;hrung.</p>
<p>Nun will es der Zufall, dass ich Git f&#252;r einige Webprojekte einsetze. Auf diversen Seiten, so auch auf <a href="http://github.com">Github</a> gab es den Hinweis, in der Config folgendes Einzutragen:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">autocrlf = true</div></div>
<p>Dies verhindert m&#246;gliche Probleme mit Windowsusern, wenn deren Editor mit LF Zeilenenden (Standard unter Unix und Linux Systemen, und eben auch unter Mac OS X) nicht zurecht kommt. Da viele Editoren unter Windows LF automatisch in CRLF (Windows Zeilenendsteuerzeichen) umwandeln, w&#252;rde dies &#196;nderungen in jeder Zeile einer ge&#228;nderten Datei ergeben.</p>
<p>Daher solle man doch lieber gleich mit CRLF arbeiten, wenn ggf. Windowsuser mit ins Repository pushen.</p>
<p>So weit so gut. Bis vor einiger Zeit funktionierte das auch alles wunderbar, und funktioniert auch immer noch.</p>
<p>Allerdings macht das mit <a href="http://github.com/mxcl/homebrew">Homebrew</a> Probleme. Homebrew ist ein Packetmanager f&#252;r Mac OS X, &#228;hnlich wie <a href="http://www.macports.org/">MacPorts</a> oder <a href="http://www.finkproject.org/">Fink</a>. Homebrew ist wesentlich schlanker als oben genannte Alternativen und setzt wenn m&#246;glich auf Versionen von Programmen, die bereits standardm&#228;&#223;ig auf OS X vorhanden sind.</p>
<p>Auf jeden Fall hat der Aufruf von &#8216;brew&#8217; mir folgende Fehlermeldung eingebracht:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">-bash: /usr/local/bin/brew: /usr/bin/ruby^M: bad interpreter: No such file or directory</div></div>
<p>Ich konnte mir erst keinen Reim darauf machen. Was ist passiert? brew hat beim Updaten sich selbst &#252;berschrieben und die Zeilenendsteuerzeichen von LF auf CRLF ge&#228;ndert und sich damit selbst ins Nirvana geschossen, da es Ruby nicht mehr aufrufen konnte.</p>
<p>Ich habe /usr/local/brew in <a href="http://macromates.com/">Textmate</a> ge&#246;ffnet und neu unter gleichem Namen, jedoch mit LF statt CRLF gespeichert. In der Datei /usr/local/.git/config habe ich noch folgende Zeile eingetragen:</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">autocrlf = false</div></div>
<p>Das &#252;berschreibt den Wert aus ~/.gitconfig und verhindert das Umwandeln.<br />
Vielleicht ist es auch einfach Sinnvoll Auto-CRLF nur zu setzen, wenn man es wirklich braucht. Keine Ahnung.</p>
<p>Jedenfalls wollte ich an dem Problem, bzw. dessen L&#246;sung teilhaben lassen, da ich irgendwie keine sinnvollen Ergebnisse ergooglen konnte.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zeidlos.de/homebrew-und-crlf/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backup von Websites leicht gemacht</title>
		<link>http://blog.zeidlos.de/backup-von-websites-leicht-gemacht</link>
		<comments>http://blog.zeidlos.de/backup-von-websites-leicht-gemacht#comments</comments>
		<pubDate>Tue, 09 Feb 2010 01:24:26 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://blog.zeidlos.de/?p=590</guid>
		<description><![CDATA[Viele Webseiten oder Blogbetreiber machen sich wenig Gedanken &#252;ber Backups. Was ist, wenn der Webhoster ausversehen die Platte schreddert, oder jemand mit zu viel destruktiver Energie &#252;ber eine Sicherheitsl&#252;cke Zugriff auf den Server bekommt und einfach mal eure Website l&#246;scht? Was, wenn ein Update z.B. von WordPress mal nicht sauber durch l&#228;uft, oder ihr ausversehen [...]]]></description>
			<content:encoded><![CDATA[<p>Viele Webseiten oder Blogbetreiber machen sich wenig Gedanken &#252;ber Backups. Was ist, wenn der Webhoster ausversehen die Platte schreddert, oder jemand mit zu viel destruktiver Energie &#252;ber eine Sicherheitsl&#252;cke Zugriff auf den Server bekommt und einfach mal eure Website l&#246;scht? Was, wenn ein Update z.B. von WordPress mal nicht sauber durch l&#228;uft, oder ihr ausversehen etwas l&#246;scht, was ihr gar nicht l&#246;schen wolltet? Diese Dinge sind in meinem Umfeld schon das ein oder andere mal geschehen, weshalb ich regelm&#228;&#223;ig ein lokales Backup von Datenbanken und Dateien meiner Websites mache.</p>
<p>Ich will euch nun zeigen, wie ihr recht einfach mit UNIX-Bordmitteln entsprechende Backups ziehen k&#246;nnt, ohne Shell-Zugriff auf den Webserver haben zu m&#252;ssen. (Ein Backup mit Hilfe von rsync oder &#228;hnlichem, per SSH ist dieser Methode definitiv vorzuziehen. Vorsicht, diese Methode sendet eure Logindaten unverschl&#252;sselt &#252;bers Internet!)</p>
<h3>Vorbereitung</h3>
<p>F&#252;r dieses Tutorial braucht ihr das UNIX-Tool wget. Unter Mac OS X ist dies nicht standardm&#228;ssig installiert, weshalb ihr es z.B. mit <a href="http://www.macports.org/">MacPorts</a>, <a href="http://www.finkproject.org/">Fink</a> oder <a href="http://github.com/mxcl/homebrew">Homebrew</a> nachinstallieren solltet. Ich pers&#246;nlich nutze Homebrew und habe dar&#252;ber nicht nur wget, sondern auch andere n&#252;tzliche Helferlein wie nmap, htop und einige andere installiert. F&#252;r Windows gibt es das Projekt <a href="http://www.cygwin.com/">Cygwin</a>.</p>
<p>Anleitungen zur Installation dieser Paket-Manager findet ihr auf den entsprechenden Seiten. Bitte lest erst weiter wenn Ihr wget nachger&#252;stet habt.</p>
<p>Es empfiehlt sich nun, an passender Stelle eine Ordnerstruktur f&#252;r eure Backups anzulegen. In meinem falle ist dies /Users/julius/Daten/websites/backups/. Wget legt dort f&#252;r jede Website einen Unterordner an, um die einzelnen Backups auseinander zu halten.</p>
<p>Nun m&#252;ssen wir ein bisschen schwarze Magie auf der Komandozeile ausf&#252;hren. Aber keine Angst unter OS X gibt es M&#246;glichkeiten, das Ganze sp&#228;ter mit einem Mausklick oder per Cron-Job auszuf&#252;hren.</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-c</span> <span style="color: #660033;">--mirror</span> <span style="color: #660033;">--preserve-permissions</span> &nbsp;<span style="color: #660033;">--ftp-user</span>=user <span style="color: #660033;">--ftp-password</span>=pass <span style="color: #c20cb9; font-weight: bold;">ftp</span>:<span style="color: #000000; font-weight: bold;">//</span>ftp.domain.com</div></div>
<p>Mit dieser einfachen Zeile im Terminal ladet ihr euch rekursiv den kompletten Inhalt des FTP-Servers in einen neuen bzw. bestehenden Ordner herunter.<br />
F&#252;r viele ist hier schon Schluss, da es f&#252;r einfache HTML-Webseiten ausreicht.</p>
<div class="warning">Bitte denkt daran, dass reines FTP die Daten unverschl&#252;sselt durchs Internet sendet. F&#252;hrt dieses Script niemals in einer unsicheren Umgebung, wie z.B. einem Internetcafe oder einem nicht gesicherten WLAN aus. Wget kennt leider keine M&#246;glichkeit per FTPs oder SFTP auf einen Rechner zu verbinden. Weiterhin liegen die Passw&#246;rter komplett unverschl&#252;sselt auf eurer Festplatte. Dies gilt auch f&#252;r Passw&#246;rter f&#252;r MySQL-Datenbanken o.&#228;. in den heruntergeladenen Dateien. Es empfiehlt sich, die Backups und auch das Shell-Script in einem verschl&#252;sselten Container aufzubewahren.</div>
<p>Wenn man m&#246;chte kann man nun diversen Voodo mit seiner Sicherheitskopie anstellen. Man kann ein rotierendes Backup erstellen, kann die Dateien mit Git Versionieren (das ist das, was ich momentan mache), sie komprimieren und auf dem Netzlaufwerk archivieren etc. Der Fantasie sind hier keine Grenzen gesetzt.</p>
<p>Sobald ich meinen Workflow so habe wie ich es mag, werde ich das noch mal etwas ausf&#252;hrlicher beschreiben.</p>
<p><em>Wie immer: Solltet ihr Fragen, W&#252;nsche, Feedback haben, immer her damit!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zeidlos.de/backup-von-websites-leicht-gemacht/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diesen Post Twittern?</title>
		<link>http://blog.zeidlos.de/diesen-post-twittern</link>
		<comments>http://blog.zeidlos.de/diesen-post-twittern#comments</comments>
		<pubDate>Mon, 16 Nov 2009 22:56:47 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Gestaltung]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Bloggen]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.zeidlos.de/?p=520</guid>
		<description><![CDATA[Ich habe mich schon etwas l&#228;nger gefragt, wie man seinen Besuchern ganz einfach die M&#246;glichkeit bieten kann, einen Post zu twittern. Mittels Parameter&#252;bergabe geht das eigentlich ganz einfach: &#60;a href=&#34;http://twitter.com/home/?status=&#60;?php the_title&#40;&#41;; ?&#62; &#60;?php the_permalink&#40;&#41;;?&#62; (via @zeidlos)&#34; target=&#34;_blank&#34;&#62;Tweet this&#60;/a&#62; Dies erzeugt einen Link der den Titel, die URL des Beitrages sowie euren Twitternamen an Twitter &#252;bergibt. [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mich schon etwas l&#228;nger gefragt, wie man seinen Besuchern ganz einfach die M&#246;glichkeit bieten kann, einen Post zu twittern. Mittels Parameter&#252;bergabe geht das eigentlich ganz einfach:</p>
<div class="codecolorer-container php-brief mac-classic" style="border:1px solid #9F9F9F;width:435px;"><div class="php-brief codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;a href=&quot;http://twitter.com/home/?status=<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> <br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span> (via @zeidlos)&quot; target=&quot;_blank&quot;&gt;Tweet this&lt;/a&gt;</div></div>
<p>Dies erzeugt einen Link der den Titel, die URL des Beitrages sowie euren Twitternamen an Twitter &#252;bergibt. Klar kann man daf&#252;r auch ein tolles Plugin basteln, aber wenn man das mit einer Zeile Code realisieren kann, warum so umst&#228;ndlich.</p>
<p>Dieser Codebaustein sollte am besten im Loop stehen. D.h. z.B. in der page.php, index.php und single.php an folgender oder &#228;hnlicher Stelle:</p>
<div class="codecolorer-container php mac-classic" style="border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span> the_content<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Weiterlesen &amp;raquo;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_time<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'d M Y'</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> comments_popup_link<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Noch keine Meinung'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1 Meinung'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'% Meinungen'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'commentslink'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> edit_post_link<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Edit'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">' &nbsp;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&lt;a href=&quot;http://twitter.com/home/?status=<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_title<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> <br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> the_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span> (via @zeidlos)&quot; target=&quot;_blank&quot;&gt;Tweet this&lt;/a&gt;</div></div>
<p>Ich hoffe, das hat euch was gebracht. Wenn ihr den Codeschnipsel benutzen wollt, &#228;ndert doch bitte den eingetragenen Twitternamen auf euren. ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zeidlos.de/diesen-post-twittern/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto: Apache + PHP + MySQL auf Mac OS X 10.6 Snowleopard</title>
		<link>http://blog.zeidlos.de/howto-apache-php-mysql-auf-mac-os-x-10-6-snowleopard</link>
		<comments>http://blog.zeidlos.de/howto-apache-php-mysql-auf-mac-os-x-10-6-snowleopard#comments</comments>
		<pubDate>Thu, 24 Sep 2009 23:00:41 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.zeidlos.de/howto-apache-php-mysql-auf-mac-os-x-10-6-snowleopard</guid>
		<description><![CDATA[In diesem Tutorial m&#246;chte ich euch zeigen, wie einfach es ist, einen Webserver auf eurem Mac zu installieren, und effektiv als Entwicklungsumgebung zu nutzen. Webentwicklung auf dem laufenden Webserver auf dem die Zielseite liegt, kostet nicht nur Nerven und Traffic, nein es macht euch auch immer abh&#228;ngig von einem Netzzugang. Warum kompliziert, wenn es auch [...]]]></description>
			<content:encoded><![CDATA[<p>In diesem Tutorial m&#246;chte ich euch zeigen, wie einfach es ist, einen Webserver auf eurem Mac zu installieren, und effektiv als Entwicklungsumgebung zu nutzen.</p>
<p>Webentwicklung auf dem laufenden Webserver auf dem die Zielseite liegt, kostet nicht nur Nerven und Traffic, nein es macht euch auch immer abh&#228;ngig von einem Netzzugang. Warum kompliziert, wenn es auch einfach(er) geht?</p>
<p>So kann man ganz gem&#252;tlich in der Bahn oder im Bus weiterentwickeln und bastelt nicht am live System herum, sondern auf seiner ganz privaten Mampp Maschine (Mac Apache &amp; MySQL &amp; PHP &amp; Perl).</p>
<p>Es gibt sogar “out of the Box” L&#246;sungen wie etwa xampp f&#252;r den Mac oder MAMPP. Ich m&#246;chte euch jedoch zeigen, wie ihr euren Mampp selbst einrichtet, um euch gleichzeitig das n&#246;tige Basiswissen an die Hand zu geben, wie ihr mit den Konfigurationsdateien umgeht, was euch bei der Konfiguration eures Live Systems helfen k&#246;nnte.</p>
<p>Fangen wir also an:</p>
<p>Was brauchen wir? Wir brauchen MySQL und einen Apache Webserver, ich bevorzuge hier den Apache2, da der einige Features mehr mitbringt als der alte Apache1 und schon seit l&#228;ngerer Zeit ein quasi Standard ist.</p>
<p>Was also tun? Richtig, wir informieren uns, ob es den Apache2 f&#252;r den Mac bereits irgendwo gibt. – Und siehe da: Unter dem Men&#252;punkt “Sharing” gibt es die Option “Websharing”. Hinter dieser Option versteckt sich bereits ein Apache2 der nun nur noch eingerichtet werden muss.</p>
<p>
<a href="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-13.43.52.png"><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-13.43.52.png" width="480" height="409" alt="Bildschirmfoto 2009-09-24 um 13.43.52.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>Was nun? Nun k&#246;nnen wir uns einen Keks freuen, da der Apache scheinbar schon l&#228;uft. Das k&#246;nnen wir nun &#252;berpr&#252;fen in dem wir http://localhost in unseren Browser eintippen.</p>
<p>Dann sollte das Ganze &#252;brigens in etwa so aussehen:</p>
<p><a href="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-13.38.24.png"><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-13.38.24.png" width="480" height="366" alt="Bildschirmfoto 2009-09-24 um 13.38.24.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>Mac OS X hat euch eine private Seite in das Verzeichnis /Users/username/Sites oder im deutschen Finder &#8220;Websites&#8221; angelegt.</p>
<p>
<a href="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-13.41.01.png"><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-13.41.01.png" width="480" height="336" alt="Bildschirmfoto 2009-09-24 um 13.41.01.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>Soweit so gut.</p>
<p>Jetzt geht es darum, herauszufinden, wo der Apache liegt, und wo die entsprechenden Konfigurationsdateien zu finden sind.</p>
<p>Dazu gehen wir ins Terminal und versuchen es mal auf gut Gl&#252;ck mit dem Standartverzeichnis des Apache2 unter Unix Systemen und &#246;ffnen das Verzeichnis mit dem Befehl “open /etc/apache2/” (ohne Anf&#252;hrungsstriche). Jetzt &#246;ffnet sich ein Finder Fenster mit dem Ordner, an den man sonst ohne weiteres &#252;ber den Finder nicht herankommt.</p>
<p>Im Ordner &#8220;users&#8221; befindet sich f&#252;r jeden User auf dem System eine Datei in der den Ordner angibt, in dem die Website liegt. Diesen Ordner k&#246;nnt ihr nach belieben &#228;ndern.</p>
<p><a href="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-13.43.26.png"><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-13.43.26.png" width="480" height="350" alt="Bildschirmfoto 2009-09-24 um 13.43.26.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>Okay, soweit so sch&#246;n. Nun m&#246;chten wir aber nicht immer das Tildezeichen (~) welches ihr auf eurer Tastatur nicht findet (alt+n) eintippen, sondern einfach http://localhost oder http://127.0.0.1 was das gleiche ist.</p>
<p>Daf&#252;r m&#252;ssen wir das Document Root des Webservers &#228;ndern. Dazu suchen wir in der httpd.conf nach &#8220;DocumentRoot&#8221;. Ich werde in Zeile 160 f&#252;ndig und &#228;ndere den Eintrag entsprechend. Das gleiche noch in Zeile 191.</p>
<p><a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-22.44.59.png" width="480" height="350" alt="Bildschirmfoto 2009-09-24 um 22.44.59.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>Ich m&#246;chte mit .htaccess Dateien arbeiten, da ich diese aus diversen Gr&#252;nden auch in meinen Projekten einsetze. Daher muss ich noch festlegen, welche Optionen aus der .htaccess &#252;bernommen werden. Ich setze den Wert f&#252;r &#8220;AllowOverride&#8221; auf All um m&#246;glichst gro&#223;e Freiheit zu haben. Da ich der einzige bin, der auf diesem Rechner Schreibrechte hat, ist das so auch in Ordnung.</p>
<p>Da der Webserver auf meinem Mac eine reine Entwicklungsumgebung werden soll, m&#246;chte ich nicht, dass jemand von ausserhalb darauf zugreifen darf. Daher schr&#228;nke ich den Zugriff mit der Direktive Allow f&#252;r dieses Verzeichnis ein. Ich setze als neuen Wert Allow from 127.0.0.1</p>
<p>Nun kann ich nur noch von meinem Rechner aus zugreifen. Und auch nur noch &#252;ber http://127.0.0.1</p>
<p>Nun probieren wir das Ganze doch mal aus. Um eure &#196;nderungen wirksam zu machen, m&#252;sst ihr den Apache neu starten. Das geht am einfachsten indem ihr in der Systemsteuerung das Websharing einmal aus- und dann wieder einschaltet. Nat&#252;rlich geht das mit dem Terminal viel schneller, aber wir bleiben mal beim Einfachen weg.<br />
<a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-23.22.46.png" width="480" height="359" alt="Bildschirmfoto 2009-09-24 um 23.22.46.png" style="margin-top:20px; margin-bottom:20px;" /></a> <a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-23.22.58.png" width="480" height="359" alt="Bildschirmfoto 2009-09-24 um 23.22.58.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>So sieht das Ganze nun bei mir aus. Da ich keine index.html im DocumentRoot habe, werden mir die Ordner darin dank der Option Indexes in der httpd.conf angezeigt.</p>
<p>Herzlichen Gl&#252;ckwunsch schon mal. Dein Apache l&#228;uft und ist deinen Bed&#252;rfnissen angepasst. Nun gehts weiter im Text. Es fehlen noch PHP, MySQL und der Perl-Support. Ihr k&#246;nnt aber auch noch ein wenig in der httpd.conf herumst&#246;bern. Diese Konfigurationsdateien sind in der Regel recht gut dokumentiert.</p>
<p>Als n&#228;chstes gucken wir uns an, ob PHP nicht bereits l&#228;uft. Daf&#252;r legen wir eine Datei mit dem Namen info.php in das Verzeichnis und schreiben dort rein: &lt;? phpinfo() ?&gt;.</p>
<p>
<a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-23.36.18.png" width="480" height="403" alt="Bildschirmfoto 2009-09-24 um 23.36.18.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p><a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-24-um-23.36.49.png" width="480" height="420" alt="Bildschirmfoto 2009-09-24 um 23.36.49.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>Und siehe da: PHP l&#228;uft bereits in der Version 5.3.0. Auf der Seite k&#246;nnt ihr euch auch noch angucken, was bereits an Modulen geladen ist. So ist z.B. die Unterst&#252;tzung f&#252;r GD, eine Grafikbibliothek zur Manipulation von Bildern bereits geladen.</p>
<p>Da wir bereits vorher den Zugriff auf unseren Webserver eingeschr&#228;nkt haben, und das Thema der Absicherung einer PHP-Installation erstens ganze B&#252;cher f&#252;llen k&#246;nnte, und ich zweitens auch in keinster Weise kompetent genug w&#228;re, gehe ich darauf nicht weiter ein.</p>
<p>(Merke: In OS X 10.5 musste PHP explizit in der httpd.conf als Modul geladen werden!)</p>
<p>Nun kommt MySQL dran. Als erstes laden wir die Installationsdatei herunter: <a href="http://dev.mysql.com/downloads/mysql/5.1.html" target="_blank" title="Download MySQL">http://dev.mysql.com/downloads/mysql/5.1.html</a>. Der Installer f&#252;r 10.5. funktioniert auch unter 10.6. Auf der oben referenzierten Seite steht auch ein MD5-Hash f&#252;r das Paket. Dies ist wichtig, da wir den Download verifizieren wollen. Haben wir die richtige Version? Wurde sie manipuliert oder k&#246;nnen wir das Paket beruhig installieren?</p>
<p>
<a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-25-um-00.11.04.png" width="480" height="140" alt="Bildschirmfoto 2009-09-25 um 00.11.04.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>Die beiden Hashes stimmen &#252;berein. Daher k&#246;nnen wir davon ausgehen, dass an der Datei nichts manipuliert wurde. Soweit so gut.</p>
<p><a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-25-um-00.14.31.png" width="480" height="349" alt="Bildschirmfoto 2009-09-25 um 00.14.31.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p><a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-25-um-00.13.52.png" width="480" height="356" alt="Bildschirmfoto 2009-09-25 um 00.13.52.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>Noch schnell das Prefpane und das Startupitem installieren und dann den Server gestartet:</p>
<p>
<a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-25-um-00.16.15.png" width="480" height="263" alt="Bildschirmfoto 2009-09-25 um 00.16.15.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>Nun haben wir also einen Webserver mit PHP und MySQL. Um zu testen ob es l&#228;uft, verbinde ich mich mit Sequel Pro, einem coolen Programm zur Manipulation von MySQL Datenbanken auf Localhost mit dem Benutzernamen root (kein Passwort ben&#246;tigt).</p>
<p><a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-25-um-00.19.36.png" width="480" height="314" alt="Bildschirmfoto 2009-09-25 um 00.19.36.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>
<a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-25-um-00.19.09.png" width="480" height="389" alt="Bildschirmfoto 2009-09-25 um 00.19.09.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>Und siehe da, es funktioniert. Wunderbar, was will man mehr? Ab diesem Punkt k&#246;nnt ihr aufh&#246;ren zu lesen. Ihr habt einen laufenden Webserver mit MySQL. Ihr solltet dennoch kurz weiterlesen. ;)</p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;"><span style="line-height: normal;">Nun sollten wir MySQL der <span class="caps">PATH</span> Variable in unserer Shell hinzuf&#252;gen. Solltet ihr mit der Bash, der Standartshell unter Mac OS X ab 10.3 arbeiten, gebt einfach folgenden Befehl in eure Shell ein*:</span></p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">open /Users/username/.bash_profile</p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">und f&#252;gt folgende Zeilen hinzu:</p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">export <span class="caps">PATH</span>=/usr/local/mysql/bin:$PATH</p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">alias mysql=/usr/local/mysql/bin/mysql</p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">alias mysqladmin=/usr/local/mysql/bin/mysqladmin<br />
<span style="font-family: sans-serif;">Solltet ihr eine andere Shell nutzen, wisst selbst warum, und werdet euch so gut mit eurem System auskennen, um die <span class="caps">PATH</span> Variable selbst anzupassen. ;)</span><br />
Nun m&#252;sst ihr euer Terminal einmal schlie&#223;en und wieder &#246;ffnen. Die Einstellungen aus der .bash_profile werden nur beim Start der Bash geladen. Wenn Ihr also &#196;nderungen an der Datei vornehmt, m&#252;sst ihr nach dem Speichern eine neue Bash aufmachen, damit das funktioniert.</p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">Nun k&#246;nnt ihr mysql bzw. mysqladmin auch von der Befehlszeile aus nutzen, was manchmal von Vorteil ist.</p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;"><span style="line-height: normal;">Hier noch ein Hinweis von dev.mysql.com:</span></p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;"><span style="line-height: normal;">Das Mac OS X-PKG von MySQL installiert sich im Verzeichnis<br />
/usr/local/mysql-VERSION.<br />
Ferner wird eine symbolische Verkn&#252;pfung<br />
/usr/local/mysql eingerichtet, die ebenfalls<br />
auf die neue Position verweist. Ist ein Verzeichnis namens<br />
/usr/local/mysql bereits vorhanden, dann wird<br />
dieses zun&#228;chst in /usr/local/mysql.bak<br />
umbenannt. Au&#223;erdem erstellt das Installationsprogramm die<br />
Grant-Tabellen in der mysql-Datenbank. Hierzu<br />
f&#252;hrt es den Befehl mysql_install_db aus.</span></p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;"><span style="line-height: normal;"><span style="font-family: sans-serif;">Nun gehen wir daran, das System etwas sicherer zu machen. Momentan hat n&#228;mlich der Hauptuseraccount (root) unseres MySQL Servers gar kein Passwort… O.o</span><br />
Das m&#252;ssen wir schnell &#228;ndern.</span></p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">Mit dem Befehl</p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">sudo mysql_secure_installation</p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">ruft ihr ein Script auf, dass euere MySQL Installation absichert (geht nur mit gesetzter $PATH Variable). Ihr m&#252;sst ein Passwort f&#252;r den User Root angeben (bitte unbedingt merken. :D), solltet den Anonymen Login abschalten, den Login f&#252;r Root von Remotehosts ausschalten, die Tabelle Test l&#246;schen, und die Tabellen neu laden.</p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">
<a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-25-um-00.43.26.png" width="480" height="328" alt="Bildschirmfoto 2009-09-25 um 00.43.26.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">Nun ist unsere MySQL Installation ersteinmal ausreichend gesichert.</p>
<p style="background-color: rgba(0, 0, 0, 0); color: #333333; font-family: verdana; font-size: 12px; line-height: 17px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 15px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; clip-rule: nonzero; flood-color: #000000; flood-opacity: 1; lighting-color: #FFFFFF; stop-color: #000000; stop-opacity: 1; pointer-events: visiblepainted; color-interpolation: srgb; color-interpolation-filters: linearrgb; color-rendering: auto; fill: #000000; fill-opacity: 1; fill-rule: nonzero; image-rendering: auto; shape-rendering: auto; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 4; stroke-opacity: 1; text-rendering: auto; alignment-baseline: auto; baseline-shift: baseline; dominant-baseline: auto; text-anchor: start; writing-mode: lr-tb; glyph-orientation-horizontal: 0deg; glyph-orientation-vertical: auto;">Eure Test- und Entwicklungsumgebung sollte nun entsprechend laufen. Alles weitere ist nettes Beiwerk. Solltet ihr euch entscheiden das Ganze als Produktivumgebung, also als ernsten Webserver laufen zu lassen, w&#228;re es sinnvoll, auch an <span class="caps">SSL</span> zu denken. Wenn ihr aber nur von localhost darauf zugreift, braucht ihr logischerweise auch kein <span class="caps">SSL.</span></p>
<p>
<span style="line-height: 17px;">Ich installiere ein WordPress Blog um noch mal zu testen, ob wirklich alles l&#228;uft:</span></p>
<p><a href=$url $width><img src="http://blog.zeidlos.de/wp-content/uploads/2009/09/Bildschirmfoto-2009-09-25-um-00.31.31.png" width="480" height="407" alt="Bildschirmfoto 2009-09-25 um 00.31.31.png" style="margin-top:20px; margin-bottom:20px;" /></a></p>
<p>L&#228;uft! :)</p>
<p>Ich werde mich in diesem Tutorial nicht mit weiterf&#252;hrenden Themen besch&#228;ftigen. Das Thema Perl, SSL o.&#228;. behandle ich ggf. sp&#228;ter noch mal. Wer sich zum Thema SSL einlesen m&#246;chte, dem empfehle ich mein <a href="http://blog.zeidlos.de/howto-apache-ssl-mysql-auf-macos-x-10-5" target="_blank" title="Howto: Apache, MySQL and SSL on Mac OS X 10.5">Tutorial zum Apache auf 10.5</a>. Dort habe ich das Thema SSL (Zertifikatserzeugung, einbinden in den Apache, etc.) in epische Breite behandelt.</p>
<p>Wie immer: Kritik, Anregungen, Danksagungen etc. d&#252;rfen gern in Form von Kommentaren oder E-Mails ge&#228;ussert werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zeidlos.de/howto-apache-php-mysql-auf-mac-os-x-10-6-snowleopard/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>vTutorial: Erstellen eines Badges f&#252;r Webseiten und Print</title>
		<link>http://blog.zeidlos.de/vtutorial-erstellen-eines-badges-fuer-webseiten-und-print</link>
		<comments>http://blog.zeidlos.de/vtutorial-erstellen-eines-badges-fuer-webseiten-und-print#comments</comments>
		<pubDate>Thu, 03 Jul 2008 13:32:59 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://browsergames.org/blog/vtutorial-erstellen-eines-badges-fuer-webseiten-und-print</guid>
		<description><![CDATA[Ich habe f&#252;r einen Bekannten ein kleines Video Tutorial gemacht, das ich euch nicht vorenthalten m&#246;chte. Ihr kennt doch alle diese tollen &#8220;Web2.0&#8243; Buttons und Badges. Ein solches habe ich f&#252;r euch im Illustrator CS3 erstellt. Da ein Video mehr als tausend Bilder sagt, hier das Video: Download als High Ress Download des fertigen Illustrator [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe f&#252;r einen Bekannten ein kleines Video Tutorial gemacht, das ich euch nicht vorenthalten m&#246;chte.</p>
<p>Ihr kennt doch alle diese tollen &#8220;Web2.0&#8243; Buttons und Badges. Ein solches habe ich f&#252;r euch im Illustrator CS3 erstellt.<br />
Da ein Video mehr als tausend Bilder sagt, hier das Video:</p>
<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/WteEemhredo"></param> <embed src="http://www.youtube.com/v/WteEemhredo" type="application/x-shockwave-flash" width="425" height="350"></embed></object><br />
<a href="http://browsergames.org/pub/bildstoerer.mov">Download als High Ress</a><br />
<a href="http://browsergames.org/pub/bildstoerer_NEU.ai">Download des fertigen Illustrator Dokuments</a></p>
<p>&#220;ber Feedback in den Kommentaren freue ich mich wie immer. ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zeidlos.de/vtutorial-erstellen-eines-badges-fuer-webseiten-und-print/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://browsergames.org/pub/bildstoerer.mov" length="29571046" type="video/quicktime" />
		</item>
		<item>
		<title>Tutorial: Einrichten von GnuPG unter Mac OS X</title>
		<link>http://blog.zeidlos.de/tutorial-einrichten-von-gnupg-unter-mac-os-x</link>
		<comments>http://blog.zeidlos.de/tutorial-einrichten-von-gnupg-unter-mac-os-x#comments</comments>
		<pubDate>Tue, 10 Jun 2008 22:50:39 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[E-Mail]]></category>
		<category><![CDATA[GnuPG]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Schäuble]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[SINA]]></category>
		<category><![CDATA[Verschlüsselung]]></category>

		<guid isPermaLink="false">http://browsergames.org/blog/?p=118</guid>
		<description><![CDATA[GnuPG/PGP ist eine Methode, E-Mails zu signieren und zu verschl&#252;sseln. Ich pers&#246;nlich versende meine E-Mails immer mit meiner Signatur, damit der Empf&#228;nger &#252;berpr&#252;fen kann, ob diese E-Mail tats&#228;chlich von mir stammt, und ob diese auf dem Weg zu ihm ver&#228;ndert wurde oder nicht. Die technischen Details k&#246;nnt ihr auf Wikipedia nachlesen. (openPGP bei Wikipedia) PGP [...]]]></description>
			<content:encoded><![CDATA[<p>GnuPG/PGP ist eine Methode, E-Mails zu signieren und zu verschl&#252;sseln. Ich pers&#246;nlich versende meine E-Mails immer mit meiner Signatur, damit der Empf&#228;nger &#252;berpr&#252;fen kann, ob diese E-Mail tats&#228;chlich von mir stammt, und ob diese auf dem Weg zu ihm ver&#228;ndert wurde oder nicht.</p>
<p>Die technischen Details k&#246;nnt ihr auf Wikipedia nachlesen. (<a title="Open PGP bei Wikipedia" href="http://de.wikipedia.org/wiki/OpenPGP" target="_blank">openPGP bei Wikipedia</a>)</p>
<p>PGP kann also Daten Signieren und damit die Unverf&#228;lschtheit und die Echtheit der Quelle sicher stellen (Wenn die Daten ver&#228;ndert wurden, oder der Absender nicht mit dem richtigen Schl&#252;ssel signiert hat, gibt es eine Fehlermeldung und der Empf&#228;nger muss davon ausgehen, dass der Inhalt der Mail nicht echt ist).</p>
<p>Es ist im Allgemeinen &#252;berhaupt nicht schwierig fremde E-Mails zu lesen. Entweder wird der Datenstrom von eurem Rechner zum Gateway (z.B. Router) belauscht, oder im Internet mitgeschnitten. Die f&#252;r einen solchen &#8220;Lauschangriff&#8221; einzusetzenden Programme sind kinderleicht zu bedienen (selbst ich kann soetwas) und frei im Internet erh&#228;ltlich. Alternativ kann jemand Zugang zu euren E-Mails erhalten, in dem er sich unberechtigter Weise Zugriff auf euren Mailserver verschafft. Kann er den Server z.B. durch das Ausnutzen einer bekannten Sicherheitsl&#252;cke oder durch Aussp&#228;hen eines Administrator-/Rootpasswortes mit den n&#246;tigen Rechten ausgestattet nutzen, so kann er alle E-Mails die dort im Klartext abgelegt sind, lesen.</p>
<p>Wenn ihr nicht m&#246;chtet, dass irgendwer durch Abfangen eurer gesendeten Daten, oder den unberechtigten Zugriff auf den E-Mail Server z.B. gesch&#228;ftliche Absprachen oder die E-Mails an die Liebste zu Hause lesen kann, k&#246;nnt ihr die E-Mails zus&#228;tzlich zur Signierung auch noch verschl&#252;sseln.</p>
<p>Zus&#228;tzlich k&#246;nnt ihr auch eure Daten verschl&#252;sseln. Zum Beispiel ist dies bei Backups sinnvoll. In der Regel enthalten diese sehr sensible Daten und sollten gesch&#252;tzt sein. Daf&#252;r gibt es nat&#252;rlich mehrere Alternativen: Die Medien k&#246;nnte man in einen Safe einschlie&#223;en, oder sie, was einfacher ist, einfach verschl&#252;sseln. Hat man erst einmal Zugriff auf fremde Backups die nicht verschl&#252;sselt sind, kann man nach Belieben darin herumst&#246;bern. Eine DVD mit gesicherten Daten achtlos auf dem Schreibtisch liegen gelassen, und schon k&#246;nnte der Chef, Kollege, Nachbar oder Einbrecher eure Urlaubsbilder, Liebesbriefe, Tageb&#252;cher, gespeicherte Passw&#246;rter und was weiss ich nicht was lesen. Sind diese Daten aber verschl&#252;sselt abgelegt, wird das fast unm&#246;glich.<br />
Nachem ich euch erkl&#228;rt habe, wof&#252;r Ihr GnuPG einsetzen k&#246;nnt, geht es jetzt ans Eingemachte: Die Installation und Verwendung.</p>
<p>Um Loszulegen brauchen wir erst einmal einige Programme:</p>
<ul>
<li><a title="MacPG" href="http://macgpg.sourceforge.net/de/" target="_blank">MacPG</a> &#8211; GnuPG Quelldateien mit einem Installer f&#252;r Mac OS X (<a title="Sourceforge MacPG" href="http://prdownloads.sourceforge.net/macgpg/GnuPG1.4.7.dmg?download" target="_blank">Direktdownload f&#252;r Mac OS X 10.4</a>)</li>
<li><a title="GPG Schl&#252;sselbund" href="http://prdownloads.sourceforge.net/macgpg/GPG_Keychain_Access.0.7.0.1.zip?download" target="_blank">GPG Schl&#252;sselbund</a> &#8211; Analog zum Mac OS X internen Schl&#252;sselbund ein Tool mit dem die  GPG Schl&#252;ssel bequem verwaltet werden k&#246;nnen.</li>
<li><a title="GnuPGFileTool" href="http://prdownloads.sourceforge.net/macgpg/GPG_Keychain_Access.0.7.0.1.zip?download" target="_blank">GPGFileTool</a> &#8211; Programm zum Verschl&#252;sseln und Signieren von Dateien (F&#252;r Backups, etc.)</li>
<li><a title="GPGPreferences" href="http://prdownloads.sourceforge.net/macgpg/GPGPreferences-1.2.2.dmg?download" target="_blank">GPGPreferences</a> &#8211; Plugin f&#252;r die Systemeinstellungen zum einfachen konfigurieren von GnuPG</li>
</ul>
<p>Sowie eines der folgenden Plugins f&#252;r euer Mailprogramm:</p>
<ul>
<li><a title="GPGMail" href="http://www.sente.ch/software/GPGMail" target="_blank">GPGMail</a> &#8211; Plugin f&#252;r Apples &#8220;Mail&#8221;</li>
<li><a title="Entouragegpg" href="http://entouragegpg.sourceforge.net/">EntourageGPG</a> &#8211; Plugin f&#252;r Mircosofts Entourage</li>
<li><a title="EnigMail" href="http://enigmail.mozdev.org/index.html" target="_blank">Enigmail</a> &#8211; Plugin f&#252;r Mozilla Thunderbird</li>
</ul>
<p>Habt ihr alles heruntergeladen, ist die Vorarbeit getan. Jetzt geht es wirklich los. GnuPG ist ein reines konsolenbasiertes Programm. Da wir aber ein wenig tippfaul sind, und die Konsole noch nie genutzt haben, h&#228;tten wir gern alles simpel und wie wir es gewohnt sind. Daf&#252;r die ganzen Programme. Die nun folgenden Schritte sollten in Etwa 10-20 Minuten in Anspruch nehmen. Danach kann man E-Mails signieren und, sofern man die Schl&#252;ssel mit dem anderen ausgetauscht hat, auch Verschl&#252;sseln.</p>
<p>Installiere folgende Programme: MacPG (GnuPG), GPG Schl&#252;sselbund, GPGFileTool und GPGPreferences.</p>
<p>Ist dies geschehen, rufst du GPGPreferences &#252;ber deine Systemeinstellungen&gt;Sonstiges auf. Die Einstellungen kannst du ungesehen &#252;bernehmen. Zur Sicherheit solltest du aber pr&#252;fen, ob 1. Die &#246;ffentlichen Schl&#252;ssel zum Pr&#252;fen einer Signatur automatisch vom Schl&#252;sselserver heruntergeladen werden und ob du einen Schl&#252;sselserver ausgew&#228;hlt hast. (Register &#8220;Server&#8221;)</p>
<p>Nun kannst du mit dem GPG Schl&#252;sselbund ein Schl&#252;sselpaar erzeugen. &#220;ber &#8220;Schl&#252;ssel&gt;Erzeugen&#8221; rufst du einen selbsterkl&#228;renden Assistenten auf, der dich durch den Prozess der Schl&#252;sselerzeugung f&#252;hrt. Ich empfehle eine Schl&#252;ssell&#228;nge von 4096 Byte. Das ist zwar etwas rechenintensiver, hat jedoch den Vorteil einer st&#228;rkeren Verschl&#252;sselung.</p>
<p>W&#228;rend der Einrichtung muss eine Phassphrase eingegeben werden. Diese sollte wenn m&#246;glich nicht aus einem einzigen Wort bestehen. Sinnvoll sind l&#228;ngere S&#228;tze in denen Zeichen z.B. Zahlen ausgetauscht werden. Eine m&#246;gliche Passphrase w&#228;re also: <strong><em>1ch b3nutze zum 3rsten M@l GPG/PGP und b1n sch0n ganz gespannt wie es l&#228;uft!</em></strong> (Diese Phassphrase nat&#252;rlich bitte nicht nutzen!)</p>
<p>Hast du alle Angaben gemacht, werden die Schl&#252;ssel erzeugt. Hierf&#252;r ben&#246;tigt der Rechner eine Menge Zufallszahlen und einiges an Zeit. Du solltest dich also nicht wundern, wenn der Prozess etwas l&#228;nger dauert. Inzwischen kannst du dich im Internet ein wenig &#252;ber PGP bzw. openPGP informieren.</p>
<p>Nun muss dein Schl&#252;ssel auf einen Schl&#252;sselserver hochgeladen werden. Dies geht am einfachsten &#252;ber das Programm &#8220;GPG Schl&#252;sselbund&#8221;. Wenn du den Schl&#252;ssel ausw&#228;hlst, und &#8220;Schl&#252;ssel&gt;Zum Schl&#252;sselserver senden&#8221; ausf&#252;hrst, &#246;ffnet sich wieder eine Konsole die dir die Tipparbeit abnimmt.</p>
<p>Indem ihr das Plugin f&#252;r eure favorisierte Mailing Anwendung installiert, macht ihr GnuPG f&#252;r euer E-Mail Programm nutzbar. Hier k&#246;nnt ihr noch diverse Einstellungen machen. Zum Beispiel, ob eure E-Mails generell digital signiert werden, ob immer dann, wenn es m&#246;glich ist, verschl&#252;sselt gesendet werden soll, und wie lange eure Passphrase gespeichert werden soll. Die M&#246;glichkeit, sie generell zu speichern, sollte mit Vorsicht genossen werden. Sie macht euren Schl&#252;ssel nicht unbedingt sicher. Jeder, der auf irgendeine Weise Zugriff auf euren Rechner hat, k&#246;nnte den Schl&#252;ssel kompromitieren, da er neben dem geheimen Schl&#252;ssel nun auch die dazugeh&#246;rige Passphrase hat. Ein guter Mittelweg ist es, den Key f&#252;r die aktuelle Sitzung zu speichern. So kann niemand euren Key nutzen, ohne dass ihr vorher die Passphrase eingegeben habt.</p>
<p>Im allgemeinen ist die Anwendung z.B. zusammen mit &#8220;Mail&#8221; recht unkompliziert, simpel und selbsterkl&#228;rend. Sollte ich mal wieder etwas Zeit haben, werde<br />
ich diese kleine Anleitung auch mit diversen Screenshots w&#252;rzen und noch etwas ausbauen.</p>
<p>F&#252;r alle, die genau wissen wollen, was hinter den ganzen Programmen abgeht, habe ich hier noch einen kleinen <a title="Erzeugen eines GnuPG Schl&#252;ssels per Konsole" href="http://browsergames.org/blog/?page_id=47">Text</a> &#252;ber die Erzeugung eines Schl&#252;ssels &#252;ber die Konsole zusammengeschrieben. So schwer wie es vielleicht aussieht, ist es gar nicht. Ausserdem findet ihr so vielleicht Gefallen an der Konsole und deren M&#246;glichkeiten.</p>
<p align="center"><a rel="license" href="http://creativecommons.org/licenses/by-nd/2.0/de/"> </a><a rel="license" href="http://creativecommons.org/licenses/by-nd/2.0/de/"> </a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zeidlos.de/tutorial-einrichten-von-gnupg-unter-mac-os-x/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto: Fink auf MacOS X 10.5</title>
		<link>http://blog.zeidlos.de/howto-fink-auf-macos-x-105</link>
		<comments>http://blog.zeidlos.de/howto-fink-auf-macos-x-105#comments</comments>
		<pubDate>Mon, 14 Apr 2008 09:14:03 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Fink]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Terminal]]></category>

		<guid isPermaLink="false">http://browsergames.org/blog/howto-fink-auf-macos-x-105</guid>
		<description><![CDATA[Fink f&#252;gt Mac OS X viele M&#246;glichkeiten hinzu. Es gibt eine Menge Software die f&#252;r Mac OS X portiert wurde. Fink bietet das Framework dazu. Fink setzt voraus, dass ihr die Developer Tools von der Mac OS X Installations-CD installiert habt. Fink ist in der aktuellen Bin&#228;rversion nicht f&#252;r Mac OS X 10.5 verf&#252;gbar, l&#228;sst [...]]]></description>
			<content:encoded><![CDATA[<p>Fink f&#252;gt Mac OS X viele M&#246;glichkeiten hinzu. Es gibt eine Menge Software die f&#252;r Mac OS X portiert wurde. Fink bietet das Framework dazu. Fink setzt voraus, dass ihr die Developer Tools von der Mac OS X Installations-CD installiert habt.</p>
<p>Fink ist in der aktuellen Bin&#228;rversion nicht f&#252;r Mac OS X 10.5 verf&#252;gbar, l&#228;sst sich aber mit ein paar Kniffen trotzdem installieren:</p>
<p>Als erstes m&#252;ssen wir folgende Datei herunterladen und entpacken:<br />
<a title="Download Fink" href="http://sourceforge.net/project/downloading.php?groupname=fink&amp;amp;filename=fink-0.28.0.tar.gz" target="_blank">http://sourceforge.net/project/downloading.php?groupname=fink&amp;amp;filename=fink-0.28.0.tar.gz</a></p>
<p>&#214;ffnet ein Terminal und wechselt mit cd in das entpackte Verzeichnis. (Tippt notfalls <span style="font-family: Courier New;">cd <span style="font-family: sans-serif;">ins Terminal und zieht dann den Ordner aus dem Finder ins Terminal.)</span></span></p>
<p>Danach k&#246;nnt ihr mit dem Befehl <span style="font-family: Courier New;">./bootstrap</span> die Installation starten.</p>
<p>Nun werdet ihr durch die Installation gef&#252;hrt. Beantwortet die Fragen. Meistens sind die voreingestellten Antworten nicht verkehrt. Wenn ihr m&#246;gt, k&#246;nnt ihr euch andere Mirrors als die vorgegebenen aussuchen.</p>
<p>Wenn der Download und das Compilieren fertig ist, k&#246;nnt ihr loslegen. Mit <span style="font-family: Courier New;">sudo fink selfupdate</span> aktualisiert ihr Fink auf die aktuellste Version. Diesen Vorgang solltet ihr regelm&#228;&#223;ig wiederholen. Nur ein aktuelles System ist einigerma&#223;en sicher. Oder anders gesagt: Ein System das nicht auf dem aktuellen Stand ist, ist generell unsicher.</p>
<p>Ihr k&#246;nnt nun auch die machtvollen Programme wie nmap, dsniff, wireshark o.&#228;. nutzen, um z.B. euer Netzwerk zu auditieren. Openoffice l&#228;uft unter X11 auch wunderbar und diverse kleine Helferlein, die ihr in der Linuxwelt sch&#228;tzen gelernt habt, funktionieren mit gro&#223;er Sicherheit auch.</p>
<p>Mit fink apropos Suchstring k&#246;nnt ihr gucken ob es das gew&#252;nschte Programm auch gibt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zeidlos.de/howto-fink-auf-macos-x-105/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NTFS auf Debian ETCH</title>
		<link>http://blog.zeidlos.de/ntfs-auf-debian-etch</link>
		<comments>http://blog.zeidlos.de/ntfs-auf-debian-etch#comments</comments>
		<pubDate>Wed, 09 Apr 2008 18:53:03 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://browsergames.org/blog/ntfs-auf-debian-etch</guid>
		<description><![CDATA[Heute gibts eine kurze Anleitung, wie man sich die NTFS-3g Treiber unter Debian Etch installiert. Zum einen weil vielleicht auch schon einige andere das Problem hatten, zum anderen, weil ich es mir dann f&#252;r zuk&#252;nftige Installationen besser merken kann. ;) Vornweg: Die ntfs-3g Treiber funktionieren wunderbar auf meiner Virtuellen Maschine. Jetzt werde ich das ganze [...]]]></description>
			<content:encoded><![CDATA[<p>Heute gibts eine kurze Anleitung, wie man sich die NTFS-3g Treiber unter Debian Etch installiert. Zum einen weil vielleicht auch schon einige andere das Problem hatten, zum anderen, weil ich es mir dann f&#252;r zuk&#252;nftige Installationen besser merken kann. ;)</p>
<p>Vornweg: Die ntfs-3g Treiber funktionieren wunderbar auf meiner Virtuellen Maschine. Jetzt werde ich das ganze auf der lokalen Kiste hier zu Hause draufspielen.</p>
<p>Als erstes brauchen wir nat&#252;rlich eine Shell auf dem System und wechseln dann als User Root in das Verzeichnis /tmp. Anschlie&#223;end laden wir uns die beiden folgenden Dateien per wget herunter:</p>
<p><span style="font-family: Courier New;">wget http://snapshot.debian.net/archive/2007/03/01/debian/pool/main/n/ntfs-3g/libntfs-3g0_0.0.0+20061031-6_i386.deb</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;">wget http://snapshot.debian.net/archive/2007/03/01/debian/pool/main/n/ntfs-3g/ntfs-3g_0.0.0+20061031-6_i386.deb</span><br style="font-family: Courier New;" /><br />
Dann installieren wir uns noch die Abh&#228;ngigkeiten mit aptitude install fuse-utils libfuse2.</p>
<p>Ist das geschehen, k&#246;nnt ihr die beiden Pakete bequem mit dpkg -i installieren.<br />
<br style="font-family: Courier New;" /><span style="font-family: Courier New;">dpkg -i libntfs-3g0_0.0.0+20061031-6_i386.deb</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;">dpkg -i ntfs-3g_0.0.0+20061031-6_i386.deb</span><br style="font-family: Courier New;" /><br />
Fertig ist der Lack. Nun k&#246;nnt ihr mit dem Befehl</p>
<p><span style="font-family: Courier New;">mount -t ntfs-3g /dev/festplatte /mount/point </span></p>
<p>Eure Platte einh&#228;ngen.</p>
<p>Viel Spa&#223;. ;)</p>
<p>Wie immer w&#252;rde ich mich &#252;ber einen kurzes Feedback in den Kommentaren freuen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zeidlos.de/ntfs-auf-debian-etch/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EncFS unter MacOS X oder: Wie sichere ich meine Daten?</title>
		<link>http://blog.zeidlos.de/encfs-unter-macos-x-oder-wie-sichere-ich-meine-daten</link>
		<comments>http://blog.zeidlos.de/encfs-unter-macos-x-oder-wie-sichere-ich-meine-daten#comments</comments>
		<pubDate>Tue, 08 Apr 2008 12:34:40 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://browsergames.org/blog/encfs-unter-macos-x-oder-wie-sichere-ich-meine-daten</guid>
		<description><![CDATA[Last Change: 04-11-2008 Ich bins mal wieder. Nach langer Zeit Blogabstinenz gibt es von mir neues im Bereich Crypto. Wer nicht weiss, wozu man Verschl&#252;sselung einsetzen soll, der mag sich nur mal &#252;berlegen, was z.B. passiert, wenn der Laptop geklaut wird, und die Urlaubsfotos, Rechnungen, Passw&#246;rter, TAN-Nummern, Kundendaten und was man auch immer auf seinem [...]]]></description>
			<content:encoded><![CDATA[<p>Last Change: 04-11-2008</p>
<p>Ich bins mal wieder. Nach langer Zeit Blogabstinenz gibt es von mir neues im Bereich Crypto.<br />
Wer nicht weiss, wozu man Verschl&#252;sselung einsetzen soll, der mag sich nur mal &#252;berlegen, was z.B. passiert, wenn der Laptop geklaut wird, und die Urlaubsfotos, Rechnungen, Passw&#246;rter, TAN-Nummern, Kundendaten und was man auch immer auf seinem Rechner hat, von fremden gelesen werden k&#246;nnen&#8230; Crypto ist nur was f&#252;r Paranoide, Kriminelle, sog. Terroristen und Kinderpornosammler? Mitnichten!</p>
<p>Jeder der auch nur einigerma&#223;en sensibles Material auf der Platte hat, handelt grob fahrl&#228;ssig wenn diese in andere (vllt. sogar falsche) H&#228;nde geraten. Nicht auszudenken, wenn sensible Kundendaten o.&#228;. abhanden kommen.</p>
<p>Nachdem ich mit Truecrypt ein paar sch&#246;ne Stunden verbracht habe, habe ich was neues f&#252;r euch:</p>
<p>Ich habe mir heute mal EncFS unter Mac OS X angeguckt.<br />
Das interessante an EncFS ist, dass im Gegensatz zu Apples Systemeigener L&#246;sung oder z.B. Truecrypt die einzelnen Dateien verschl&#252;sselt werden, und kein Container. So sind zwar die Dateigr&#246;&#223;en und Metadaten auch im verschl&#252;sselten Zustand sichtbar, nicht jedoch die Dateinamen, die auch verschl&#252;sselt werden.</p>
<p>Netterweise muss man sich vorher nicht festlegen, wie gro&#223; das ganze wird, oder verbraucht durch ein Image fester gr&#246;&#223;e Festplattenplatz der eigentlich gerade nicht genutzt wird. Zudem muss man bei Backups nun nicht mehr den kompletten Container backupen, sondern kann inkrementelle Backups auch der verschl&#252;sselten Dateien fahren. Das empfiehlt sich vor allem, wenn eine der Backupl&#246;sungen &#252;bers Netzwerk bzw. Internet gefahren wird. So kann man z.B. wichtige Dinge auf einen Remote Server (z.B. per VPN/OpenVPN) backupen. Interessant ist das vor allem, um z.B. seine aktuellen Projekte auf Firmenrechnern vorr&#228;tig zu halten, ohne andere da dran zu lassen. Ob es die M&#246;glichkeit gibt, die Dateien mittels geeigneter Authentifizierungsmechanismen auch auf anderen Systemen zu decrypten, muss ich noch ausprobieren. Logisch sollte da nix gegen sprechen.</p>
<p>Leider verliert man den Vorteil der Hidden Partition unter TrueCrypt. Daf&#252;r ist EncFS etwas erprobter und damit hoffentlich stabiler als das neue Truecrypt.</p>
<p>EncFS wird &#252;ber Fuse gemountet. Daf&#252;r kann man sich MacFuse installieren, und obendrein MacFusion f&#252;r ein GUI. MacFuse/MacFusion ist eh f&#252;r jeden Mac User &#228;usserst empfehlenswert. So k&#246;nnen z.B. SSH oder FTP Server direkt im Userspace gemountet werden, und so einfach in den Finder eingebunden werden. Daf&#252;r gibt es ein entsprechendes Plugin f&#252;r EncFS, so dass auch das direkt in den Finder eingebunden werden kann.</p>
<p>Allein die Nutzung von SSH Servern &#252;ber SCP/SFTP um sie direkt in den Finder einzubinden erleichtert sicherlich vielen von uns das Leben. So kann man direkt im Finder mit den Kisten arbeiten und so z.B. Websites direkt auf dem Server entwickeln etc. Nun ist das Rumgeklicke in externen Programmen wie z.B. Cyberduck oder anderen SFTP/SCP/FTP Clients vorbei.</p>
<p>Zur&#252;ck zu EncFS. Dieses kleine Helferlein hat noch eine weitere Zusatzapplikation: EncFSVault. Ein Ersatz f&#252;r Apples FileVault. FileVault von Apple ist nicht open Source. Ergo konnte niemand den Code reviewen und es kann niemand sagen, wie das Ding wirklich arbeitet. Das ist bei EncFS und damit auch EncFSVault anders. EncFS ist open Source und soweit ich mitbekommen habe, auch im Review.</p>
<p>Hat man MacFUSE und damit die Umsetzung von FUSE f&#252;r den Mac installiert und auch schon EncFS auf der Platte, kann man EncFSVault installieren. Per default wird dieses dabei eingeschaltet. Ist ein User nun nicht eingeloggt, und ich &#252;ber den OS X eigenen Loginmechanismus authentifiziert, bleiben die Daten verschl&#252;sselt.</p>
<p>Hier ein kurzer &#220;berblick &#252;ber die Befehle f&#252;r EncFS Vault:</p>
<p>/usr/local/bin/encfsVaultCntrl &#8211;status  zeigt euch den Status von EncFSVault an.</p>
<p>Die optionen &#8211;enable oder &#8211;disable sollten hier entsprechend f&#252;r sich stehen.</p>
<p>Habt ihr einen neuen User eingerichtet und m&#246;chtet EncFS f&#252;r diesen aktivieren, k&#246;nnt ihr &#252;ber eure Shell den Befehl</p>
<p>setupNewEncfsVaultUser  ausf&#252;hren.</p>
<p>Dort werdet ihr dann durch die Setupprozedur geleitet.</p>
<p>Solltet ihr mal in die Verlegenheit kommen, einen User l&#246;schen zu wollen, dessen HomeDir mit EncFSVault verschl&#252;sselt ist, geht das auch ohne Probleme. Stellt zuerst sicher, dass das Home Verzeichnis nicht gemountet ist, oder forciert das Ganze mit sudo unmount /Users/username</p>
<p>Danach reicht ein rm -rf /Users/.username wobei der f&#252;hrende Punkt wichtig ist. Danach k&#246;nnt ihr den User ganz normal &#252;ber die Systemeinstellungen l&#246;schen.</p>
<p>Nun zur&#252;ck von EncFSVault zu EncFS.</p>
<p>Habt ihr MacFuse und MacFusion installiert, sucht ihr nach dem EncFS Plugin f&#252;r MacFusion. Google sollte da sehr gut helfen, ich hab den Link grad nicht parat. Nun k&#246;nnt ihr euch f&#252;r jedes FileSystem einen Ordner anlegen. Ich habe im Ordner /Users/meinuser/Daten alle m&#246;glichen Crypto Geschichten liegen. Also schwups ein neues Verzeichnis f&#252;r EncFS angelegt, damit man mit Truecrypt usw. nicht durcheinander kommt, und dort ein paar Ordner rein. Jeder Ordner steht hier stellvertreten f&#252;r ein EncFS File System.</p>
<p>Bei Crypto ist es generell immer am unsichersten, wenn die Daten im Klartext irgendwo rumfliegen. Daher habe ich differenziert und nicht alles zusammengefasst, sondern gest&#252;ckelt. Rechnungen kommen in einen anderen Container bzw. EncFS File System als z.B. aktuelle Projekte oder Code. So binde ich nur das ein, was ich aktuell brauche. Das k&#246;nnte man jetzt auch noch projektweise verfeinern indem man f&#252;r jedes Projekt ein eigenes FS anlegt.</p>
<p>Ziel und zweck ist es, die Daten die man braucht auch nur dann ins System einzubinden, wenn man sie wirklich braucht. Ansonsten geht man nur ein unn&#246;tiges Risiko ein.</p>
<p>Kommen wir wieder auf die Ordner zur&#252;ck. F&#252;r jeden Verwendungszweck (Rechnungen, MP3, Urlaubsbilder, foo, wasauchimmer) legt ihr einen Ordner an. Nun k&#246;nnt ihr ganz gem&#252;tlich &#252;ber MacFusion einen neuen Mount anlegen. Am besten tut ihr das gleich in den Favourites, dann bleiben die Mounts gespeichert. (Wenn ihr ganz paranoid seid, macht ihr alles &#252;ber Quickmount. ;) )<br />
Nun werde ihr aufgefordert, einen Namen f&#252;r den Mount anzugeben und eine Location. Als location dienen eben jene vorhin angelegte Ordner. Nun m&#252;sst ihr noch die kleine Checkbox aktivieren, die das FileSystem dann auch anlegt, wenn es nicht bereits vorhanden ist. Passwort eingeben (und nat&#252;rlich nicht im Schl&#252;sselbund speichern) und fertig ist der Lack.</p>
<p>Soweit von mir. Ich werde damit noch mal etwas rumspielen und rumprobieren. Vor allem w&#228;re interessant ob man die FileSystems auch z.B. auf Remote Hosts liegen haben kann (m&#252;sste ja eigentlich), wie die Performance ist, und ob man die auf eurem Mac angelegten FileSysteme auch z.B. unter Linux mounten kann.</p>
<p>Wie immer freue ich mich &#252;ber Feedback in den Kommentaren. ;)</p>
<p> </p>
<p>Hier die vergessenen Links:</p>
<p>MacFuse: <a title="http://code.google.com/p/macfuse/" href="http://code.google.com/p/macfuse/" target="_blank">http://code.google.com/p/macfuse/</a></p>
<p>MacFusion: <a title="http://www.macfusionapp.org/" href="http://www.macfusionapp.org/" target="_blank">http://www.macfusionapp.org/</a></p>
<p>EncFS Plugin f&#252;r MacFuse: <a title="http://www.chuckknowsbest.com/ikrypt/download.html" href="http://www.chuckknowsbest.com/ikrypt/download.html" target="_blank">http://www.chuckknowsbest.com/ikrypt/download.html</a></p>
<p>(Danke an Peter Cramer f&#252;r den Hinweis.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zeidlos.de/encfs-unter-macos-x-oder-wie-sichere-ich-meine-daten/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>HOWTO: Apache, SSL, MySQL auf MacOS X 10.5</title>
		<link>http://blog.zeidlos.de/howto-apache-ssl-mysql-auf-macos-x-10-5</link>
		<comments>http://blog.zeidlos.de/howto-apache-ssl-mysql-auf-macos-x-10-5#comments</comments>
		<pubDate>Thu, 21 Feb 2008 18:01:11 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://browsergames.org/blog/howto-apache-ssl-mysql-auf-macos-x</guid>
		<description><![CDATA[In diesem Tutorial m&#246;chte ich euch zeigen, wie einfach es ist, einen Webserver auf eurem Mac zu installieren, und effektiv als Entwicklungsumgebung zu nutzen. Webentwicklung auf dem laufenden Webserver auf dem die Zielseite liegt, kostet nicht nur Nerven und Traffic, nein es macht euch auch immer abh&#228;ngig von einem Netzzugang. Warum kompliziert, wenn es auch [...]]]></description>
			<content:encoded><![CDATA[<p>In diesem Tutorial m&#246;chte ich euch zeigen, wie einfach es ist, einen Webserver auf eurem Mac zu installieren, und effektiv als Entwicklungsumgebung zu nutzen.</p>
<p>Webentwicklung auf dem laufenden Webserver auf dem die Zielseite liegt, kostet nicht nur Nerven und Traffic, nein es macht euch auch immer abh&#228;ngig von einem Netzzugang. Warum kompliziert, wenn es auch einfach(er) geht?</p>
<p>So kann man ganz gem&#252;tlich in der Bahn oder im Bus weiterentwickeln und bastelt nicht am live System herum, sondern auf seiner ganz privaten Mampp Maschine (Mac Apache &amp; MySQL &amp; PHP &amp; Perl).</p>
<p>Es gibt sogar &#8220;out of the Box&#8221; L&#246;sungen wie etwa <a href="http://apachefriends.org">xampp f&#252;r den Mac</a> oder <a href="http://mampp.info">MAMPP</a>. Ich m&#246;chte euch jedoch zeigen, wie ihr euren Mampp selbst einrichtet, um euch gleichzeitig das n&#246;tige Basiswissen an die Hand zu geben, wie ihr mit den Konfigurationsdateien umgeht, was euch bei der Konfiguration eures Live Systems helfen k&#246;nnte.</p>
<p>Fangen wir also an:</p>
<p>Was brauchen wir? Wir brauchen MySQL und einen Apache Webserver, ich bevorzuge hier den Apache2, da der einige Features mehr mitbringt als der alte Apache1 und schon seit l&#228;ngerer Zeit ein quasi Standart ist.</p>
<p>Was also tun? Richtig, wir informieren uns, ob es den Apache2 f&#252;r den Mac bereits irgendwo gibt. &#8211; Und siehe da: Unter dem Men&#252;punkt &#8220;Sharing&#8221; gibt es die Option &#8220;Websharing&#8221;. Hinter dieser Option versteckt sich bereits ein Apache2 der nun nur noch eingerichtet werden muss.</p>
<p><img style="width: 499px; height: 425px;" src="http://browsergames.org/blog/data/screenshot%204.png" alt="" /></p>
<p>Was nun? Nun k&#246;nnen wir uns einen Keks freuen, da der Apache scheinbar schon l&#228;uft.<br />
Das k&#246;nnen wir nun &#252;berpr&#252;fen in dem wir <a href="http://localhost">http://localhost</a> in unseren Browser eintippen.</p>
<p>Dann sollte das Ganze &#252;brigens in etwa so aussehen:</p>
<p><img src="http://browsergames.org/blog/data/screenshot%208.png" alt="" /></p>
<p>Jetzt geht es darum, herauszufinden, wo der Apache liegt, und wo die entsprechenden Konfigurationsdateien zu finden sind.</p>
<p>Dazu gehen wir ins Terminal und versuchen es mal auf gut Gl&#252;ck mit dem Standartverzeichnis des Apache2 unter Unix Systemen und &#246;ffnen das Verzeichnis mit dem Befehl &#8220;<span style="font-family: Courier New;">open /etc/apache2/</span>&#8221; (ohne Anf&#252;hrungsstriche). Jetzt &#246;ffnet sich ein Finder Fenster mit dem Ordner, an den man sonst ohne weiteres &#252;ber den Finder nicht herankommt.</p>
<p>Nun &#246;ffnen wir die Datei httpd.conf mit dem Texteditor unserer Wahl. Ich bevorzuge <a href="http://macromates.com">TextMate</a>, weil es ein einfach genialer Texteditor ist der jeden Cent seinter <a href="http://macromates.com/license/purchase?country=DE">48,75 EUR</a> einfach wert ist. (Studenten bekommen Sonderkonditionen)</p>
<p>Nun gilt es, einige Zeilen zu editieren, so dass sie unseren Anspr&#252;chen gerecht werden:</p>
<p>In Zeile 40 steht folgendes:</p>
<p><span style="font-family: Courier New;">Listen 80</span></p>
<p>Dies ist der Wert der beeinflusst, auf welchem Port der Apache Webserver seinen Dienst verrichtet. In der Regel kann dieser Wert so stehen gelassen werden. M&#246;chtet ihr jedoch, dass der Apache auf einem anderen Port lauscht, k&#246;nnt ihr hier entsprechend einen anderen Port eintragen, m&#252;sst dann aber im Browser http://localhost:port (z.B. http://localhost:8080) eingeben um auf euren Webserver zugreifen zu k&#246;nnen. Manchmal kann es sinnvoll sein den Port zu &#228;ndern, f&#252;r dieses Setup belasse ich ihn jedoch auf Port 80. (&#196;nderung des Ports wird erst nach einem Neustart des Apache2 wirksam)</p>
<p>Anschlie&#223;end werden eine ganze Menge Module geladen. Wer nicht weiss, was er da tut, sollte diese Module ersteinmal aktiviert lassen. Wir kommen sp&#228;ter dazu einige zu aktivieren oder zu deaktivieren.</p>
<p>Die n&#228;chste Zeile, die interessant ist, ist die Zeile 147, dort steht der Eintrag &#8220;ServerAdmin&#8221; der Wert dahinter sollte eure E-Mail Adresse beeinhalten. Trifft jemand auf eurem Produktivsystem auf eine Fehlerseite, erh&#228;lt er so die M&#246;glichkeit, euch per E-Mail dar&#252;ber zu informieren. In eurem Testsystem ist das nicht so ganz relevant, aber wir werden den Eintrag auf jeden Fall editieren. Gebt eure E-Mail Adresse ein und gut ist.</p>
<p>Als n&#228;chstes k&#252;mmern wir uns um den Eintrag DocumentRoot.</p>
<p><span style="font-family: Courier New;"># DocumentRoot: The directory out of which you will serve your</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"># documents. By default, all requests are taken from this directory, but</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"># symbolic links and aliases may be used to point to other locations.</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;">#</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;">DocumentRoot &#8220;/Library/WebServer/Documents&#8221;</span></p>
<p><span style="font-family: sans-serif;">Ein # am Anfang einer Zeile markiert einen Kommentar. Diese Zeilen werden in der Regel dazu genutzt die nachfolgende Option zu beschreiben. In diesem Falle handelt es sich um das so genannte Document Root, das wir uns gleich etwas genauer angucken werden.</span></p>
<p>Diese Option zeigt momentan noch auf das Verzeichnis in dem sich die Testwebsite des OS X Apache2 befindet. So kommt jeder User, der http://eure-lokale-ip eintippt auf diese Seite, sofern er nicht von dem Packetfilter (Firewall) geblockt wird.</p>
<p>Das wollen wir nat&#252;rlich so gar nicht. Daher werden wir jetzt ein Verzeichnis anlegen, in dem die zuk&#252;nftige StandartWebsite liegen soll, bzw. die entsprechenden Projekte die ihr bearbeiten wollt. So k&#246;nnen wir z.B. in unserem Homeverzeichnis einen Ordner htdocs anlegen. (Wo ihr einen Ordner anlegt, und wie ihr ihn nennt, ist euch vollkommen selbst &#252;berlassen.)</p>
<p>Daher &#228;ndern wir den Eintrag f&#252;r DocumentRoot wie folgt: <br style="font-family: Courier New;" /><br style="font-family: Courier New;" /><span style="font-family: Courier New;">DocumentRoot &#8220;/pfad/zu/eurem/gewuenschten/verzeichnis&#8221;</span></p>
<p>Es empfiehlt sich, auf jeden Fall eine index.html in dieses Verzeichnis zu legen. Hier k&#246;nnt ihr nat&#252;rlich auch gern irgendwelche Informationen ablegen, sein muss das aber nicht. Wie wir am folgenden Eintrag sehen, ist das so genannte Directory Listing ausgestellt.<br />
<br style="font-family: Courier New;" /><span style="font-family: Courier New;"># Each directory to which Apache has access can be configured with respect</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"># to which services and features are allowed and/or disabled in that</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"># directory (and its subdirectories). </span><br style="font-family: Courier New;" /><span style="font-family: Courier New;">#</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"># First, we configure the &#8220;default&#8221; to be a very restrictive set of </span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"># features. </span><br style="font-family: Courier New;" /><span style="font-family: Courier New;">#</span><br style="font-family: Courier New;" /><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> Options FollowSymLinks</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> AllowOverride None</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> Order deny,allow</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> Deny from all</span><br style="font-family: Courier New;" /><br style="font-family: Courier New;" /><br style="font-family: Courier New;" /><span style="font-family: Courier New;">#</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"># Note that from this point forward you must specifically allow</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"># particular features to be enabled &#8211; so if something&#8217;s not working as</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"># you might expect, make sure that you have specifically enabled it</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"># below.</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;">#</span><br style="font-family: Courier New;" /><br style="font-family: Courier New;" /><span style="font-family: Courier New;">#</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"># This should be changed to whatever you set DocumentRoot to.</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;">#</span><br style="font-family: Courier New;" /><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> #</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> # Possible values for the Options directive are &#8220;None&#8221;, &#8220;All&#8221;,</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> # or any combination of:</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> #</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> # Note that &#8220;MultiViews&#8221; must be named *explicitly* &#8212; &#8220;Options All&#8221;</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> # doesn&#8217;t give it to you.</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> #</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> # The Options directive is both complicated and important.  Please see</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> # http://httpd.apache.org/docs/2.2/mod/core.html#options</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> # for more information.</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> #</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> Options Indexes FollowSymLinks MultiViews</span><br style="font-family: Courier New;" /><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> #</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> # AllowOverride controls what directives may be placed in .htaccess files.</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> # It can be &#8220;All&#8221;, &#8220;None&#8221;, or any combination of the keywords:</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> #   Options FileInfo AuthConfig Limit</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> #</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> AllowOverride None</span><br style="font-family: Courier New;" /><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> #</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> # Controls who can get stuff from this server.</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> #</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> Order allow,deny</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;"> Allow from all</span><br style="font-family: Courier New;" /><br style="font-family: Courier New;" /><br style="font-family: Courier New;" /></p>
<p>Die orange markierte Zeile muss noch angepasst werden.</p>
<p>Jetzt kommen wir definitiv nicht mehr drum herum den apache neu zu starten. Unter Mac OS X geht das am besten mit dem Befehl &#8220;<span style="font-family: Courier New;">sudo apachectl stop</span>&#8221; (schaltet den Apache aus) und &#8220;<span style="font-family: Courier New;">sudo apachectl start</span>&#8221; (Startet ihn halt wieder. ;) ) Ich werde euch sp&#228;ter zeigen, wie wir das ganze etwas automatisieren k&#246;nnen.</p>
<p>Sudo l&#228;sst euch etwas als Systemadministrator ausf&#252;hren. Sudo verlangt euer Passwort um entsprechende Berechtigung zum Ausf&#252;hren des Befehls zu erlangen. Das eingegeben Passwort wird f&#252;r eine gewisse Zeit gespeichert, so dass ihr es nicht immer neu eingeben m&#252;sst.</p>
<p>Nun haben wir das Document Root des Apache auf ein Verzeichnis unserer Wahl umgeleitet, haben den ServerAdministrator gesetzt und auf Wunsch auch noch den Port umgebogen.</p>
<p>Die restlichen Eintr&#228;ge in der httpd.conf sind wichtig, aber soweit nicht wirklich interessant. Wen die ganzen Optionen wirklich interessieren, sollte sie die entsprechenden Dokumentationen durchlesen. So k&#246;nntet ihr z.B. den Ort an dem die Logfiles gespeichert werden, ab&#228;ndern und viele andere Dinge machen. F&#252;r unsere Zwecke reichen die &#196;nderungen, die wir vorgenommen haben aber ersteinmal.</p>
<p>Die Konfiguration beeinhaltet jetzt ersteinmal einen apache2 Webserver ohne PHP, Perl und MySQL. Das m&#252;ssen wir noch dringend &#228;ndern. ;)</p>
<p>Tippt ihr jetzt http://localhost in euren Browser ein und habt keine index.html in dem Verzeichnis, gibt es ein so genanntes Directory Listing. Dies ist generell nix schlimmes, kann aber unerw&#252;nschte Probleme nach sich ziehen. So kann ein &#8220;Angreifer&#8221; oder der neugierige Kollege sehen, was f&#252;r Ordner ihr in dem entsprechenden Verzeichnis alles rumliegen habt. Wenn das so gew&#252;nscht ist, ist das in Ordnung. Generell solltet ihr aber dar&#252;ber nachdenken eine index.html in jedes Verzeichnis zu legen, oder das Directory Listing auszuschalten.</p>
<p>Als n&#228;chstes machen wir uns daran, MySQL auf unserem Rechner zu installieren. Die aktuellen Pakete bekommt ihr unter <a href="http://dev.mysql.com/downloads/mysql/5.0.html#macosx-dmg">http://dev.mysql.com/downloads/mysql/5.0.html#macosx-dmg</a>. Ich habe mich daf&#252;r entschieden, MySQL in der Version 5 (aktuelle Version) herunter zu laden. Sucht euch das Paket f&#252;r eure Rechnerarchitektur aus, und kopiert euch die MD5 Checksum in den Zwischenspeicher. Nun startet den Download.</p>
<p>Ihr werdet jetzt aufgefordert, euch einzuloggen, bzw. einen neuen Account anzulegen. Unter den beiden Feldern daf&#252;r gibt es jedoch den Link zum direkten Download ohne Registrierung.</p>
<p>(Achtung: Solltet ihr Mac OS 10.5 nutzen, k&#246;nnt ihr trotzdem das Paket f&#252;r 10.4 herunter laden.)</p>
<p>Ist der Download abgeschlossen, verifiziert ihr den MD5 Hash des Paketes in dem ihr in der Shell folgenden Befehl eintippt:</p>
<p><span style="font-family: Courier New;">openssl md5 /pfad/zur/datei/dateiname</span></p>
<p>Nach dem Bet&#228;tigen von Enter solltet ihr folgende Meldung sehen:</p>
<p><span style="font-family: Courier New;">MD5(mysql-5.0.51a-osx10.4-i686.dmg)= 4abcc4c0d6edf8526d1c18ea72d4a6d6</span></p>
<p>Vergleicht diese Checksum nun mit der von der Website um zu verifizieren, dass das Paket auf dem Weg zu euch nicht ver&#228;ndert wurde, oder ihr das Paket aus einer b&#246;sen Quelle herunter geladen habt. Stimmen die Checksums &#252;berein, k&#246;nnen wir weiter machen, indem wir das dmg per Doppelklick mounten.</p>
<p><img src="http://browsergames.org/blog/data/screenshot%209.png" alt="" /></p>
<p>Nun geht es los: Wir installieren MySQL. W&#228;hrend der Installation werdet ihr nach eurem Benutzerkennwort gefragt, dass ihr ohne Bedenken eingeben k&#246;nnt. (Erinnert ihr euch: Das Paket wurde per Checksum als korrektes Paket identifiziert, und wir vertrauen den offiziellen Herstellern von MySQL genug um zu glauben, dass diese uns keinen b&#246;sen Code untergeschoben haben.)</p>
<p><img style="width: 501px; height: 371px;" src="http://browsergames.org/blog/data/screenshot%2010.png" alt="" /></p>
<p><img style="width: 503px; height: 374px;" src="http://browsergames.org/blog/data/screenshot%2012.png" alt="" /><br />
Herzlichen Gl&#252;ckwunsch! MySQL ist auf deinem System installiert!</p>
<p>Als n&#228;chstes k&#246;nnen wir noch das MySQL Startupitem und das Prefpane Programm installieren. So k&#246;nnen wir erstens daf&#252;r sorgen, dass MySQL beim Rechnerstart immer mitgeladen wird, und &#252;ber die Systemeinstellungen per Graphischem Interface den MySQL Server starten und stoppen.</p>
<p>Nun sollten wir MySQL der PATH Variable in unserer Shell hinzuf&#252;gen. Solltet ihr mit der Bash, der Standartshell unter Mac OS X ab 10.3 arbeiten, gebt einfach folgenden Befehl in eure Shell ein*:</p>
<p>open /Users/username/.bash_profile</p>
<p>und f&#252;gt folgende Zeilen hinzu:</p>
<pre class="programlisting"><span style="font-family: monospace;">export PATH=/usr/local/mysql/bin:$PATH

</span>alias mysql=/usr/local/mysql/bin/mysql

alias mysqladmin=/usr/local/mysql/bin/mysqladmin</pre>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;span style=&quot;font-family: sans-serif;&quot;&gt;Solltet ihr eine andere Shell nutzen, wisst selbst warum, und werdet euch so gut mit eurem System auskennen, um die PATH Variable selbst anzupassen. ;)&lt;/span&gt;</div></div>
<p>Nun m&#252;sst ihr euer Terminal einmal schlie&#223;en und wieder &#246;ffnen. Die Einstellungen aus der .bash_profile werden nur beim Start der Bash geladen. Wenn Ihr also &#196;nderungen an der Datei vornehmt, m&#252;sst ihr nach dem Speichern eine neue Bash aufmachen, damit das funktioniert.</p>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Es kann sein, dass die .bash_profile auf eurem System noch nicht angelegt ist. Tippt in eure Shell einfach &quot;touch /Users/username/.bash_profile&quot; ein, und schon ist sie da.&lt;br style=&quot;font-family: sans-serif;&quot; /&gt;<br />
&lt;span style=&quot;font-family: sans-serif;&quot;&gt;Durch das Installieren des Startupobjekts wurde in der /etc/hostconfig eine weitere Option gesetzt:&lt;/span&gt;</div></div>
<p>MYSQLCOM=-YES-</p>
<p><span style="font-family: sans-serif;">Wollt ihr den Autostart von MySQL wieder abschalten, geht dies &#252;ber das Prefpane oder indem ihr die Datei so ab&#228;ndert, dass statt dem YES nund ein NO dort steht. (Bitte macht das nur, wenn ihr wisst, was ihr da macht, ansonsten lasst es bleiben.)</span></p>
<p>Jetzt geht es weiter mit der Installation:</p>
<p><span style="font-family: Courier New;">sudo chown -R mysql /usr/local/mysql/data/</span></p>
<p><span style="font-family: sans-serif;">Um den Server zu starten, gebt ihr folgendes ein:</span></p>
<p><span style="font-family: Courier New;">sudo ./bin/safe_mysql &amp;</span></p>
<p>(Das m&#252;sst ihr nach einem Systemstart nat&#252;rlich nicht mehr machen.)</p>
<p>Hier noch ein Hinweis von <a href="http://dev.mysql.com/doc/refman/5.1/de/mac-os-x-installation.html">dev.mysql.com</a>:</p>
<blockquote><p>Das Mac OS X-PKG von MySQL installiert sich im Verzeichnis<br />
/usr/local/mysql-VERSION.<br />
Ferner wird eine symbolische Verkn&#252;pfung<br />
/usr/local/mysql eingerichtet, die ebenfalls<br />
auf die neue Position verweist. Ist ein Verzeichnis namens<br />
/usr/local/mysql bereits vorhanden, dann wird<br />
dieses zun&#228;chst in /usr/local/mysql.bak<br />
umbenannt. Au&#223;erdem erstellt das Installationsprogramm die<br />
Grant-Tabellen in der mysql-Datenbank. Hierzu<br />
f&#252;hrt es den Befehl mysql_install_db aus.</p></blockquote>
<div class="codecolorer-container text mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;span style=&quot;font-family: sans-serif;&quot;&gt;<br />
Nun gehen wir daran, das System etwas sicherer zu machen. Momentan hat nämlich der Hauptuseraccount (root) unseres MySQL Servers gar kein Passwort... O.o&lt;/span&gt;</div></div>
<p>Das m&#252;ssen wir schnell &#228;ndern.</p>
<p>Mit dem Befehl</p>
<p>sudo mysql_secure_installation</p>
<p>ruft ihr ein Script auf, dass euere MySQL Installation absichert. Ihr m&#252;sst ein Passwort f&#252;r den User Root angeben (bitte unbedingt merken. :D), solltet den Anonymen Login abschalten, den Login f&#252;r Root von Remotehosts ausschalten, die Tabelle Test l&#246;schen, und die Tabellen neu laden.</p>
<p><img style="width: 507px; height: 664px;" src="http://browsergames.org/blog/data/screenshot%2013.png" alt="" /><br />
Nun ist unsere MySQL Installation ersteinmal ausreichend gesichert.</p>
<p>Eure Test- und Entwicklungsumgebung sollte nun entsprechend laufen. Alles weitere ist nettes Beiwerk. Solltet ihr euch entscheiden das Ganze als Produktivumgebung, also als ernsten Webserver laufen zu lassen, w&#228;re es sinnvoll, auch an SSL zu denken. Wenn ihr aber nur von localhost darauf zugreift, braucht ihr logischerweise auch kein SSL.</p>
<p>Alles was jetzt noch kommt, ist Work in Progress und nicht unbedingt notwendig.<br />
<span style="font-weight: bold; font-family: sans-serif;"><br />
<big>SSL Verschl&#252;sselung f&#252;r den Apachen (Work in Progress!)</big></span></p>
<p>Als n&#228;chstes machen wir uns nun daran, mod_ssl f&#252;r den Apache einzurichten. Wenn ihr rein lokal auf der Maschine arbeiten wollt, ist mod_ssl nicht wirklich sinnvoll, ist jedoch praktisch, wenn ihr ein genaues Abbild eures Webservers, also der Produktivumgebung darstellen wollt, oder andere Leute vom LAN oder vom Internet aus auf euren Rechner per SSL zugreifen k&#246;nnen sollen.</p>
<p>Als erstes gehen wir daran, die Schl&#252;ssel zu erzeugen. Hier ist wieder ein wenig Akrobatik auf der Konsole notwendig, aber wer ernsthaft daran interessiert ist, sollte sich davon nicht abschrecken lassen, und die n&#246;tigen Grundbefehle zum Navigieren in Verzeichnisstrukturen und Dateimanipulationen erlernen. Ich werde hier Schritt f&#252;r Schritt erkl&#228;ren, wie all das funktioniert.</p>
<p>Wir &#246;ffnen die Konsole und geben den Befehl  <span style="font-family: Courier New;">ls -al</span> ein. Dies gibt uns den Inhalt des aktuellen Verzeichnisses aus. Nicht erschrecken: Die Dateien mit einem Punkt davor, sind auf Unix Systemen standartm&#228;ssig versteckte Dateien. Hier liegen einige Konfigurationseinstellungen.</p>
<p>Wir erzeugen nun einen neuen Ordner indem wir <span style="font-family: Courier New;">mkdir tmp eingeben.<span style="font-family: sans-serif;"> Dies erzeugt einen neuen Ordner mit dem Namen tmp. Nun wechseln wir mit dem Befehl <span style="font-family: Courier New;">cd tmp</span> in das soeben angelegte Verzeichnis und erzeugen mit dem Befehl </span></span></p>
<pre class="sourcecodebox"><span style="font-family: Courier New;">openssl genrsa -des3 -out server.key 1024</span>

<span style="font-family: sans-serif;">einen neuen Key. Hierbei wird ein Password abgefragt, dass nicht so leicht zu erraten sein sollte. Allerdings m&#252;sst ihr es euch merken. Sonst bekommt ihr in der Zukunft einige Probleme. ;)</span></pre>
<p>Nun sollte eine Datei in eurem Verzeichnis liegen, die server.key heisst. &#220;berpr&#252;fen k&#246;nnt ihr das mit  dem neu erlernten Befehl <span style="font-family: Courier New;">ls -al</span>.</p>
<p>Nun habt ihr einen Server Key, aber noch nichts weiter. Mit dem Befehl</p>
<pre class="sourcecodebox">openssl req -new -key server.key -out server.csr 

<span style="font-family: sans-serif;">erzeugen wir ein CSR, ein sogenanntes Certificate Signing Request. Dieses k&#246;nnt ihr zu einer CA wie z.B. Verisign oder CACert schicken, um es signieren zu lassen. F&#252;r die Testumgebung belassen wir es aber bei einem selbst signierten Zertifikat. Wie das geht erkl&#228;re ich dir jetzt. 

(Solltest du dein Zertifikat von einer richtigen CA signieren lassen wollen, f&#228;llt dieser Schritt nat&#252;rlich weg.)</span></pre>
<p>Wir erzeugen jetzt einen neuen Key f&#252;r deine eigene CA. Diesen nenne ich im Beispiel ca.key, du kannst ihn aber auch foo_ca.key nenen. Das &#8220;ca&#8221; im Namen auftauchen zu lassen, bietet sich an, damit du weisst, was was ist.</p>
<pre class="sourcecodebox"><span style="font-family: Courier New;">openssl genrsa -des3 -out ca.key 1024</span>

<span style="font-family: sans-serif;">Haben wir den Key erzeugt, erzeugen wir nun ein Zertifikat: </span>

<span style="font-family: Courier New;">openssl req -new -x509 -days 365 -key ca.key -out ca.crt</span></pre>
<p>Nun laden wir uns am besten das Paket <a href="http://modssl.org">mod_ssl</a> herunter, da Mac OS X das Paket zwar angeblich von Haus aus mitbringt, wir jedoch ein Shell Script ben&#246;tigen das nicht mitgeliefert wird.</p>
<p>Das heruntergeladene Tarball k&#246;nnen wir im Finder durch einen Doppelklick entpacken, in den Ordner reinnavigieren und das script sign.sh aus dem Unterordner pkg.contrib in den vorhin angelegten tmp  Ordner kopieren.</p>
<p><span style="font-family: Courier New;">chmod +x sign.sh</span></p>
<p><span style="font-family: sans-serif;">macht das Shellscript zu einem ausf&#252;hrbaren Programm, dass wir jetzt nutzen werden.</span></p>
<p><span style="font-family: Courier New;">./sign.sh server.csr</span> <span style="font-family: sans-serif;">startet das Script und wir lassen uns durch das Interface f&#252;hren.</span></p>
<p>Jetzt sind, wie ihr mit dem Befehl ls -al &#252;berpr&#252;fen k&#246;nnt, einige neue Dateien aufgetaucht, die alle vom Script angelegt wurden.</p>
<p>Nun werden wir ein neues Verzeichnis anlegen in das wir gleich einige Dateien aus diesem Verzeichnis legen werden:</p>
<p><span style="font-family: Courier New;">sudo mkdir /etc/httpd/ssl.key</span></p>
<p><span style="font-family: sans-serif;">Dieses Verzeichnis sieht nun aus wie eine Datei, da es eine .key Endung hat, ist aber tats&#228;chlich ein Verzeichnis. Unix, und euer Mac OS X ist ein Unix, unterscheidet Dateien nicht &#252;ber Endungen oder &#228;hnliches, sondern &#252;ber bestimmte Codes am Anfang der Datei. In diesem Falle ist die Datei ein Verzeichnis und keine .key Datei. OS X identifiziert Dateitypen also nicht &#252;ber die Endung. Wohl aber weist OS X zu, welches Programm zum &#214;ffnen der Datei genutzt wird.</span></p>
<p>Nun kopiert ihr alle Dateien in das soeben angelegte Verzeichnis:</p>
<p>cp -r * /etc/httpd/ssl.key/</p>
<p><span style="color: #ff0000;">!!!</span> Dies ist ein gro&#223;es Sicherheitsrisiko, das wir sp&#228;ter noch minimieren werden.</p>
<p><big><strong>WICHTIG:</strong></big></p>
<p>Nun ist der Punkt gekommen, an dem ihr euch entscheiden m&#252;sst: Sicherheit, oder Bequemlichkeit&#8230;</p>
<p>Da ich eher auf Sicherheit stehe, werde ich sp&#228;ter noch einige Dinge erkl&#228;ren, wie ihr euch das Leben einfacher machen k&#246;nnt und trotzdem auf der sicheren Seite bleibt.</p>
<p>Wenn ihr wollt, dass der Apache direkt beim Systemstart geladen wird, bzw. &#252;ber die Option Websharing ein und ausgeschaltet werden kann, m&#252;sst ihr das Passwort von eurem server.key entfernen. Sonst h&#228;ngt sich das System beim Start auf und ihr seid ziemlich gearscht. ;) Wenn beim Start der Apache geladen wird, wird das System warten, bis ihr das Passwort f&#252;r den server.key eingegeben habt. Da ihr aber keine M&#246;glichkeit dazu habt, wir das System einfrieren.</p>
<p>Wenn ihr den Apache per Hand startet, ist der folgende Schritt irrelevant. Wenn ihr es aber einfach haben wollt, m&#252;sst ihr das Kennwort entfernen. Allerdings solltet ihr bedenken, dass ein Angreifer so mit eurem Key weitere Zertifikate ausstellen bzw. signieren kann.</p>
<p>Als erstes wechseln wir in das Verzeichnis und legen wir ein Backup von dem Schl&#252;ssel an:</p>
<pre class="sourcecodebox" style="font-family: Courier New;">cd /etc/httpd/ssl.keysudo cp server.key server.key.original</pre>
<p>Das Passwort entfernt ihr mit dem Befehl:</p>
<pre class="sourcecodebox" style="font-family: Courier New;">sudo openssl rsa -in server.key.original -out server.key</pre>
<p>Nun werdet ihr wieder nach dem sudo Passwort gefragt und nach dem Passwort f&#252;r den server.key.</p>
<p>Ihr habt nun erfolgreich das Passwort von server.key entfernt und eine Sicherheitskopie von server.key als server.key.original angelegt.</p>
<p>Jetzt solltet ihr den Server stoppen, wir fassen die Konfigurationsdatei noch einmal an und schalten den mod_ssl Support an.</p>
<p><span style="font-family: Courier New;">sudo apachectl stop</span></p>
<p>Wir wechseln mit den folgenden Befehlen ins Verzeichnis /etc/httpd, legen ein Backup der httpd.conf an und &#246;ffnen die httpd.conf mit einem Texteditor. Sollten wir sp&#228;ter Probleme bekommen, k&#246;nnen wir die Konfigurationsdatei bequem wieder auf den Stand zur&#252;ck bringen, auf dem das System lauff&#228;hig war.</p>
<p><span style="font-family: Courier New;">cd /etc/httpd</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;">sudo cp httpd.con httpd.conf.backup<br />
open httpd.conf<br />
</span><br />
Nun kommentieren wir die Option Port aus in dem wir ein # vor die Zeile setzen. Danach f&#252;gen wir am Ende der Datei folgende Zeilen ein:</p>
<pre class="sourcecodebox">## SSL Support#### When we also provide SSL we have to listen to the## standard HTTP port (see above) and to the HTTPS port##

		Listen 443		Listen 80</pre>
<p>Die folgenden beiden Zeilen m&#252;ssen nun noch dekommentiert werden, indem ihr das # am Zeilenanfang entfernt:</p>
<p><span style="font-family: Courier New;">#LoadModule ssl_module    libexec/httpd/libssl.so</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;">#AddModule mod_ssl.c</span><br style="font-family: Courier New;" /><br />
Nun kopieren wir noch folgende Zeilen an das Ende der httpd.conf. Sie regeln die SSL Handles.</p>
<pre class="sourcecodebox"># Some MIME-types for downloading Certificates and CRLs  AddType application/x-x509-ca-cert .crt  AddType application/x-pkcs7-crl .crl

# inintial Directives for SSL

  # enable SSLv3 but not SSLv2  SSLProtocol all -SSLv2  SSLPassPhraseDialog builtin  SSLSessionCache dbm:/var/run/ssl_scache  SSLSessionCacheTimeout 300  SSLMutex file:/var/run/ssl_mutex  SSLRandomSeed startup builtin  SSLLog /var/log/httpd/ssl_engine_log 		  SSLLogLevel info#### SSL Virtual Host Context##  #Just to keep things sane...    DocumentRoot "/Library/WebServer/Documents"    ServerName 127.0.0.1    ServerAdmin bobdavis@mac.com    SSLEngine off  # General setup for the virtual host    DocumentRoot "/Library/WebServer/Documents"  #ServerName has to match the server you entered into the CSR    ServerName 127.0.0.1    ServerAdmin bobdavis@mac.com    ErrorLog /var/log/httpd/error_log    TransferLog /var/log/httpd/access_log  # SSL Engine Switch:  # Enable/Disable SSL for this virtual host.    SSLEngine on    # enable SSLv3 but not SSLv2	SSLProtocol all -SSLv2    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL  # Path to your certificates and private key		    SSLCertificateFile /etc/httpd/ssl.key/server.crt    SSLCertificateKeyFile /etc/httpd/ssl.key/server.key          SSLOptions +StdEnvVars              SSLOptions +StdEnvVars    # correction for browsers that don't always handle SSL connections well    SetEnvIf User-Agent ".*MSIE.*" \    nokeepalive ssl-unclean-shutdown \    downgrade-1.0 force-response-1.0# Per-Server Logging:# The home of a custom SSL log file. Use this when you want a# compact non-error SSL logfile on a virtual host basis.    CustomLog /var/log/httpd/ssl_request_log \    "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</pre>
<p><em></em>Fertig! ;)</p>
<p>Nun kannst du den Erfolg deiner Einstellungen testen, indem du SSL anschaltest, und den Apache wieder startest.</p>
<p><span style="font-family: Courier New;">sudo httpd -D SSL</span><br style="font-family: Courier New;" /><span style="font-family: Courier New;">sudo apachectl start<br />
</span></p>
<p>To be continued. Feedback in den Kommentaren oder per Mail erw&#252;nscht.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zeidlos.de/howto-apache-ssl-mysql-auf-macos-x-10-5/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Tutorial &#8211; Einrichtung und Verwendung von GnuPG f&#252;r Mac OS X</title>
		<link>http://blog.zeidlos.de/tutorial-einrichtung-und-verwendung-von-gnupg-fur-mac-os-x</link>
		<comments>http://blog.zeidlos.de/tutorial-einrichtung-und-verwendung-von-gnupg-fur-mac-os-x#comments</comments>
		<pubDate>Thu, 17 May 2007 09:54:42 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://browsergames.org/blog/?p=48</guid>
		<description><![CDATA[Ich heute Nacht ein kleines Tutorial zusammen geschrieben, um euch zum einen zu zeigen, wie einfach Verschl&#252;sselung und digitale Signaturen zu nutzen sind, und euch zum anderen eine einfache Schritt f&#252;r Schritt Anleitung an die Hand zu geben. Ich plane, hier in Zukunft unter dem Men&#252;punkt &#8220;Security&#8221; einige kleine Texte zum Thema Computersicherheit und Datenschutz [...]]]></description>
			<content:encoded><![CDATA[<p>Ich heute Nacht ein kleines <a title="Einrichtung von GnuPG f&#252;r Mac OS X" href="http://browsergames.org/blog/security/einrichtung-von-gnupgpgp-auf-mac-os-x/" target="_blank">Tutorial</a> zusammen geschrieben, um euch zum einen zu zeigen, wie einfach Verschl&#252;sselung und digitale Signaturen zu nutzen sind, und euch zum anderen eine einfache Schritt f&#252;r Schritt Anleitung an die Hand zu geben.</p>
<p>Ich plane, hier in Zukunft unter dem Men&#252;punkt &#8220;Security&#8221; einige kleine Texte zum Thema Computersicherheit und Datenschutz zu ver&#246;ffentlichen. Also schaut einfach immer mal wieder rein.</p>
<p>F&#252;r die n&#228;chste Zukunft sind folgende Tutorials geplant:</p>
<ul>
<li>Einrichten von GnuPG f&#252;r Windows</li>
<li>Installation von TOR bzw. JAP zum Anonymen Surfen (Mac OS X/Windows)</li>
</ul>
<p>Solltet Ihr W&#252;nsche haben, werde ich auch gern zu anderen Themen ein Tutorial zusammentragen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zeidlos.de/tutorial-einrichtung-und-verwendung-von-gnupg-fur-mac-os-x/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
