<?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/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Guggat emol Blog &#187; Apache-Webserver konfigurieren</title>
	<atom:link href="http://www.baldenhofer.eu/blog/tag/apache/feed" rel="self" type="application/rss+xml" />
	<link>http://www.baldenhofer.eu/blog</link>
	<description>Roland bloggt über IT, Programmieren und Linux</description>
	<lastBuildDate>Tue, 25 Oct 2011 22:53:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Apache-Webserver konfigurieren</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/apache-webserver-konfigurieren</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/apache-webserver-konfigurieren#comments</comments>
		<pubDate>Sat, 08 Oct 2011 22:54:52 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[config]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2180</guid>
		<description><![CDATA[Als nächstes werden wir den Apache-Webserver für unsere weightapplication-Webapplikation konfigurieren. Hier sind folgende Dateien und Verzeichnisse betroffen: /etc/hosts Damit unser lokaler Webserver überhaupt vom Webbrowser gefunden werden kann, müssen wir unseren Localhost mitteilen, dass wir eine Applikation mit dem Namen weightapplication haben. Öffne die Datei /etc/hosts (mit Root-Rechten) und füge folgende Zeile hinzu: 127.0.0.1 weightapplication [...]]]></description>
			<content:encoded><![CDATA[<p>Als nächstes werden wir den Apache-Webserver für unsere weightapplication-Webapplikation konfigurieren.</p>
<p>Hier sind folgende Dateien und Verzeichnisse betroffen:</p>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/10/apache-setup.png"><img class="alignnone size-full wp-image-2181" title="apache-setup" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/10/apache-setup.png" alt="Setup der Apache Komponenten" width="696" height="873" /></a></p>
<h3>/etc/hosts</h3>
<p>Damit unser lokaler Webserver überhaupt vom Webbrowser gefunden werden kann, müssen wir unseren Localhost mitteilen, dass wir eine Applikation mit dem Namen weightapplication haben.<br />
Öffne die Datei <strong>/etc/hosts</strong> (mit Root-Rechten) und füge folgende Zeile hinzu:</p>
<p>127.0.0.1 weightapplication</p>
<p>Damit wird festgelegt, dass der DNS weightapplication auf der IP-Adresse 127.0.0.1 (localhost) erreicht werden kann.<br />
Speichere die Datei.</p>
<h3>/etc/apache2/sites-available</h3>
<p>In diesem Verzeichnis legst du eine Datei weightapplication an.<br />
Diese befüllst du mit folgenden Zeilen:</p>
<pre class="code">NameVirtualHost weightapplication
&lt;VirtualHost weightapplication&gt;
    ServerAdmin root@localhost
    ServerName weightapplication
    DocumentRoot "/home/roland/workspace/weightapplication/app/webroot"
    &lt;Directory "/home/roland/workspace/weightapplication/app/webroot"&gt;
        Options Indexes FollowSymLinks
        AllowOverride FileInfo Indexes
        Order allow,deny
        Allow from all
    &lt;/Directory&gt;
&lt;IfModule alias_module&gt;
&lt;/IfModule&gt;
&lt;IfModule mpm_peruser_module&gt;
    ServerEnvironment apache apache
&lt;/IfModule&gt;
&lt;/VirtualHost&gt;</pre>
<p>Anstatt <strong>/home/roland/workspace</strong> fügst du bitte den WORKSPACE Pfad von deiner Konfiguration ein. Spannend ist hier, dass das Webroot von CakePHP in <strong>/app/webroot</strong> liegt. Hier greift der Apache auf die index.php zu. Alle darunterliegenden Verzeichnisse sind für Webanwender versteckt. Damit hat CakePHP eine einfache und effiziente Möglichkeit implementiert, die Konfigurationen der Applikation vor unliebsamen Anwendern zu verstecken. <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Nachdem du diese Datei abgespeichert hast, müssen wir noch dafür Sorge tragen, dass Apache diese Konfiguration auch verwendet.</p>
<p>Hierfür führst du den Befehl</p>
<p><strong>a2ensite weightapplication</strong></p>
<p>Dieser Befehl legt in <strong>/etc/apache2/sites-enabled</strong> einen symbolischen Link auf die Datei weightapplication im Verzeichnis <strong>/etc/apache2/sites-available</strong><br />
.<br />
So, fertig ist die Apache Konfiguration.</p>
<p>Nun müssen wir unserem Apache die neue Konfiguration mitgeben.</p>
<p>Mit <strong>apachectl configtest</strong> können wir kontrollieren ob wir uns in der weightapplication Datei vertippt haben. Falls der Check Syntax ok zurückliefert, kannst du mit <strong>apachectl graceful</strong> den Apache neu starten.</p>
<p>Fertig konfiguriert <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/apache-webserver-konfigurieren/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entwicklungsrechner Setup</title>
		<link>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsrechner-setup</link>
		<comments>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsrechner-setup#comments</comments>
		<pubDate>Wed, 03 Aug 2011 22:41:38 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=2144</guid>
		<description><![CDATA[Ich habe zwar schon beschrieben wie du Eclipse für PHP installieren kannst, aber irgendwie fehlt jetzt noch die ganze Installation von Apache, MySQL und PHP. Das muss ich schnell mal nachholen. Heute beschreibe ich also die Installation der in der Komponentenübersicht rot markierten Elemente. Mit Synaptic, dem Paketmanager von Ubuntu, ist die Installation kinderleicht. PHP [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe zwar schon beschrieben wie du Eclipse für PHP installieren kannst, aber irgendwie fehlt jetzt noch die ganze Installation von Apache, MySQL und PHP.<br />
Das muss ich schnell mal nachholen.<br />
Heute beschreibe ich also die Installation der in der Komponentenübersicht rot markierten Elemente.</p>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/Komponentenuebersicht-PHP-Apache-MySQL-Installation.png"><img class="alignnone size-full wp-image-2145" title="Komponentenuebersicht-PHP-Apache-MySQL-Installation" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/Komponentenuebersicht-PHP-Apache-MySQL-Installation.png" alt="" width="696" height="873" /></a></p>
<p>Mit Synaptic, dem Paketmanager von Ubuntu, ist die Installation kinderleicht.</p>
<h3>PHP Installation</h3>
<p>Ich habe hier einen Screenshot meiner installierten PHP-Komponenten gemacht.</p>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/php-installation.png"><img class="alignnone size-large wp-image-2146" title="php-installation" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/php-installation-1024x254.png" alt="PHP-Installation" width="1024" height="254" /></a></p>
<p>Wähle bitte php-5 und php5-mysql aus. Die restlichen Pakete müssten dann mit angezogen werden.</p>
<h3>MySQL Installation</h3>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/mysql-installation.png"><img class="alignnone size-large wp-image-2147" title="mysql-installation" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/mysql-installation-1024x337.png" alt="MySQL Installation" width="1024" height="337" /></a></p>
<p>Wenn du mysql-server auswählst, wird der Rest entsprechend mit angezogen.<br />
Bei der Installation wirst du nach einem root-Passwort gefragt. Dies ist dein Root-Passwort für den DB-Server. Wähle eins und merke es dir. In der Demoinstallation werden wir zuerst den User root und sein Passwort verwenden. Wenn du das später ändern willst, ist das ein Artikel für sich <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Apache2 Installation</h3>
<p>Auch das ist kinderleicht.<br />
Hier meine installierten Pakete:</p>
<p><a href="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/apache-installation.png"><img class="alignnone size-large wp-image-2148" title="apache-installation" src="http://www.baldenhofer.eu/blog/wp-content/uploads/2011/08/apache-installation-1024x374.png" alt="Apache Installation" width="1024" height="374" /></a><br />
Wenn du das Paket apache2 auswählst, sollte eigentlich alles von alleine laufen.</p>
<p>Nach der Installation dieser Pakete können wir uns wieder um die eigentliche Applikationsentwicklung kümmern.<br />
Juchhu! Drei Komponenten sind beschrieben. Das geht doch voran gelle? <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/programmieren/entwicklungsrechner-setup/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>apache2: Could not reliably determine the server&#8217;s fully qualified domain name, using 127.0.0.1 for ServerName</title>
		<link>http://www.baldenhofer.eu/blog/it/apache2-could-not-reliably-determine-the-servers-fully-qualified-domain-name-using-127-0-0-1-for-servername</link>
		<comments>http://www.baldenhofer.eu/blog/it/apache2-could-not-reliably-determine-the-servers-fully-qualified-domain-name-using-127-0-0-1-for-servername#comments</comments>
		<pubDate>Wed, 07 Jul 2010 14:20:43 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[servername]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=1953</guid>
		<description><![CDATA[Ha! Diese Meldung hat mich bei meinen lokalen Webservern immer ziemlich genervt. Was macht man dagegen? Ganz einfach: Irgendwo in deinen apache.conf Dateien (z.b. bei Ubuntu im /etc/apache2/sites-available oder bei Gentoo im /etc/apache2/vhosts.d) kannst du in deine .conf Datei einfach noch den Servernamen eintragen. Also: servername [DEIN SERVERNAME] und weg ist die Meldung. Einfach gelle? [...]]]></description>
			<content:encoded><![CDATA[<p>Ha!</p>
<p>Diese Meldung hat mich bei meinen lokalen Webservern immer ziemlich genervt.<br />
Was macht man dagegen?</p>
<p>Ganz einfach:</p>
<p>Irgendwo in deinen apache.conf Dateien (z.b. bei Ubuntu im /etc/apache2/sites-available oder bei Gentoo im /etc/apache2/vhosts.d) kannst du in deine .conf Datei einfach noch den Servernamen eintragen.</p>
<p>Also:<br />
<spam class="code">servername [DEIN SERVERNAME]</spam> und weg ist die Meldung.<br />
Einfach gelle?</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/apache2-could-not-reliably-determine-the-servers-fully-qualified-domain-name-using-127-0-0-1-for-servername/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lokale Installation von Subversion mit WebDav</title>
		<link>http://www.baldenhofer.eu/blog/gentoo/lokale-installation-von-subversion-mit-webdav</link>
		<comments>http://www.baldenhofer.eu/blog/gentoo/lokale-installation-von-subversion-mit-webdav#comments</comments>
		<pubDate>Fri, 15 Jan 2010 05:21:43 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[webdav]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=1855</guid>
		<description><![CDATA[Ich musste auf meinem Netbook ein Subversion Repository installieren, damit ich im Zug eine Migrationssoftware entwickeln und lokal testen konnte. Das System sollte so reagieren, wie das später vorhandene System. Ich musste also über den Webserver und mit WebDav die Anbindung meiner Migrationssoftware simulieren. Im Netz gibt es sehr viele gute Installationsanleitungen zu Subversion. Bei [...]]]></description>
			<content:encoded><![CDATA[<p>Ich musste auf meinem Netbook ein Subversion Repository installieren, damit ich im Zug eine Migrationssoftware entwickeln und lokal testen konnte.<br />
Das System sollte so reagieren, wie das später vorhandene System. Ich musste also über den Webserver und mit WebDav die Anbindung meiner Migrationssoftware simulieren.<br />
Im Netz gibt es sehr viele gute Installationsanleitungen zu Subversion.<br />
Bei der Installation musste ich jedoch an ein paar Dateien rumfummeln bei denen ich mehrere Seiten aufrufen musste.<br />
Sowas ärgert mich und deshalb sind hier alle Schritte, die ich durchführen musste, aufgelistet.</p>
<h3>Softwarepaket Installation</h3>
<p>Wenn man über den Webserver auf Subversion zugreifen will, braucht man natürlich einen Webserver (apache2) und Subversion.<br />
Also zuerst im <strong>/etc/make.conf</strong> die use-Flags <strong>apache2</strong> und <strong>subversion</strong> eintragen.<br />
Dann apache2 und subversion emergen.<br />
Falls apache2 schon vorab installiert war, lohnt sich ein <span class="code">emerge &#8211;newuse &#8211;deep world</span>. Damit ist sichergestellt, dass apache2 die notwendigen Module, wie beispielsweise mod_dav nachinstalliert.</p>
<h3>Apache konfigurieren</h3>
<p>Die Konfiguration von Apache2 erfordert das Anpassen von ein paar Dateien.</p>
<h4>/etc/apache2/modules.d/47_mod_dav_svn.conf</h4>
<p>Hier wird der Zugriff auf die SVN-Repositories eingetragen.<br />
Ich will meine SVN-Repositories im Verzeichnis /var/svn/repos anlegen.<br />
Nehmen wir mal an, dass dein SVN-Repository <strong>hugo</strong> heißen soll.<br />
Dann kannst du die folgenden Einträge in 47_mod_dav_svn.conf eintragen:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>ifdefine SVN<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">LoadModule dav_svn_module modules<span class="sy0">/</span>mod_dav_svn.so</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;/</span>ifdefine<span class="sy0">&gt;&lt;</span>ifdefine SVN_AUTHZ<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">LoadModule authz_svn_module modules<span class="sy0">/</span>mod_authz_svn.so</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;/</span>ifdefine<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>location <span class="sy0">/</span>svn<span class="sy0">/</span>repos<span class="sy0">/</span>hugo<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; DAV svn</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; SVNPath <span class="sy0">/</span>var<span class="sy0">/</span>svn<span class="sy0">/</span>repos<span class="sy0">/</span>hugo</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; AuthType Basic</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; AuthName <span class="st0">&quot;Subversion repository hugo&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; AuthUserFile <span class="sy0">/</span>var<span class="sy0">/</span>svn<span class="sy0">/</span>conf<span class="sy0">/</span>svnusers</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>limitexcept GET PROPFIND OPTIONS REPORT<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Require valid-user</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>limitexcept<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; SVNIndexXSLT <span class="sy0">/</span>svnindex.xsl</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;/</span>location<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
<p>Du kannst hier recht gut sehen was alles konfiguriert werden muss.<br />
Zuerst muss das mod_dav_svn und das mod_authisolde htdocs # cz_svn Modul geladen werden. Damit erreichst du, dass später über das DAV Protokoll mit dem Subversion System kommuniziert werden kann.<br />
Mit SVNPath gibst du an, wo dein Repository schlussendlich liegt. (Hier heißt das Repository hugo)<br />
Ich habe in /var/svn/conf/svnusers ein File generiert in dem ich alle berechtigten User eintrage. Dazu später mehr.<br />
Mit SVNIndexXSLT kannst du das Repository über einen Webbrowser ansprechen und darin rumstöbern.</p>
<h4>svnindex.xsl bereistellen</h4>
<p>Wenn du mit dem Webbrowser später dein SVN-Repository aufrufen willst, muss diese Datei im localhost verfügbar sein.<br />
Da im 47_mod_dav_svn.conf das svnindex.xsl direkt im Root-Verzeichnis des localhost deklariert wurde, müssen wir es dort hinkopieren.<br />
Meine copy-Befehle lauteten dafür:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">cp</span> <span class="sy0">/</span>usr<span class="sy0">/</span>share<span class="sy0">/</span>doc<span class="sy0">/</span>subversion<span class="nu0">-1.6</span><span class="nu0">.6</span>-r10<span class="sy0">/</span>svnindex.xsl.bz2 <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>localhost<span class="sy0">/</span>htdocs<span class="sy0">/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">bunzip2</span> <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>localhost<span class="sy0">/</span>svnindex.xsl.bz2</div>
</li>
</ol>
</div>
<p>Falls du eine andere Subversion Version hast, musst du den Copy-Befehl natürlich entsprechend anpassen.</p>
<h4>svnusers erstellen</h4>
<p>Ich möchte nur User, die auch berechtigt sind, auf das SVN zugreifen lassen.<br />
Deshalb generiere ich in /var/svn/conf/svnusers eine entsprechende Datei mit meinem User.</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">htpasswd2 -c <span class="sy0">/</span>var<span class="sy0">/</span>svn<span class="sy0">/</span>conf<span class="sy0">/</span>svnusers roland</div>
</li>
</ol>
</div>
<p>Du kannst mit htpasswd2 natürlich noch weitere User hinzufügen. Wenn du z.B. alfred hinzufügen willst, dann schreibe</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">htpasswd2 <span class="sy0">/</span>var<span class="sy0">/</span>svn<span class="sy0">/</span>conf<span class="sy0">/</span>svnusers alfred</div>
</li>
</ol>
</div>
<h3>Subversion Server starten</h3>
<p>Jetzt solltest du mit <strong>/etc/init.d/svnserve start</strong> den Subversion Server starten. Wenn du ihn bei jedem Neustart starten willst, lohnt sich noch ein <strong>rc-update add svnserve default</strong>.</p>
<h3>Repository hugo anlegen</h3>
<p>Wir müssen noch das Repository anlegen, damit wir auch was zum Zugreifen haben <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">svnadmin create <span class="sy0">/</span>var<span class="sy0">/</span>svn<span class="sy0">/</span>repos<span class="sy0">/</span>hugo</div>
</li>
</ol>
</div>
<h3>Apache neu starten</h3>
<p>Immer wenn du an der 47_mod_dav_svn.conf rumfummelst, und beispielsweise neue Repositories einträgst, musst du den Apache neu starten.<br />
Das kannst du mit <strong>pache2ctl graceful</strong> oder für die harten Jungs mit <strong>/etc/init.d/apache2 restart</strong> erledigen.</p>
<h3>So das wars</h3>
<p>Mehr sollte es eigentlich nicht sein.<br />
Happy Subversioning!</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/gentoo/lokale-installation-von-subversion-mit-webdav/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mit CakePHP in einer Stunde und zwei Minuten zur Applikation</title>
		<link>http://www.baldenhofer.eu/blog/it/mit_cakephp_in_einer_stunde_zur_applikatio</link>
		<comments>http://www.baldenhofer.eu/blog/it/mit_cakephp_in_einer_stunde_zur_applikatio#comments</comments>
		<pubDate>Fri, 30 Oct 2009 18:29:15 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[sprint]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=1768</guid>
		<description><![CDATA[Reiserischer Titel gelle? Ich möchte hier kurz zusammenstellen was es braucht um in einer Stunde eine komplette Applikation mit CakePHP zu erstellen. 6:51 Uhr: Definition der Vision Gut, zuerst brauchen wir mal eine Vision die wir umsetzen wollen. In meinem Fall möchte ich einen Datenspeicher haben in dem ich schnell mein Gewicht eingeben kann. Das [...]]]></description>
			<content:encoded><![CDATA[<p>Reiserischer Titel gelle?<br />
Ich möchte hier kurz zusammenstellen was es braucht um in einer Stunde eine komplette Applikation mit CakePHP zu erstellen.</p>
<h3>6:51 Uhr: Definition der Vision</h3>
<p>Gut, zuerst brauchen wir mal eine Vision die wir umsetzen wollen.<br />
In meinem Fall möchte ich einen Datenspeicher haben in dem ich schnell mein Gewicht eingeben kann.<br />
Das bedeutet, dass ich mit der Applikation die Resultate vom Wiegen abspeichern will.<br />
In der ersten Version dieser Applikation soll also eine Eingabemaske zur Verfügung stehen, mit der man sein Gewicht in kg (z.B. 83,7kg) eingegeben werden kann.<br />
Da es mir peinlich ist, mein tatsächliches Gewicht öffentlich zu machen, möchte ich dieses Gewicht in einem Bereich abspeichern der nur über User &#8211; Passwort zu erreichen ist.<br />
Alle Anwender, die dieses System verwenden, sollen mit dem gleichen User-Passwort einsteigen können. Z.B. können so alle Teilnehmer einer Fett-Weg Aktion ihre Ergebnise untereinander diskutieren.</p>
<h3>6:53 Uhr: Festlegung der umzusetzenden Komponenten</h3>
<p>Ich möchte in einer Stunde fertig sein. Der Grund ist ganz einfach, ich sitze im Zug und in einer Stunde bin ich am Arbeitsort angekommen. Also kann ich nicht so viel umsetzen.<br />
Was will ich also realisieren?</p>
<h4>Modell für die Anwender</h4>
<p>Jeder Anwender soll sich durch Name, Vorname und eine Beschreibung im System outen.<br />
Also braucht es eine Datenbanktabelle mit folgendem Inhalt:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">CREATE TABLE `<span class="kw2">users</span>`<span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; `<span class="kw2">id</span>` int<span class="br0">&#40;</span><span class="nu0">11</span><span class="br0">&#41;</span> NOT NULL auto_increment primary key,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; `name` varchar<span class="br0">&#40;</span><span class="nu0">200</span><span class="br0">&#41;</span> NOT NULL,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; `surname` varchar<span class="br0">&#40;</span><span class="nu0">200</span><span class="br0">&#41;</span> NOT NULL,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; `description` text NOT NULL,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; `created` datetime NOT NULL,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; `modified` datetime NOT NULL</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<h4>Modell für die Gewichtseingabe</h4>
<p>Ich möchte ein Modell haben in dem die Gewichtsverläufe der Personen eingetragen werden kann.<br />
Also eine Datenbanktabelle, die folgenden Tabelle zur Verfügung stellt:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">CREATE TABLE `weights`<span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; `<span class="kw2">id</span>` int<span class="br0">&#40;</span><span class="nu0">11</span><span class="br0">&#41;</span> NOT NULL auto_increment primary key,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; `user_id` int<span class="br0">&#40;</span><span class="nu0">11</span><span class="br0">&#41;</span> NOT NULL,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; `weight` varchar<span class="br0">&#40;</span><span class="nu0">40</span><span class="br0">&#41;</span> NOT NULL,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; `created` datetime NOT NULL,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; `modified` datetime NOT NULL</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Mit user_id kann eine Verknüpfung zum jeweilgen Anwender erfolgen. Damit können wir also die Relation Gewicht->Person erstellen.</p>
<h4>Eingabemaske Create, Read, Update, Delete (CRUD)</h4>
<p>Um das Gewicht zu verwalten möchte ich Create, Read, Update und Delete Eingabemasken haben.</p>
<h4>Userverwaltung</h4>
<p>Die Anwender sollen sich über ein User-Passwort am System anmelden können. Jeder Anwender erhält dieses Passwort vom Administrator zugestellt. Das ist also nicht Teil dieser 1h Übung.</p>
<h3>7:06 Vorbereiten des Servers</h3>
<p>So, genug Design. Jetzt gehts los!<br />
Zuerst erstellen wir mal die Datenbanktabellen.</p>
<h4>Anlegen der Datenbank</h4>
<p>Wir wählen uns mit <span class="code">mysql -u root -p</span> an unserer Datenbank an.<br />
Dann erstellen wir eine neue Datenbank mit <span class="code">create database weights</span>.</p>
<h4>Localhost Einstellen</h4>
<p>Ich bin auf meiner kleinen Entwicklungsmaschine tätig. Im /etc/hosts füge ich die neue Webapplikation <strong>weight</strong> hinzu.</p>
<h4>Eclipse Projekt anlegen</h4>
<p>In meinem Workspace (/home/roland/workspace) lege ich mit Eclipse ein neues PHP Projekt mit dem Namen <strong>weight</strong> an.</p>
<h4>CakePHP Installieren</h4>
<p>Ich habe Cake vor kurzem heruntergeladen.<br />
Ich wechsle mit einer Konsole in das Verzeichnis in dem die Zip-Datei liegt (z.B. /home/roland/Downloads) und führe folgende Befehle aus:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">cp</span> cake_1<span class="nu0">.2</span><span class="nu0">.5</span>.<span class="kw2">tar</span>.bz2 <span class="sy0">/</span>home<span class="sy0">/</span>roland<span class="sy0">/</span>workspace<span class="sy0">/</span>weight<span class="sy0">/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> ~<span class="sy0">/</span>workspace<span class="sy0">/</span>weight</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">bunzip2</span> cake_1<span class="nu0">.2</span><span class="nu0">.5</span>.<span class="kw2">tar</span>.bz2</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">tar</span> xvf cake_1<span class="nu0">.2</span><span class="nu0">.5</span>.<span class="kw2">tar</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">rm</span> cake_1<span class="nu0">.2</span><span class="nu0">.5</span>.<span class="kw2">tar</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> cake_1<span class="nu0">.2</span><span class="nu0">.5</span><span class="sy0">/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">mv</span> <span class="sy0">*</span> ..<span class="sy0">/</span>.</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> ..</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">rm</span> -r cake_1<span class="nu0">.2</span><span class="nu0">.5</span></div>
</li>
</ol>
</div>
<p>Jetzt ist Cake soweit mal installiert.<br />
Damit das Caching funktioniert, müssen noch die Rechte geradegebogen werden.</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> ~<span class="sy0">/</span>workspace<span class="sy0">/</span>tmp</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">chmod</span> -R a+rw cache</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> ..</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">chmod</span> a+rw tmp</div>
</li>
</ol>
</div>
<p>Jetzt muss noch der Security Salt in <span class="code">~/workspace/weight/app/config/core.php</span> verändert werden.<br />
Suche die Zeile <span class="code">Configure::write(&#8216;Security.salt&#8217;,</span> und ändere den Wert um.</p>
<h4>Datenbankkonfiguration innerhalb von Cake</h4>
<p>Kopiere die Datei <span class="code">~/workspace/weight/app/config/database.php.default nach ~/workspace/weight/app/config/database.php</span> und füge die Zugangsdaten zu deiner Datenbank ein. </p>
<h4>vhost konfigurieren</h4>
<p>Bei Gentoo wird im /etc/apache2/vhosts.d ein neuer Virtual Host eingerichtet:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">NameVirtualHost weight</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>virtualhost weight<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; ServerName weight</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; ServerAdmin webmaster<span class="sy0">@</span>localhost</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; DocumentRoot <span class="sy0">/</span>home<span class="sy0">/</span>roland<span class="sy0">/</span>workspace<span class="sy0">/</span>weight<span class="sy0">/</span>app<span class="sy0">/</span>webroot</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;</span>directory <span class="sy0">/</span>home<span class="sy0">/</span>roland<span class="sy0">/</span>workspace<span class="sy0">/</span>weight<span class="sy0">/</span>app<span class="sy0">/</span>webroot<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Options Indexes FollowSymLinks</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Order allow,deny</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; AllowOverride FileInfo Indexes Limit</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Allow from all</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="sy0">&lt;/</span>directory<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;/</span>virtualhost<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
<p>Wie ihr sehen könnt, wird meine Applikation in meinem Home-Verzeichnis im Eclipse Standard workspace abgelegt.<br />
Nicht vergessen mit <span class="code">/etc/init.d/apache2 restart</span> den Webserver neu starten.<br />
Probiere kurz mal mit einem Webbrowser aus, ob die Applikation hochkommt und die Datenbank usw. erreicht werden kann.<br />
Das kannst du mit <span class="code">http://weight/</span> als Adresse erreichen.</p>
<h3>7:32 Uhr: Modelle erstellen</h3>
<p>So, die Applikation ist installiert.<br />
Gehe im Eclipse zu deinem (noch leeren) Projekt und drücke refresh. Nun können wir in Eclipse die notwendigen Dateien editieren.<br />
Wechsle nun ins Verzeichnis /app/config/sql und erstelle die Datei <span class="code">create_tables.php</span><br />
Füge dort die Create Statements, die ich oben definiert habe, ein.<br />
Gehe in eine Konsole und wechsle in /app/config/sql Verzeichnis.<br />
Erstelle die Datenbanktabellen mit dem Befehl <span class="code">mysql -u root -p weights < create_tables.sql</span>.<br />
Nun sind die Datenbanktabellen vorhanden.<br />
Wechsle ins /app Verzeichnis und lege mit <span class="code">cake bake</span> die Modelle, Controller und Views an.<br />
Dazu kannst du dem Menü Folgen und die Modelle zuerst anlegen. Bitte achte darauf, dass du die Relation hasone und belongsto in den Modellen mit reinfummelst.</p>
<h4>Testen der Applikation</h4>
<p>Mit <span class="code">http://weight/users</span> solltest du nun die CRUD Methoden für die Userverwaltung vorfinden.<br />
Mit <span class="code">http://weight/weights</span> solltest du in der Lage sein ein Gewicht für einen User anzulegen.</p>
<h3>7:44Uhr: Security reinfummeln</h3>
<p>Füge in der Datei /app/config/bootstrap.php den Eintrag Configure::load(&#8216;config&#8217;); hinein.<br />
Dann erstelle eine Datei in /app/config/config.php.<br />
In diese Datei trägst du die folgende Zeilen ein:</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span> ?php</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/**</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* Angabe des erlaubten Administrator Users und dessen Passwort.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;*/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$config</span><span class="br0">&#91;</span><span class="st0">&#39;adminCredentials&#39;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;user&#39;</span> <span class="sy0">=&gt;</span> &nbsp;<span class="st0">&#39;horscht&#39;</span><span class="sy0">,</span> <span class="st0">&#39;password&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;supi&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Im /app/controllers/users_controller.php fügst du die folgende Funktion ein:</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> <span class="re1">$components</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;Security&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="coMULTI">/**</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* Einbinden der Security Konfiguration und Laden der Konfiguration</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;* @see cake/libs/controller/Controller#beforeFilter()</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp;*/</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">function</span> beforeFilter<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$user</span> <span class="sy0">=</span> Configure<span class="sy0">::</span><span class="me2">read</span><span class="br0">&#40;</span><span class="st0">&#39;adminCredentials.user&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$password</span> <span class="sy0">=</span> Configure<span class="sy0">::</span><span class="me2">read</span><span class="br0">&#40;</span><span class="st0">&#39;adminCredentials.password&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$this</span><span class="sy0">-&gt;</span><span class="me1">Security</span><span class="sy0">-&gt;</span><span class="me1">requireLogin</span><span class="br0">&#40;</span><span class="st0">&#39;add&#39;</span><span class="sy0">,</span> <span class="st0">&#39;edit&#39;</span><span class="sy0">,</span> <span class="st0">&#39;delete&#39;</span><span class="sy0">,</span> <span class="st0">&#39;index&#39;</span><span class="sy0">,</span> <span class="st0">&#39;view&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$this</span><span class="sy0">-&gt;</span><span class="me1">Security</span><span class="sy0">-&gt;</span><span class="me1">loginOptions</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;type&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;basic&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$this</span><span class="sy0">-&gt;</span><span class="me1">Security</span><span class="sy0">-&gt;</span><span class="me1">loginUsers</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="re1">$user</span> <span class="sy0">=&gt;</span> <span class="re1">$password</span><span class="br0">&#41;</span><span class="sy0">;;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Das Gleiche fügst du im /app/controllers/weights_controller.php ein.<br />
Ok, das ist Code-Replikation und sollte in die Basisklasse rein, aber meine Stunde ist gleich rum <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>7:53: Fertig</h3>
<p>Das war knapp!<br />
Ich hatte mich noch ein paarmal vertippt. Aber die Applikation läuft jetzt und kann angesprochen werden.<br />
Natürlich sollte jetzt die Aufräumaktion kommen und alles schön verlinkt werden. Aber immerhin, in einer Stunde ist eine funktionsfähige Applikation und dieser Blogartikel entstanden.<br />
Cool gelle?</span></p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/mit_cakephp_in_einer_stunde_zur_applikatio/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Setup von Entwicklungsumgebungen</title>
		<link>http://www.baldenhofer.eu/blog/it/setup-von-entwicklungsumgebungen</link>
		<comments>http://www.baldenhofer.eu/blog/it/setup-von-entwicklungsumgebungen#comments</comments>
		<pubDate>Mon, 13 Jul 2009 08:03:05 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Unterricht]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Infrastruktur]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=1694</guid>
		<description><![CDATA[In den letzten Wochen diskutieren Dirk und ich immer wieder über den Einsatz meines Asus Eee 900 als Entwicklungsrechner. Er möchte mich davon überzeugen, auf dem kleinen Ding nur die nötigste Umgebung für Webentwicklung aufzusetzen. Ich möchte ihn davon überzeugen, dass so wenig wie möglich Unterschiede bei meiner Entwicklungsumgebung zur Produktionsumgebung sinnvoll sind. Was ist [...]]]></description>
			<content:encoded><![CDATA[<p>In den letzten Wochen diskutieren Dirk und ich immer wieder über den Einsatz meines Asus Eee 900 als Entwicklungsrechner.<br />
Er möchte mich davon überzeugen, auf dem kleinen Ding nur die nötigste Umgebung für Webentwicklung aufzusetzen. <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Ich möchte ihn davon überzeugen, dass so wenig wie möglich Unterschiede bei meiner Entwicklungsumgebung zur Produktionsumgebung sinnvoll sind. <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Was ist die Infrastruktur und Systemkomponenten Anforderung?</h3>
<p>Die Produktionsumgebung hat folgende Konfiguration:</p>
<ul>
<li>Apache Webserver (aktuelle Version)</li>
<li>PHP 5.X</li>
<li>MySQL (aktuelle Version)</li>
<li>AMD 64 Bit Root-Server</li>
</ul>
<h3>Was für eine Entwicklungsumgebung verwende ich?</h3>
<p>Ich habe zwei Rechner mit denen ich die meiste Zeit entwickle:</p>
<ul>
<li>Asus Eee 900 für Unterwegs. Da ich viel Reise, ist das Teil im Moment wirklich meine primäre Maschine <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Kaum zu glauben oder? Aber ich kann darauf wirklich arbeiten.</li>
<li>Desktop Quad Core Pentium Maschine mit 4 GByte RAM, zwei Monitoren usw.</li>
</ul>
<p>Was man hier sieht ist, dass ich von Hardwareseite aus schon einen ziemlichen Zoo beieinander habe und die Komponenten nicht nah an der Produktion sind.<br />
Auf den Maschinen habe ich die gleichen Softwareumgebungen drauf wie auf der Produktion.<br />
Das heisst, nicht ganz. Ich führe zuerst auf den Entwicklungsrechnern Softwareupdates durch. Wenn die funktionieren und unsere Komponenten immer noch gut zucken, wird die Produktion aktualisiert.<br />
Eigentlich logisch oder?</p>
<h3>Abnahmeumgebung</h3>
<p>Damit die Produktionsumgebung nur dann umgestellt wird wenn sichergestellt ist, dass wir funktionsfähige Software einsetzen, haben wir einen weiteren Rechner für die Abnahmeumgebung aufgebaut.<br />
Dieser Rechner ist ein AMD 64 bit Rechner. Damit ist die Prozessorarchitektur mit der des Root-Servers übereinstimmend.<br />
Er hat auch das gleiche Betriebssystem mit den identischen Libraries wie der Produktionsrechner.</p>
<h3>Was erreichen wir mit dieser Konfiguration?</h3>
<p>Die Entwicklungsrechner verwenden identische Software wie in der Produktion.<br />
Das hat folgende Vorteile:</p>
<ul>
<li>Wir entwickeln mit den gleichen Softwarepaketen wie in der Produktion. (Apache, PHP, MySQL usw.)</li>
<li>Die Konfiguration des Webservers (httpd.conf usw.) können wir schon in der Entwicklung üben. Die Unterschiede zur Produktion sind relativ gering und wir sind für die Migration trainiert.</li>
<li>Upgrades können auf der Entwicklungsmaschine ausprobiert werden.</li>
<li>Ich kann immer und überall mit meinem kleinen Netbook entwickeln. Das hat sich schon oft als Vorteil erwiesen, falls ein paar kleinenere Anfragen von Kunden schnell behandelt werden mussten. Ich war damit nicht ortsgebunden.</li>
</ul>
<h3>Nachteile dieser Entwicklungsumgebung</h3>
<p>Wir haben einen Zoo an Rechnern rumstehen.<br />
Wenn wir genug Geld hätten, könnten wir uns einen Typ von Hardware kaufen und betreiben. Das würde viel Aufwand und somit Geld sparen.<br />
Mein Asus Eee 900 ist eine nette Maschine, aber es ist und bleibt ein Zwerg. Eigentlich ist es nicht vernünftig so eine kleine Maschine für diesen Einsatzbereich zu verwenden.<br />
Aber wie hat schon einer meiner Profs gesagt: &#8220;Alle wünschen sich die besten Studenten, aber wir haben nur sie!&#8221;. <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Ich bin auch ein grosser Bastler und deshalb habe ich halt im Moment die kleine Maschine.<br />
Dirk hat mir eine lange Mail geschrieben in der er ausführt, dass ich auf einen leichteren Webserver umsteigen sollte.<br />
Damit könnte ich wichtige Systemresourcen einsparen und mein Asus wäre dann wohl etwas schneller.<br />
Doch hierzu kann ich nur sagen, dass es mir wichtig ist mit dem Webserver zu arbeiten, den ich später auch in der Produktion einsetze. Spezielle Flags, die ich Beispielsweise für BuddyPress benötige, möchte ich gleich bei mir auf der Maschine ausprobieren und optimieren können.</p>
<h3>Fazit</h3>
<p>Es ist wichtig mindestens die Abnahmetestumgebung mit der Produktionsumgebung gleich aufzusetzen.<br />
Wenn möglich, sollte identische Hard- und Softwarekonfigurationen eingesetzt werden.<br />
Häufig ist dies aus Kostengründen nicht möglich. Dann muss man wenigstens versuchen so nah wie möglich an die Produktionsumgebung heranzukommen.<br />
Bei der Entwicklungsumgebung sollte wenigstens der gleiche Softwarestack eingesetzt werden. Die Entwickler arbeiten dann mit den gleichen Tools, die später in der Produktion eingesetzt werden. Somit können Unterschiede und Problemstellungen schon während der Entwicklung erkannt werden.<br />
Ein Mix von Komponenten sollte, wenn möglich, immer vermieden werden.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/it/setup-von-entwicklungsumgebungen/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<series:name><![CDATA[Grundlagen]]></series:name>
	</item>
		<item>
		<title>Apache Konfiguration unter Ubuntu für BuddyPress / WordPress / WordPressMU</title>
		<link>http://www.baldenhofer.eu/blog/gentoo/software/apache-konfiguration-unter-ubuntu-fuer-buddypress-wordpress-wordpressmu</link>
		<comments>http://www.baldenhofer.eu/blog/gentoo/software/apache-konfiguration-unter-ubuntu-fuer-buddypress-wordpress-wordpressmu#comments</comments>
		<pubDate>Sun, 12 Jul 2009 08:36:12 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[buddyPress]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[WordPress MU]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=1683</guid>
		<description><![CDATA[Alles neu macht die andere Distribution Unter Gentoo habe ich bereits mehrere Installationsanleitungen für die Installation von BuddyPress und WordPress geschrieben. Im Folgenden gehe ich mal davon aus, dass du dein BuddPress, oder WordPressMU im Verzeichnis /var/www/blog unterbringen willst. Vermutlich wirst du ein anderes Verzeichnis haben wollen und du wirst entsprechend dieses Verzeichnis verändern. Für [...]]]></description>
			<content:encoded><![CDATA[<p>Alles neu macht die andere Distribution <img src='http://www.baldenhofer.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Unter Gentoo habe ich bereits mehrere Installationsanleitungen für die Installation von <a href="http://www.baldenhofer.eu/blog/gentoo/eine-buddypress-installation-durchfuehren">BuddyPress</a> und <a href="http://www.baldenhofer.eu/blog/gentoo/installation-von-wordpress-mu-auf-gentoo-linux">WordPress</a> geschrieben.<br />
Im Folgenden gehe ich mal davon aus, dass du dein BuddPress, oder WordPressMU im Verzeichnis <strong>/var/www/blog</strong> unterbringen willst. Vermutlich wirst du ein anderes Verzeichnis haben wollen und du wirst entsprechend dieses Verzeichnis verändern.<br />
Für Ubuntu muss der Apache anders konfiguriert werden.</p>
<h3>Das Verzeichnis /etc/apache2/sites-available</h3>
<p>In diesem Verzeichnis findest du nach der Basisinstallation von apache2 die default Datei.</p>
<p>Darin ist der Standard Webserver (/var/www) definiert. Wenn du also deinen localhost im Webbrowser aufrufst, wirst du die Standard Startseite vorfinden.<br />
Kopiere diese Datei und benenne die Kopie z.B. <strong>blog</strong>.<br />
Editiere die Datei blog und füge folgende Informationen hinzu:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>virtualhost blog<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;ServerAdmin webmaster<span class="sy0">@</span>localhost</div>
</li>
<li class="li1">
<div class="de1">&nbsp;DocumentRoot <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>blog</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>directory <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>blog<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Options Indexes FollowSymLinks</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Order allow,deny</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AllowOverride FileInfo Options</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Allow from all</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>directory<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>ifmodule mpm_peruser_module<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ServerEnvironment apache apache</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>ifmodule<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;ErrorLog <span class="sy0">/</span>var<span class="sy0">/</span>log<span class="sy0">/</span>apache2<span class="sy0">/</span>error.log</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co0"># Possible values include: debug, info, notice, warn, error, crit,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co0"># alert, emerg.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;LogLevel warn</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;CustomLog <span class="sy0">/</span>var<span class="sy0">/</span>log<span class="sy0">/</span>apache2<span class="sy0">/</span>access.log combined</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;/</span>virtualhost<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
<p>Diese Datei beinhaltet somit die identischen Definitionen, wie bei den Installationen unter Gentoo.</p>
<h3>/etc/apache2/sites-enabled Link setzen</h3>
<p>Damit der Apache unter Ubuntu die neue Konfiguration findet, musst du in /etc/apache2/sites-enabled noch einen Link auf unsere neue Konfiguration setzen.<br />
Also:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">ln</span> -s <span class="sy0">/</span>etc<span class="sy0">/</span>apache2<span class="sy0">/</span>sites-available<span class="sy0">/</span>blog <span class="sy0">/</span>etc<span class="sy0">/</span>apache2<span class="sy0">/</span>sites-enabled<span class="sy0">/</span>blog</div>
</li>
</ol>
</div>
<h3>rewrite Mode aktivieren</h3>
<p>Mit dem Befehl:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> a2enmod rewrite</div>
</li>
</ol>
</div>
<p>wird das rewrite Modul im Apache freigeschalten.<br />
Dieses Modul wird benötigt damit WordPress seine URLs umbenennen kann.</p>
<h3>Hast du auch libapache2-mod-auth-mysql installiert?</h3>
<p>Ich hatte ein bisschen Startschwierigkeiten, da dass Paket libapache2-mod-auth-mysql nicht installiert war. Mit diesem Modul wird erreicht, dass wir uns an der MySql Datenbank anbinden können.<br />
Also installiere es mit </p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">aptitude <span class="kw2">install</span> libapache2-mod-auth-mysql</div>
</li>
</ol>
</div>
<p>Die restlichen Installationsabläufe für BuddyPress kannst du im Artikel <a href="http://www.baldenhofer.eu/blog/gentoo/eine-buddypress-installation-durchfuehren">Eine BuddyPress Installation</a> durchführen nachlesen.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/gentoo/software/apache-konfiguration-unter-ubuntu-fuer-buddypress-wordpress-wordpressmu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konfiguration von Apache für viele Subdomains bei WordPress MU</title>
		<link>http://www.baldenhofer.eu/blog/gentoo/konfiguration-von-apache-fuer-viele-subdomains-bei-wordpress-mu</link>
		<comments>http://www.baldenhofer.eu/blog/gentoo/konfiguration-von-apache-fuer-viele-subdomains-bei-wordpress-mu#comments</comments>
		<pubDate>Thu, 16 Apr 2009 06:31:40 +0000</pubDate>
		<dc:creator>Roland</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[subdomain]]></category>
		<category><![CDATA[WordPress MU]]></category>

		<guid isPermaLink="false">http://www.baldenhofer.eu/blog/?p=926</guid>
		<description><![CDATA[Manchmal kommt es vor, dass man viele Subdomains auf einem Webserver installieren will. Beispielsweise möchtest du WordPress MU einsetzen willst und viele Blogs damit verwalten. In meinem Installationsbeispiel wollte ich nur drei Blogs einrichten. Da kann man für jeden einzelnen Blog ein Alias vergeben. Im Betrieb für eine Blogplattform mit mehreren hundert Blogs wäre das [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal kommt es vor, dass man viele Subdomains auf einem Webserver installieren will.<br />
Beispielsweise möchtest du <a href="http://www.baldenhofer.eu/blog/gentoo/installation-von-wordpress-mu-auf-gentoo-linux">WordPress MU</a> einsetzen willst und viele Blogs damit verwalten.<br />
In meinem Installationsbeispiel wollte ich nur drei Blogs einrichten. Da kann man für jeden einzelnen Blog ein Alias vergeben.</p>
<p>Im Betrieb für eine Blogplattform mit mehreren hundert Blogs wäre das nicht sinnvoll weil:</p>
<ul>
<li>Jeder neue Blog würde die vhost Konfiguration verändern</li>
<li>Hoher Administrationsaufwand</li>
<li>Risiken, da mehrere Dateien zeitgleich angepasst werden müssen</li>
<li>Hohe Server-Down-Time da bei jedem neuen Blog der Apache kurz neu gestartet werden muss</li>
</ul>
<p>Also ziemlich unbrauchbar gelle?</p>
<h3>Wildcards für die Konfiguration</h3>
<p>Die Lösung ist wirklich einfach.</p>
<p>Anstatt z.B. folgende Konfiguration zu verwenden:</p>
<div class="geshi no bash">
<div class="head">&lt;VirtualHost karle&gt;</div>
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ServerAdmin root<span class="sy0">@</span>localhost</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ServerName karle.<span class="kw2">domainname</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ServerAlias hans.karle.<span class="kw2">domainname</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ServerAlias eugen.karle.<span class="kw2">domainname</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ServerAlias frida.karle.<span class="kw2">domainname</span></div>
</li>
<li class="li1">
<div class="de1">&#8230;</div>
</li>
</ol>
</div>
<p>Kannst du mit einem Wildcard erzeugen, dass alle Subdomänen auf karle.domainname geleitet werden.</p>
<div class="geshi no bash">
<div class="head">&lt;VirtualHost karle&gt;</div>
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ServerAdmin root<span class="sy0">@</span>localhost</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ServerName karle.<span class="kw2">domainname</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; ServerAlias <span class="sy0">*</span>.karle.<span class="kw2">domainname</span></div>
</li>
<li class="li1">
<div class="de1">&#8230;</div>
</li>
</ol>
</div>
<p>Der Vorteil dieser Lösung ist klar, dass alle Subdomänen ohne einen eigenen Eintrag für WordPress MU richtig verwaltet werden.</p>
<p>Der Nachteil dieser Lösung besteht darin, dass du keine absolute Kontrolle über deine Subdomänen hast. Ein böser Administrator kann dir jetzt beliebig viele Subdomänen anlegen und der Apache wird alle brav verwalten.</p>
<hr /><h2>Ähnliche Beiträge</h2><ul></ul><hr /><small>www.baldenhofer.eu © seit 2009 <br />
Dieser Feed kommt vom <a href="http://www.baldenhofer.eu/blog">Guggat emol Blog</a>, viel Spa&#223; beim Lesen! &#220;ber  Links zu Artikeln freuen wir uns, jedoch bitte bindet nicht einfach unsere Inhalte in eure Seite ein, danke. Hinweis für Feedleser: Beiträge, die Quellcode enthalten sind auf der Webseite meist besser lesbar, als in einem Feed-Reader. 
<br /> 4e3744397ab2a417f811b29573bcbef4)</small>]]></content:encoded>
			<wfw:commentRss>http://www.baldenhofer.eu/blog/gentoo/konfiguration-von-apache-fuer-viele-subdomains-bei-wordpress-mu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

