<?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>Kau-Boys blog &#187; Webserver</title>
	<atom:link href="http://kau-boys.de/category/webserver/feed" rel="self" type="application/rss+xml" />
	<link>http://kau-boys.de</link>
	<description>Webdevelopment and more</description>
	<lastBuildDate>Sun, 22 Jan 2012 17:33:25 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Schutz der Website oder des Blog vor massiven Zugriffen durch Crawler oder Angreifer</title>
		<link>http://kau-boys.de/1471/webserver/schutz-der-website-oder-des-blog-vor-massiven-zugriffen-durch-crawler-oder-angreifer?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=schutz-der-website-oder-des-blog-vor-massiven-zugriffen-durch-crawler-oder-angreifer</link>
		<comments>http://kau-boys.de/1471/webserver/schutz-der-website-oder-des-blog-vor-massiven-zugriffen-durch-crawler-oder-angreifer#comments</comments>
		<pubDate>Tue, 17 Jan 2012 17:39:08 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1471</guid>
		<description><![CDATA[Heute bekam ich über mein Monitoring-Tool mal wieder eine Mail, dass mein Blog gerade down ist. Bei allen, die das vorhin getroffen hat, möchte ich mich hiermit auch entschuldigen. Aber wieso war mein Blog mal wieder down, wo er doch in letzter Zeit so gut gelaufen ist? Crawler: Plage oder Segen? Jeder von uns, der [...]]]></description>
			<content:encoded><![CDATA[<p>Heute bekam ich über mein Monitoring-Tool mal wieder eine Mail, dass mein Blog gerade down ist. Bei allen, die das vorhin getroffen hat, möchte ich mich hiermit auch entschuldigen. Aber wieso war mein Blog mal wieder down, wo er doch in letzter Zeit so gut gelaufen ist?</p>
<h2>Crawler: Plage oder Segen?</h2>
<p>Jeder von uns, der eine Website hat freut sich wohl, wenn den Google Crawler regelmäßig vorbeischaut und dabei möglichst alle neuen schon nach wenigen Minuten in den Index befördert. Da der Google Crawler dabei auch automatisch auf die Performance einer Website achtet um kleine Seiten nicht zu überlasten, fällt es auch nicht weiter auf, wenn er gerade am Werk ist.</p>
<p>Aber leider gibt es nicht nur den Google Crawler sondern mittlerweile eine unüberschaubar große Anzahl davon. Heute hat sich also ein neuer Crawler ans Werk gemacht und meine Website im Turbogang mit Anfragen beschossen. Das ist für den kleinen V-Server dann doch etwas zu viel geworden und er hatte innerhalb kürzester Zeit eine Auslastung von 4500%!</p>
<p><span id="more-1471"></span></p>
<p>Aber wie kann man sich nun vor solchen Crawlern schützen und möchte man das auch. Wenn man nämlich einen Crawler blockiert, dann kann der Dienst dahinter die Website nicht mehr indizieren und man verliert eventuell neue Nutzer, die auf die eigene Website über diesen Dienst aufmerksam geworden wären. Daher habe ich bei meiner Website nicht kategorisch alle Crawler außer denen der großen Suchmaschinen ausgeschlossen.</p>
<h2>Einzelne Crawler sperren</h2>
<p>Um Crawler den Zugriff auf die eigene Website zu verweigern setzt man eine Datei mit dem Namen <code>robots.txt</code> ein. Nachdem ich also den Namen des Crawlers über die Logfiles meines Servers rausgefunden hatte, konnte ich ihn zukünftig ausschließen, indem ich folgende Zeilen zur robots.txt Datei hinzugefügt habe:</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
User-agent: 008
Disallow: /
</pre>
<p>Das Problem an der Sache ich nur, dass der Crawler diese Änderung nicht sofort bemerkt. Eventuell prüft er die Datei ja nur einmal pro Stunde oder sogar nur einmal am Tag oder in der Woche. Bis er also aufhört die Website mit Anfragen zu überfluten müssen andere Maßnahmen getroffen werden.</p>
<h2>Zugriffe von einer IP-Adresse blockieren</h2>
<p>Ich musste also nun den Zugriff durch den Crawler anhand seiner IP-Adresse blockieren. Das geht am einfachsten über die Datei <code>.htaccess</code> die sich meistens im Wurzelverzeichnis der Website befindet. Dort habe ich folgende Zeilen eingefügt:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
# block potentially harming clients
order allow,deny
deny from 77.45.136.22
deny from 91.218.229.49
allow from all
# END: block potentially harming clients
</pre>
<p>Ich habe hier in diesem Beispiel zwei IP-Adressen blockiert. Was es mit der zweiten auf sich hat erkläre ich euch gleich. Ihr könnt hier also auch mehrere IP-Adressen blockieren, müsste aber pro Adresse eine Zeile verwenden. Damit verhindert ihr zwar die Anfrage selbst nicht (was auch nicht möglich ist) aber die Anfrage wird hierbei vom Apache-Server direkt zurückgewiesen, ohne dass beispielsweise WordPress etwas davon mitbekommt und anfängt die angeforderte Seite zu generieren. Wenn der Crawler intelligent ist, hört er auch recht bald auf eure Seite zu lesen und schaut sich vielleicht gleich mein eure veränderte robots.txt Datei an.</p>
<h2>Hilfe gegen die bösen Jungs da draußen</h2>
<p>Leider ist die robots.txt Datei nur eine Bitte an einen Crawler, was sie mit eurer Website tun soll. Er kann diese Information aber natürlich auch einfach ignorieren und eure Website trotzdem auslesen. Dann sollte das Blockieren mittels .htaccess Datei funktionieren, solange es ein Crawler ist, hinter dem keine bösen Absichten stecken. Denn sobald ihr den Crawler blockiert, bekommt er das natürlich mit. Er könnte dann einfach die IP-Adresse wechseln und erneut eure Seite belagern. Damit er das aber nicht so schnell mitbekommt, könnt ihr einen kleinen Trick anwenden. Oft werden solche Crawler von Programmieren eingesetzt, die den gesamten Inhalt eurer Website lesen wollen. Sie prüfen dabei vermutlich auch, ob die Seite erfolgreich angefordert werden konnte (Status Code 200) oder ob es eine erfolgreiche Weiterleitung gab (Status Code 301/302). Wieso also nicht dem Crawler einfach eine Seite zurückliefern, die Inhalt enthält, nicht aber den, den er wollte. Oder ihn einfach auf eine andere Seite weiterleiten.</p>
<p>Ich leite solche Angreifer gerne auf <a href="http://www.weirdity.com/internet/eoti.html">&#8220;Das Ende des Internets&#8221;</a> um. Das ist eine witzige Seite, die wie eine typische Internet Explorer-Fehlerseite aussieht und andeutet, dass man das Ende des Internet erreicht hat. Um das zu tun fügt ihr einfach folgende Zeilen in eure .htaccess Datei ein:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
# rewrite unwanted clients to the end of the internet
RewriteCond %{REMOTE_ADDR} ^77\.45\.136\.22 [OR]
RewriteCond %{REMOTE_ADDR} ^91\.218\.229\.49
RewriteRule ^(.*)$ http://www.weirdity.com/internet/eoti.html [L]
# END: rewrite unwanted clients to the end of the internet
</pre>
<p>Wenn ihr hier mehrere IP-Adressen angeben möchtet, dann müsst ihr hinter jeder Zeile, außer der letzten, noch <code>[OR]</code> einfügen. Außerdem müssten die Punkte mit einem vorangestellten Backslash markiert werden.</p>
<p>Wenn ihr zuvor schon den vorherigen Code zum Blockieren einer IP-Adresse eingefügt habt, dann müsst ihr diesen auskommentieren (indem ihr vor jede Zeile ein # Zeichen einfügt), damit die Zugriffe nicht mehr blockiert, sondern stattdessen umgeleitet werden.</p>
<p>Der Nutzer des Crawlers merkt  im Optimalfall davon nichts. Wenn er sich dann aber im Nachhinein die gecrawlten Seiten ansieht, wird er sich über deren Inhalt wohl sehr ärgern.</p>
<h2>Fazit</h2>
<p>Ich habe mit den hier beschriebenen schon eingie Angriffe bzw. unbeabsichtigte Überlastungen durch Crawler abwenden können. Auch mein Server läuft gerade wieder mit gemächlichen 5% Auslastung vor sich hin. Diese Maßnahmen schützen einen zwar nicht vor professionellen oder gut organisierten Angriffen, aber gegen die oft genannten &#8220;Script-Kiddies&#8221; sollten sie ausreichen. Die suchen sich dann einfach eine Website, die sie einfacher angreifen können.</p>
<p>Ach ja und jetzt noch zu der zweite IP-Adresse. Diese stammt wirklich von einem Angreifer. Der wollte aber nicht meinen Server durch viele Anfragen überlasten, sondern viel schlimmer noch, er wollte Schadcode auf meinen Server laden. Dazu hat er versucht die Sicherheitslücke in der TimThumb Funktion auszunutzen, auf die ich auch weiter unten in meinem Artikel <a href="http://kau-boys.de/1422/wordpress/plugins-und-sicherheit-sicherheitsluecke-in-filedownload-plugin-geschlossen">Plugins und Sicherheit: Sicherheitslücke in Filedownload Plugin geschlossen</a> kurz eingegangen bin. Aber zum Glück verwende ich kein Plugin oder Theme, das diese Funktion nutzt bzw. eine unsichere Version von TimThumb verwendet.</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1471/webserver/schutz-der-website-oder-des-blog-vor-massiven-zugriffen-durch-crawler-oder-angreifer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP-Soap auf einem 1&amp;1 ROOT-Server mit openSUSE installieren</title>
		<link>http://kau-boys.de/1307/webserver/php-soap-auf-einem-1und1-root-server-mit-opensuse-installieren?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php-soap-auf-einem-1und1-root-server-mit-opensuse-installieren</link>
		<comments>http://kau-boys.de/1307/webserver/php-soap-auf-einem-1und1-root-server-mit-opensuse-installieren#comments</comments>
		<pubDate>Tue, 14 Jun 2011 18:27:23 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Betriebssystem]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1307</guid>
		<description><![CDATA[Ich habe vor kurzem mal wieder einen Webservice, der eine SOAP Schnittstelle bot, per PHP ansprechen müssen. Das ist ja mit den Funktionen, die PHP liefert auch kein Problem und funktioniert dann fast genau so einfach wie der Funktionsausruf einer externen Bibliothek. Um SOAP nutzen zu können, muss es über die php.ini Datei aktiviert werden [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe vor kurzem mal wieder einen Webservice, der eine SOAP Schnittstelle bot, per PHP ansprechen müssen. Das ist ja mit den Funktionen, die PHP liefert auch kein Problem und funktioniert dann fast genau so einfach wie der Funktionsausruf einer externen Bibliothek.</p>
<p>Um SOAP nutzen zu können, muss es über die php.ini Datei aktiviert werden oder in das Verzeichnis für die Erweiterungen (z.B. unter <code>/usr/lib64/php5/extensions</code>). Was aber, wenn die SOAP Bibliothek nicht installiert ist? Dann muss man es je nach Betriebssystem nachinstallieren. Unter Linux geht das über die Paketmanager oft am einfachsten.</p>
<p>Für openSUSE könnt ihr hierfür den Paketmanager <a href="http://de.opensuse.org/YaST">YAST</a> verwenden. Der Befehl dazu lautet wie folgt:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
yast -i php5-soap
</pre>
<p>Der Vorteil bei der Installation über den Paketmanager: Die Bibliothek wird auch gleich in die bestehende Konfiguration eingetragen. Somit könnt ihr direkt nach der Ausführung des Befehls loslegen. Solltet ihr noch nie mit Webservices gearbeitet haben, dann findet ihr in der PHP Doku die <a href="http://php.net/manual/en/book.soap.php">wichtigsten Funktionen von SOAP in PHP</a>.</p>
<p>Jetzt viel Spaß oder auch viel Ärger mit SOAP <img src='http://kau-boys.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1307/webserver/php-soap-auf-einem-1und1-root-server-mit-opensuse-installieren/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ordnerstruktur eines SVN-Repositories richtig aufsetzen</title>
		<link>http://kau-boys.de/1296/webserver/ordnerstruktur-eines-svn-repositories-richtig-aufsetzen?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ordnerstruktur-eines-svn-repositories-richtig-aufsetzen</link>
		<comments>http://kau-boys.de/1296/webserver/ordnerstruktur-eines-svn-repositories-richtig-aufsetzen#comments</comments>
		<pubDate>Sat, 04 Jun 2011 20:11:01 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1296</guid>
		<description><![CDATA[In meinem letzten Artikel Subversion mit WebDAV auf einem Ubuntu Server installieren habe ich euch ja gezeigt, wie man den Server für die Subversion Repositories aufsetzt. Nun geht es aber darum, wie man die Ordnerstruktur eines Projekts gestalten sollte. Wenn man hier von Anfang an auf ein paar Grundlegende Best-Practices achtet, dann erleichtert es einem [...]]]></description>
			<content:encoded><![CDATA[<p>In meinem letzten Artikel <a href="http://kau-boys.de/1271/webserver/subversion-mit-webdav-auf-einem-ubuntu-server-installieren">Subversion mit WebDAV auf einem Ubuntu Server installieren</a> habe ich euch ja gezeigt, wie man den Server für die Subversion Repositories aufsetzt. Nun geht es aber darum, wie man die Ordnerstruktur eines Projekts gestalten sollte. Wenn man hier von Anfang an auf ein paar Grundlegende Best-Practices achtet, dann erleichtert es einem später enorm die Arbeit mit dem Repository.</p>
<h2>Die Grundlegenge Ordnerstruktur</h2>
<p>Es gibt keine fest vorgegebene Struktur für ein Repository. Es hat sich aber eine Struktur herausgebildet, die von den meisten Projekten, die Subversion einsetzen benutzt wird. Diese wird auch in der <a href="http://svnbook.red-bean.com/">SVN-Referenz</a> (<a href="http://svnbook.red-bean.com/nightly/de/">deutsche Übersetzung</a>) beschrieben. Dazu werden im Hauptverzeichnis folgende drei Ordner erstellt:</p>
<p><span id="more-1296"></span></p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
/
	trunk/
	branches/
	tags/
</pre>
<p>Solltet ihr mehrere Projekte in einem Repository verwalten, dann macht es Sinn für jeder eine solche Ordnerstruktur anzulegen:</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
/
	projekt1/
		trunk/
		branches/
		tags/
	projekt2/
		trunk/
		branches/
		tags/
</pre>
<h2>Neues Repository mit dieser Ordnerstruktur erzeugen</h2>
<p>Am besten erzeugen wir also gleich zu Beginn eines neuen Projekts eine solche Struktur. Gehen wir einfach mal von einem einfachen Repository mit nur einem Projekt aus. Ich möchte euch kurz die notwendigen Befehle aufzeigen um ein Repository für nur ein Projekt mit einer solchen Ordnerstruktur zu erzeugen.</p>
<p>Zuerst einmal erstellen wir in einem beliebigen Ordner ein neues Repository um dieses anschließend verwenden zu können:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
svnadmin create /var/svn/public/myproject
</pre>
<p>Um nun die notwendigen Verzeichnisse zu erzeugen gibt es zwei Möglichkeiten:</p>
<ol>
<li>Auschecken des Repositories, erzeugen der Ordner und commit der Ordnerstruktur</li>
<li>Direktes erzeugen der Ordner im Repository</li>
</ol>
<p>Die erste Variante bietet sich an, wenn man gleich mehrere Projekte mit der Ordnerstruktur erzeugen möchte. Ich zeige euch hier kurz, welche Befehle dabei in Unix-Systemen notwendig wären:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
cd ~
mkdir project
cd project/
svn checkout http://kau-boys.de/svn/myproject
cd myproject/
mkdir trunk tags branches
</pre>
<p>Jetzt müssen wir die Ordner zum Hinzufügen in das Repository markieren mit dem Befehl <code>svn add</code>:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
svn add trunk tags branches

A         trunk
A         tags
A         branches
</pre>
<p>Jetzt können wir diese Ordnerstruktur in das Repository commiten:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
svn commit -m &quot;Import der initialen Ordnerstruktur&quot;

Adding         branches
Adding         tags
Adding         trunk

Committed revision 1.
</pre>
<p>Die andere Möglichkeit ist wesentlich einfacher und erfordert nur einen einzigen Befehl. Dieser erzeugt die Ordnerstruktur direkt im Repository. Auch hier wäre es möglich die Ordner gleich für mehrere Projekte anzulegen (was ihr am besten mit mehreren Befehlen macht):</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
svn mkdir -m &quot;Import der initialen Ordnerstruktur&quot; \
	file:///var/svn/myproject/trunk \
	file:///var/svn/myproject/tags \
	file:///var/svn/myproject/branches

Committed revision 1.
</pre>
<p>Wie ihr seht ist diese Variante sehr viel einfacher. Gerade für den Administrator eines Repositories ist er praktischer. Man könnte den z.B. den gesamten Prozess zur Erzeugung eines Repositories und der Ordnerstruktur in einem Skript zusammenfassen, dass alle notwendigen Befehle automatisch hintereinander ausführt.</p>
<h2>Das richtige Verzeichnis auschecken</h2>
<p>Ganz wichtig ist es nun aber, dass ihr auch das richtige Verzeichnis benutzt um euer Projekt zu starten. Solltet ihr die Ordnerstruktur wie in der ersten Variante erzeugt haben, wechselt in eure Working Copy und benutzt dort den Befehl <code>svn switch</code> um auf das <i>trunk</i> Verzeichnis zu wechseln:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
cd ~/myproject
svn switch http://kau-boys.de/svn/myproject/trunk

D    trunk
D    branches
D    tags
</pre>
<p>Wie ihr sehen könnt, wurden die Ordner gelöscht, da ihr euch nun &#8220;im Ordner trunk&#8221; befindet. In diesem könnt ihr nun eure Dateien des Projekts commiten.</p>
<p>Wenn ihr die Ordnerstruktur wie in Variante 2 erzeugt habt, dann müsst ihr lediglich das richtige Verzeichnis auschecken. Gebt also direkt den <i>trunk</i> Ordner bei auschecken an:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
cd ~
svn checkout http://kau-boys.de/svn/myproject/trunk myproject

Checked out revision 1.
</pre>
<p>Damit der Ordner aber dabei nicht <i>trunk</i> heißt geben wir beim <i>checkout</i> Befehl gleich den Namen des Ordners an, den unser Projekt nachher haben soll, also in diesem Fall <i>myproject</i>.</p>
<h2>Fazit</h2>
<p>Ihr habt nun also gesehen, wie man eine gute Ordnerstruktur für Subversion-Projekte anlegt. Falls ihr euch aber fragt, wieso das so wichtig ist, dann seht euch mal <a href="http://svnbook.red-bean.com/en/1.1/ch04.html">Kapitel 4 der SVN-Referenz</a> (<a href="http://svnbook.red-bean.com/nightly/de/svn.branchmerge.html">deutsche Übersetzung</a>) an. Ich mal bei einem Projekt zwar einen Ordner <i>trunk</i> erzeugt aber diesen als Root-Verzeichnis meines Repositories benutzt. Als ich dann (ca. 10000 Commits später) dann doch mal branches einsetzen wollte, bekam ich natürlich Probleme, da ich dann erst die Unterverzeichnisse erzeugt habe und alle anderen Order und Dateien per <code>svn move</code> in den Ordner <i>trunk</i> verschieben musste. Dabei bleibt zwar die History aller Dateien erhalten, aber jeder Benutzer musste den Pfad zum Repository aktualisieren und dann in den neuen <i>trunk</i> Ordner wechseln.</p>
<p>Wenn ihr euch also schon immer zu Beginn eines neuen Projekts die Ordner erzeugt spart ihr euch nachher viel Arbeit. Selbst wenn ihr denkt, niemals so komplex zu werden, dann seht mal in der SVN-Referenz unter dem Stichpunkt Feature-Release nach. So etwas könnte auch euch mal passieren. Also spart nicht an dem einen Befehl und den drei Ordnern <img src='http://kau-boys.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1296/webserver/ordnerstruktur-eines-svn-repositories-richtig-aufsetzen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion mit WebDAV auf einem Ubuntu Server installieren</title>
		<link>http://kau-boys.de/1271/webserver/subversion-mit-webdav-auf-einem-ubuntu-server-installieren?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=subversion-mit-webdav-auf-einem-ubuntu-server-installieren</link>
		<comments>http://kau-boys.de/1271/webserver/subversion-mit-webdav-auf-einem-ubuntu-server-installieren#comments</comments>
		<pubDate>Sun, 22 May 2011 12:34:49 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1271</guid>
		<description><![CDATA[Heute ist Tag 1 mit meinem neuen Server und natürlich ist noch nicht alles wieder so, wie es vorher war. Für einige kleine Projekte benötige ich ein SVN-Repository und da ich einen eigenen Server habe lohnt es sich ja auch diesen dafür zu verwenden. Da einige Projekte eventuell auch für die Allgemeinheit verfügbar sein sollen, [...]]]></description>
			<content:encoded><![CDATA[<p>Heute ist Tag 1 mit meinem neuen Server und natürlich ist noch nicht alles wieder so, wie es vorher war. Für einige kleine Projekte benötige ich ein SVN-Repository und da ich einen eigenen Server habe lohnt es sich ja auch diesen dafür zu verwenden. Da einige Projekte eventuell auch für die Allgemeinheit verfügbar sein sollen, möchte ich diesmal gleich den Zugriff per DAV ermöglichen, damit nicht immer ein Benutzer angelegt oder ein zentrales Passwort veröffentlicht werden muss. Da die letze Einrichtung auch bei mir schon wieder etwas her ist habe ich bei <a href="http://www.howtogeek.com">How-To Geek</a> den Artikel <a href="http://www.howtogeek.com/howto/ubuntu/install-subversion-with-web-access-on-ubuntu/">Install Subversion with Web Access on Ubuntu</a> gefunden. Hier nun meine Zusammenfassung zum Umsetzen auf einem Server mit Ubuntu 10.04 LTS (sollte aber auch auf anderen Linux Distributionen ähnlich funktionieren, abgesehen von den Speicherpfaden und der Art der Installation).</p>
<h2>Installieren von Subversion</h2>
<p><span id="more-1271"></span></p>
<p>Die Installationshilfen von Ubuntu machen einem diesen Schritt ja sehr einfach. Zuerst einmal müssen bei meinem frisch installierten Server die Paketquellen aktualisiert werden. Das macht man mit folgendem Befehl (solltet ihr nicht als &#8220;root&#8221; angemeldet sein, müsst ihr eventuell noch &#8220;sudo &#8221; vor diesen und weiter Befehl setzen):</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
apt-get update
</pre>
<p>Anschließend können wir Subversion und die Erweiterung für den Apache-Server installieren, was mit folgendem Befehl passiert:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
apt-get install subversion libapache2-svn
</pre>
<p>Wenn alles geklappt hat ist Subversion auch schon installiert. Um es zu testen könnt ihr den &#8220;svn&#8221; Befehl auf der Konsole testen und dabei auch gleich feststellen, ob das WebDAV Modul verfügbar ist:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
svn --version
</pre>
<h2>WebDAV Ordner einrichten</h2>
<p>Zuerst einmal legen wir ein Verzeichnis an, in dem später all unsere SVN-Repositories abgelegt werden:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
mkdir /var/svn
</pre>
<p>Anschließend erstellen wir einen weiteren Unterordner für alle SVN-Repositories, die wir später per WebDAV freigeben möchten:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
mkdir /var/svn/public
</pre>
<h2>Erzeugen des ersten öffentlichen Repository</h2>
<p>So, nun sind wir bereit unser erstes Repository zu erzeugen und dieses anschließend freigeben zu können. Zuerst einmal müssen wir das SVN-Repository selbst erzeugen. Dies geschieht mit dem Befehl <a href="http://svnbook.red-bean.com/nightly/de/svn.ref.svnadmin.html">svnadmin</a>, genauer gesagt mit dem Unterbefehl <a href="http://svnbook.red-bean.com/nightly/de/svn.reposadmin.create.html#svn.reposadmin.basics.creating">svnadmin create</a>:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
svnadmin create /var/svn/public/myproject
</pre>
<p>Der Befehl erzeugt keine Ausgabe, lass euch also nicht irritieren, wenn da nicht viel passiert. Um zu kontrollieren, ob das Erstellen des SVN-Repositories geklappt hat, seht euch einfach mal den Inhalt des Ordners an:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
cd /var/svn/public/myproject
ls -l

total 24
drwxr-xr-x 2 root root 4096 2011-05-22 13:21 conf
drwxr-sr-x 6 root root 4096 2011-05-22 13:21 db
-r--r--r-- 1 root root    2 2011-05-22 13:21 format
drwxr-xr-x 2 root root 4096 2011-05-22 13:21 hooks
drwxr-xr-x 2 root root 4096 2011-05-22 13:21 locks
-rw-r--r-- 1 root root  229 2011-05-22 13:21 README.txt
</pre>
<h2>Repository über WebDAV freigeben</h2>
<p>Nun müssen wir die Konfiguration des WebDAV Moduls anpassen, damit das Repository von außen verfügbar ist. Dazu öffnen wir die Konfigurationsdatei:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
vi /etc/apache2/mods-enabled/dav_svn.conf
</pre>
<p>Hier müsst ihr in ein paar Zeilen die anführenden Kommentarzeichen entfernen. Eure Konfiguration sollte dann mindestens folgende Zeilen (unkommentiert) enthalten:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
&lt;Location /svn&gt;
  DAV svn
  SVNParentPath /var/svn/public
  AuthType Basic
  AuthName &quot;Subversion Repository&quot;
  AuthUserFile /etc/apache2/dav_svn.passwd
  &lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;
    Require valid-user
  &lt;/LimitExcept&gt;
&lt;/Location&gt;
</pre>
<p>Nachdem ihr die Konfiguration gespeichert habt können wir den Zugang für euer öffentliches Repository machen. Wir verwenden hier allerdings eine Benutzer-Autorisierung, damit wir den Schreibzugriff auf das Repository einschränken können. Zum Erstellen eines Benutzers wird folgender Befehl verwendet. Gebt dort anschließend zweimal das neue Passwort des Nutzers ein:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
htpasswd -cm /etc/apache2/dav_svn.passwd public

New password:
Re-type new password:
Adding password for user public
</pre>
<p>Damit die Benutzer auch in das Verzeichnis schreiben können, muss es noch auf den Apache-Benutzer übertragen werden, da wir es ja als root erzeugt haben. Das geschieht mit folgendem Befehl:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
chown -R www-data /var/svn/public/
</pre>
<p>Das war es im Grunde auch schon. Was jetzt noch fehlt ist ein Neustart des Apache-Servers, damit die neue Konfiguration auch geladen wird:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
/etc/init.d/apache2 restart
</pre>
<h2>Testen des öffentlichen Repositories</h2>
<p>Jetzt könnt ihr das neue öffentliche Repository testen. Navigiert dazu einfach in eurem Browser auf eine eurer Domains und dort in den Unterordner <code>/svn/myproject</code>. Ihr solltet dann in etwa folgendes sehen:</p>
<p style="text-align: center">
<img src="http://kau-boys.de/wp-content/uploads/2011/05/SVN-Repository-WebDAV.png" alt="SVN-Repository-WebDAV" title="SVN-Repository-WebDAV" style="width: 506px; height: 301px;" />
</p>
<p>Das war es auch schon. Jetzt habt ihr euern eigenen Subversion Server und könnt dort nach Belieben öffentliche Projekte verwalten. Solltet ihr aber mal ein nicht öffentliches Projekt haben, könnte ihr dieses weiterhin über das <code>svn+ssh:</code> Protokoll betreiben. Dazu müsst ihr es einfach nur direkt im <code>/var/svn</code> Ordner ablegen und dann per SSH für bestimmt Benutzer erreichbar machen. Falls Interesse besteht werde ich das in einem separaten Artikel nochmal kurz erklären.</p>
<p>Fragen und Anmerkungen sind wie immer gerne gesehen!</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1271/webserver/subversion-mit-webdav-auf-einem-ubuntu-server-installieren/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Einen Catch-All E-Mail Account in Plesk einrichten</title>
		<link>http://kau-boys.de/1246/webserver/einen-catch-all-e-mail-account-in-plesk-einrichten?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=einen-catch-all-e-mail-account-in-plesk-einrichten</link>
		<comments>http://kau-boys.de/1246/webserver/einen-catch-all-e-mail-account-in-plesk-einrichten#comments</comments>
		<pubDate>Sat, 26 Feb 2011 16:57:46 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1246</guid>
		<description><![CDATA[Wie ich schon in verschiedenen anderer Artikel erwähnt habe, läuft dieser Blog auf einem Server mit Plesk. Für meine Domain kann ich zurzeit bei meinem Hoster nur eine einzige E-Mail-Adresse angeben. Da ich aber auch andere Adressen verwenden wollte habe ich mir die E-Mail Funktion von Plesk zunutze gemacht. Da ich alle E-Mail-Adressen meiner Domain [...]]]></description>
			<content:encoded><![CDATA[<p>Wie ich schon in verschiedenen anderer Artikel erwähnt habe, läuft dieser Blog auf einem Server mit Plesk. Für meine Domain kann ich zurzeit bei meinem Hoster nur eine einzige E-Mail-Adresse angeben. Da ich aber auch andere Adressen verwenden wollte habe ich mir die E-Mail Funktion von Plesk zunutze gemacht.</p>
<p>Da ich alle E-Mail-Adressen meiner Domain ohnehin auf eine einzige Adresse umleiten lassen möchte, habe ich noch einer Möglichkeit in Plesk gesucht und schließlich auch gefunden. Man kann recht einfach einen sogenannten Catch-All E-Mail-Account einrichten. Die Einstellung ist allerdings etwas versteckt.</p>
<p><span id="more-1246"></span></p>
<h2>Catch-All einrichten</h2>
<p>Zuerst navigiert ihr über die Startseite über Übersicht eure Domain, für die ihr einen Catch-All erstellen möchtet.</p>
<div style="text-align: center;">
<img src="http://kau-boys.de/wp-content/uploads/2011/02/Plesk-Domain-E-Mail.png" alt="Plesk Domain - E-Mail" title="Plesk Domain - E-Mail" style="width: 506px; height: 169px;" />
</div>
<p>Anschließend klickt ihr auf &#8220;E-Mail-Accounts&#8221;:</p>
<div style="text-align: center;">
<img src="http://kau-boys.de/wp-content/uploads/2011/02/Plesk-Domain-E-Mail-Accounts.png" alt="Plesk Domain - E-Mail-Accounts" title="Plesk Domain - E-Mail-Accounts" style="width: 506px; height: 147px;" />
</div>
<p>Dort könntet ihr nun einen einzelnen E-Mail-Account anlegen, den ihr dann direkt als Postfach z.B. per POP3 abruft oder eine Weiterleitung einrichtet. Wir möchten aber einen Catch-All einrichten und klicken daher auf &#8220;E-Mail-Einstellungen&#8221;:</p>
<div style="text-align: center;">
<img src="http://kau-boys.de/wp-content/uploads/2011/02/Plesk-Domain-E-Mail-Einstellungen.png" alt="Plesk Domain - E-Mail-Einstellungen" title="Plesk Domain - E-Mail-Einstellungen" style="width: 506px; height: 444px;" />
</div>
<p>Hier findet ihr endlich die Einstellungen für den Catch-All. Bei einem Catch-All werden bekanntlich alle E-Mails, die an unbekannte Adressen geschickt, aufgefangen. Ihr könnt hier nun entweder eine Adresse angeben, die ihr zuvor als echten E-Mail-Account angelegt habt, oder aber ihr leitet sie an eine externe E-Mail-Adresse weiter, so wie ich es getan habe.</p>
<p>Das war es auch schon. Ab sofort könnt ihr jede beliebige E-Mail-Adresse eures Accounts verwenden und die Mails landen automatisch in eurem Postfach. Nur wenn ihr auch mit dieser Adresse antworten möchtet, müsst ihr dann daran denken in eurem E-Mail-Programm auch die Absender-Adresse entsprechen anzupassen.</p>
<p>Ich hoffe der Tipp konnte euch wie immer weiterhelfen. Über Kommentare würde ich mich wie immer sehr freuen.</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1246/webserver/einen-catch-all-e-mail-account-in-plesk-einrichten/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AWStats und Webalizer für Plesk aktivieren</title>
		<link>http://kau-boys.de/914/webserver/awstats-und-webalizer-fuer-plesk-aktivieren?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=awstats-und-webalizer-fuer-plesk-aktivieren</link>
		<comments>http://kau-boys.de/914/webserver/awstats-und-webalizer-fuer-plesk-aktivieren#comments</comments>
		<pubDate>Fri, 04 Jun 2010 15:15:13 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=914</guid>
		<description><![CDATA[Ich nutze auf dem Server, auf dem dieser Blog läuft Plesk. Ich konnte dort bereits vieles aktivieren, aber eine Sache, die einfach nicht funktionieren wollte, war AWStats oder Webalizer. Dabei war es mir eigentlich egal, welchen der beiden Statistiken läuft, ich wollte es einfach nur mal zum Laufen bekommen, selbst wenn es nur allgemeine Daten [...]]]></description>
			<content:encoded><![CDATA[<p>Ich nutze auf dem Server, auf dem dieser Blog läuft Plesk. Ich konnte dort bereits vieles aktivieren, aber eine Sache, die einfach nicht funktionieren wollte, war AWStats oder Webalizer. Dabei war es mir eigentlich egal, welchen der beiden Statistiken läuft, ich wollte es einfach nur mal zum Laufen bekommen, selbst wenn es nur allgemeine Daten zum Traffic und den Benutzern beinhaltet.</p>
<h2>Statistiken in Plesk aktivieren</h2>
<p>Das Ganze in Plesk zu aktivieren ist eigentlich kein allzu großes Problem. Unter &#8220;Domain -> Hosting -> Setup&#8221; kann man das jeweilige Statistik-Toll recht einfach aktivieren:</p>
<p><img src="http://kau-boys.de/wp-content/uploads/2010/05/AWStats-oder-Webalizer-Webstatistiken-aktivieren.png" alt="AWStats oder Webalizer Webstatistiken aktivieren" title="AWStats oder Webalizer Webstatistiken aktivieren" style="width: 506px; height: 29px" class="aligncenter size-full wp-image-915" /></p>
<p><span id="more-914"></span></p>
<p>Aber leider hat man dadurch nur in Plesk festgelegt, welches Tool man nutzen möchte und wie man auf die Daten zugreifen kann. Beide Dienste beziehen ihre Daten aus den Apache-Logfiles. Diese müssen aber erst aufbereitet werden. Ich dachte, dass dies automatisch passiert, sobald man die Einstellungen in Plesk vorgenommen hat. Dem war aber nicht so.</p>
<h2>Apache-Logfiles manuell auswerten lassen</h2>
<p>Wenn die Daten noch nie ausgewertet wurden enthält man auf der Seite, die eigentlich die Statistiken enthalten sollten, folgenden Hinweis: </p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
This is the placeholder for Webalizer statistics. If you see this page that means that Webalizer has not run yet on your server. Webalizer is typically set to run once every 24 hours. If you do not see a change to this page in the next 24 hours contact your server administrator for assistance.

This page has been automatically generated by Server Administrator.
</pre>
<p>Dummerweise ist man selbst Administrator und weiß auch jetzt nicht weiter. Man kann die Daten erstmalig auswerten lassen, indem man folgenden Befehl über die Konsole ausführt:</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
/usr/local/psa/admin/sbin/statistics
</pre>
<p>Nun werden die Apache-Logfiles ausgewertet und für AWStats und Webalizer aufbereitet. Selbst wenn ihr beide Varianten für verschiedene Domains verwendet habt, werden die Daten mit diesem einen Befehl ausgewertet. Damit ihr diesen Befehl nicht ständig manuell ausführen müsst, solltet ihr einen Cronjob (bzw. Crontab oder &#8220;geplante Aufgabe&#8221;) erstellen, die das z.B. jede Nacht um Mitternacht ausführt.</p>
<p>Wie man einen Cronjob anlegt könnte ihr auf meinem Artikel mit dem <a href="http://kau-boys.de/490/webserver/plesk-cronjob-fuer-ein-php-skript-mit-parametern-einrichten">Titel Plesk Cronjob für ein PHP-Skript mit Parametern einrichten</a> nachlesen, wobei ihr hier anstelle der PHP Skripts den oben beschriebenen Befehl einfügt. Da der Apache Benutzer auch normalerweise keinen Zugriff auf die notwendigen Ordner hat, solltet ihr den Cronjob für den ROOT Benutzer einrichten.</p>
<p>Ich hoffe, der Artikel konnte euch weiterhelfen. Ich wünsche euch noch viel Spaß beim Studieren eurer Statistiken. Anmerkungen und Kommentare sind natürlich wie immer gern gesehen.</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/914/webserver/awstats-und-webalizer-fuer-plesk-aktivieren/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RewriteRule mit Leerzeichen in der Zieladresse</title>
		<link>http://kau-boys.de/887/webentwicklung/rewriterule-mit-leerzeichen-in-der-zieladresse?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rewriterule-mit-leerzeichen-in-der-zieladresse</link>
		<comments>http://kau-boys.de/887/webentwicklung/rewriterule-mit-leerzeichen-in-der-zieladresse#comments</comments>
		<pubDate>Mon, 19 Apr 2010 10:22:03 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=887</guid>
		<description><![CDATA[Auf einer Seite die ich betreue wurde ich vor kurzem vor die Aufgabe gestellt eine RewriteRule in der .htaccess zu definieren, die auf eine PDF zeigt, die ein Leerzeichen im Dateinamen enthält. Das war gar nicht so einfach rauszufinden und selbst im sehr guten Forum von modrewrite.de konnte ich keine geeignete Lösung finden. In URLs [...]]]></description>
			<content:encoded><![CDATA[<p>Auf einer Seite die ich betreue wurde ich vor kurzem vor die Aufgabe gestellt eine RewriteRule in der .htaccess zu definieren, die auf eine PDF zeigt, die ein Leerzeichen im Dateinamen enthält. Das war gar nicht so einfach rauszufinden und selbst im sehr guten <a href="http://www.modrewrite.de/foren/index.php">Forum von modrewrite.de</a> konnte ich keine geeignete Lösung finden.</p>
<p>In URLs werden Leerzeichen einfach mit der Zeichenkette <code>%20</code> ersetzt, aber das alleine führt noch nicht zum Erfolg. Da das Prozentzeichen ein spezielles Zeichen in Rewrite Rules darstellt muss es mit einem Backslash escaped werden. Eine funktionierende Rewrite Rule mit einem Leerzeichen könnte also wie folgt aussehen:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
RewriteEngine on
RewriteRule ^kurzer-dateiname.pdf$ dateiname\%20mit\%20Leerzeichen\%20.pdf
</pre>
<p>Wer also den Dateinamen nicht ändern kann um Leerzeichen zu ersetzen (z.B. durch Unterstriche) kann mit dieser Regel trotzdem einen schöneren/kürzeren Dateinamen über die .htaccess anbieten.</p>
<p>Das war es auch schon. Heute gibt es mal nur einen kurzen Artikel, aber viel mehr gibt es auch nicht dazu zu sagen. Außer vielleicht, dass ihr niemals versuchen solltet ein Leerzeichen in der Zieladresse zu verwenden, da sonst die gesamte .htaccess ungültig wird und der Server einen 500 Fehler für jede Seite zurückliefert.</p>
<p>Ich hoffe der Tipp konnte euch weiterhelfe. Kommentare sind wie immer gern gesehen!</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/887/webentwicklung/rewriterule-mit-leerzeichen-in-der-zieladresse/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Website oder Blog mit der mod_deflate Komprimierung beschleunigen</title>
		<link>http://kau-boys.de/859/webserver/website-oder-blog-mit-der-mod_deflate-komprimierung-beschleunigen?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=website-oder-blog-mit-der-mod_deflate-komprimierung-beschleunigen</link>
		<comments>http://kau-boys.de/859/webserver/website-oder-blog-mit-der-mod_deflate-komprimierung-beschleunigen#comments</comments>
		<pubDate>Fri, 26 Mar 2010 16:54:32 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Betriebssystem]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=859</guid>
		<description><![CDATA[Ich wollte schon lange eine Komprimierung aller Dateien auf meinem Server aktivieren, aber alle Versuche die Komprimierung über das Apache Module mod_deflate oder mod_gzip zu aktivieren liefen ins Leere. Ich fand ständig super aufwändige Anleitungen, wie ich mir das selbst kompilieren und dann mit vielen Anpassungen unter Apache zum Laufen bekomme. Ich bin aber immer [...]]]></description>
			<content:encoded><![CDATA[<p>Ich wollte schon lange eine Komprimierung aller Dateien auf meinem Server aktivieren, aber alle Versuche die Komprimierung über das Apache Module <a href="http://httpd.apache.org/docs/2.0/mod/mod_deflate.html">mod_deflate</a> oder mod_gzip zu aktivieren liefen ins Leere. Ich fand ständig super aufwändige Anleitungen, wie ich mir das selbst kompilieren und dann mit vielen Anpassungen unter Apache zum Laufen bekomme. Ich bin aber immer davor zurückgeschreckt es auch umzusetzen, da ich kein ausgewiesener Linux und Apache Profi bin.</p>
<p>An meinem Geburtstag habe ich dann durch Zufall auf der Suche nach einem anderen Problem gesucht habe unter anderem auf der Website <a href="http://www.debianroot.de/server/serverkomprimierung-mit-apache2-und-mod_deflate-1153.html">debianroot.de</a> eine super einfache Anleitung gefunden, wie man DEFLATE einfach aktivieren kann.</p>
<p><span id="more-859"></span></p>
<h2>MOD_DEFLATE aktivieren</h2>
<p>Ich habe erfahren, dass DEFLATE bereits bei Apache2 installiert ist und man es nur noch aktivieren muss. Dazu ist ein einziger simpler Befehl notwendig:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
a2enmod deflate
</pre>
<p>Das ist alles! Damit DEFLATE aber auch genutzt werden kann und die Dateien ab sofort komprimiert werden ist es zuerst einmal notwendig den Apache2 neu zu starten. Das geht auf den meisten Systemen mit folgendem Befehl:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
/etc/init.d/apache2 restart
</pre>
<p>Der Befehl <code>a2enmod</code> gibt teilweise die Meldung aus man sollte den Befehl <code>/etc/init.d/apache2 force-reload</code> ausführen, aber das alleine hat bei mir nicht geholfen.</p>
<h2>Einrichten der Komprimierung</h2>
<p>Damit die Seiten und Dateien aber auch komprimiert werden, muss noch die <code>.htaccess</code> Datei angepasst werden. Hier mal meine aktuelle Anpassung:</p>
<pre class="brush: bash; title: ; notranslate">
# Turn on compression
&lt;IfModule mod_deflate.c&gt;
  AddOutputFilterByType DEFLATE text/plain text/html text/xml
  AddOutputFilterByType DEFLATE text/css text/javascript text/x-js
  AddOutputFilterByType DEFLATE application/xml application/xhtml+xml
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/javascript application/x-javascript
&lt;/IfModule&gt;
</pre>
<p>Einige JavaScript Dateien wurden interessanterweise mit dem Content-Type <code>text/x-js</code> ausgeliefert, obwohl weder der Standard Content-Type in HEAD noch das Attribut des STYLE Tags diesen Content-Type angaben. Mit <a href="https://addons.mozilla.org/de/firefox/addon/1843">Firebug</a> und <a href="https://addons.mozilla.org/de/firefox/addon/5369">YSlow</a> kann man sehr gut kontrollieren ob die Dateien komprimiert werden.</p>
<h2>Fazit</h2>
<p>Ich habe die Installation und Konfiguration so wie hier beschrieben auf einem Strato V-Server mit Ubuntu sowie auf einem 1&#038;1 Root-Server mit OpenSUSE erfolgreich testen können. Solltet ihr also ein anderes Serverbetriebssystem nutzen, dann kann sich der ein oder andere Befehl unterscheiden.</p>
<p>Durch das Komprimieren aller JavaScript, CSS und HTML Daten konnte ich auf einem System das Ladevolumen um über ein Drittel verringern. Ich finde für zwei Befehle und eine kleine Anpassung der .htaccess ist das ein tolles Ergebnis. Es ist eigentlich schade, dass DEFLATE nicht bei allen Apache2 Installationen standardmäßig aktiviert ist. Denn wer keinen ROOT-Zugriff auf den Server hat wird es wohl nicht ohne weiteres aktivieren können.</p>
<p>Ihr könnte aber in der Ausgabe der <a href="http://de.php.net/manual/en/function.phpinfo.php">phpinfo()</a> Funktion auf einem System mit PHP sehr schnell rausfinden, ob DEFLATE schon aktiv ist. Im Abschnitt &#8220;apache2handler&#8221; findet ihr ganz unten die Zeile &#8220;Loaded Modules&#8221;, in der mod_deflate aufgeführt sein sollte. Eventuell ist aber auch mod_gzip aufgeführt, was ebenfalls zur Komprimierung eingesetzt werden kann. Sollte beides nicht vorhanden sein und ihr keinen ROOT-Zugriff haben hilft vermutlich nur ein verzweifelter Anruf beim Support eures Hosters.</p>
<p>Ich hoffe, dass dem ein oder anderen von euch der Tipp ebenso weiterhelfen konnte wie mir. Ich habe mir damit zumindest selbst ein sehr schönes Geburtstagsgeschenk gemacht. Falls ihr sonstige Anmerkungen oder Fragen habt würde ich mich wie immer über einen Kommentar freuen.</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/859/webserver/website-oder-blog-mit-der-mod_deflate-komprimierung-beschleunigen/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Anzahl der Backups im Plesk Backup-Manager begrenzen</title>
		<link>http://kau-boys.de/692/webserver/anzahl-der-backups-im-plesk-backup-manager-begrenzen?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=anzahl-der-backups-im-plesk-backup-manager-begrenzen</link>
		<comments>http://kau-boys.de/692/webserver/anzahl-der-backups-im-plesk-backup-manager-begrenzen#comments</comments>
		<pubDate>Thu, 11 Feb 2010 15:53:04 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=692</guid>
		<description><![CDATA[In meinem Artikel Plesk Backup-Manager auf 1&#038;1 Linux Root Server einrichten habe ich bereits beschrieben was zu tun ist, um das Backup auf einem Server mit Plesk einzurichten. Beim Einsatz dieser Konfiguration bin ich allerdings sehr schnell auf ein folgenschweres Problem gestoßen. Da ein Backup der Domain mittlerweile eine Größe von über 20GB hat reichen [...]]]></description>
			<content:encoded><![CDATA[<p>In meinem Artikel <a href="http://kau-boys.de/385/webserver/plesk-backup-manager-auf-1und1-linux-root-server-einrichten">Plesk Backup-Manager auf 1&#038;1 Linux Root Server einrichten</a> habe ich bereits beschrieben was zu tun ist, um das Backup auf einem Server mit Plesk einzurichten. Beim Einsatz dieser Konfiguration bin ich allerdings sehr schnell auf ein folgenschweres Problem gestoßen.</p>
<p>Da ein Backup der Domain mittlerweile eine Größe von über 20GB hat reichen die 250GB des 1&#038;1 Backup FTP-Servers nur für 10 Backups. Sobald dieser Speicherplatz verbraucht ist, werden die Daten auf dem Webserver abgelegt. Das fatale dabei ist, dass dadurch der gesamte Speicherplatz des Servers langsam aber sich aufgebraucht wird. Wenn der Speicherplatz belegt ist führt es im schlimmsten Fall dazu, dass MySQL keine temporären Tabellen mehr erzeugen kann und euer Server ist somit nicht mehr in der Lage die Anfragen zu bearbeiten. Also im Klartext: Euer Server funktioniert im schlimmsten Fall nicht mehr.</p>
<p><span id="more-692"></span></p>
<p>Daher solltet ihr die Anzahl der Backups begrenzen, wobei ihr am besten einen Wert nehmt, der der Größe eures FTP Backup Servers geteilt durch die durchschnittliche Größe eines Backups entspricht. In meinen Fall habe ich also einen Wert von 10 gewählt, da hierbei noch etwas Luft nach oben ist, sollte doch mal ein Backup größer ausfallen. Die Einstellung könnt ihr in der &#8220;Einstellungen für geplantes Backup&#8221; vornehmen:</p>
<p><img src="http://kau-boys.de/wp-content/uploads/2010/02/Maximale-Anzahl-von-Backups-im-Repository.png" alt="Maximale Anzahl von Backups im Repository begrenzen" title="Maximale Anzahl von Backups im Repository begrenzen" /></p>
<p>Ihr sollte zur Sicherheit von Zeit zu Zeit überprüfen, ob der gewählte Wert noch der Größe der Backups angemessen ist.</p>
<p>Sollte bei euch bereits ein Backup auf dem Webserver selbst gelandet sein, dann habt ihr leider über Plesk keine Möglichkeit die Backups auf den FTP Backup Server zu verschieben, es sei denn ihr traut euch zu das manuell über die Konsole zu tun. Ich würde euch einfach raten abzuwarten bis aktuellere Backups auf dem FTP Backup Server vorliegen und dann die alten Backups auf dem Server einfach zu löschen. Wenn wie bei mir aber schon der Speicher voll ist solltet ihr auf jeden Fall die ältesten Backups vom Webserver entfernen.</p>
<p>Ich hoffe, dass euch der Tipp weiterhelfen konnte. Unverständlich, dass der kleine Hinweis unter dem Textfeld kein Ausrufezeichen enthält mit dem Hinweis was passiert, wenn man keine Begrenzung angibt. Über Anmerkungen würde ich mich wie immer sehr freuen.</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/692/webserver/anzahl-der-backups-im-plesk-backup-manager-begrenzen/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Plesk Cronjob für ein PHP-Skript mit Parametern einrichten</title>
		<link>http://kau-boys.de/490/webserver/plesk-cronjob-fuer-ein-php-skript-mit-parametern-einrichten?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=plesk-cronjob-fuer-ein-php-skript-mit-parametern-einrichten</link>
		<comments>http://kau-boys.de/490/webserver/plesk-cronjob-fuer-ein-php-skript-mit-parametern-einrichten#comments</comments>
		<pubDate>Mon, 23 Nov 2009 21:09:00 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=490</guid>
		<description><![CDATA[Bei vielen Webhosting Paketen gibt es die Möglichkeit einen Cronjob einzurichten. Leider musste ich nach dem Umstieg von einem 1&#038;1 Managed Homepage Server auf einen 1&#038;1 Linux Root Server feststellen, dass diese Option im Control Center nicht mehr verfügbar war. Auch meine Suche nach dem &#8220;Crontab&#8221; in Plesk war erst einmal erfolglos, da die Funktion [...]]]></description>
			<content:encoded><![CDATA[<p>Bei vielen Webhosting Paketen gibt es die Möglichkeit einen <a href="http://de.wikipedia.org/wiki/Cronjob">Cronjob</a> einzurichten. Leider musste ich nach dem Umstieg von einem 1&#038;1 Managed Homepage Server auf einen 1&#038;1 Linux Root Server feststellen, dass diese Option im Control Center nicht mehr verfügbar war. Auch meine Suche nach dem &#8220;Crontab&#8221; in Plesk war erst einmal erfolglos, da die Funktion an der beschriebenen Stelle nicht zu finden war. Durch Zufall habe ich sie dann doch gefunden.</p>
<p><img title="Plesk Hauptmenü - Server" alt="Plesk Hauptmenü - Server" src="http://kau-boys.de/wp-content/uploads/2009/11/Plesk-Hauptmenü-Server.png"/></p>
<p><span id="more-490"></span></p>
<p>Um einen Cronjob anzulegen navigiert ihr im Hauptmenü zum Abschnitt Server und wählt dort &#8220;Geplante Aufgaben&#8221;. Anschließend bekommt ihr eine Liste mit allen Benutzern angezeigt, die auf eurem Server vorhanden sind. Jedem dieser Benutzer könnt ihr einen Cronjob zuteilen. Um ein PHP-Skript auszuführen solltet ihr den Benutzer wählen, der auf eurem Server den Apache-Server ausführt. Dies ist meistens der Benutzer namens &#8220;wwwrun&#8221;. Blättert also einfach auf die entsprechende Seite oder sucht nach dem Benutzer:</p>
<p><img title="Geplante Aufgaben" alt="Geplante Aufgaben" src="http://kau-boys.de/wp-content/uploads/2009/11/Geplante-Aufgaben.png"/></p>
<p>Nachdem ihr den Benutzer ausgewählt habt klickt auf &#8220;Weiter&#8221;. Ihr gelangt nun auf die Seite mit den &#8220;Crontab-Aufgaben&#8221; für den entsprechenden Benutzer. Hier hat sich also die Crontab Einstellung versteckt. Ihr könnt nun oben eine &#8220;Neue Aufgabe hinzufügen&#8221;:</p>
<p><img title="Crontab Aufgaben von wwwrun" alt="Crontab Aufgaben von wwwrun" src="http://kau-boys.de/wp-content/uploads/2009/11/Crontab-Aufgaben-von-wwwrun.png"/></p>
<p>In die Felder Minute, Stunde und Tag des Monat könnt ihr entweder eine Zahl eingeben oder einen Stern, um den Cronjob für jeden Wert auszuführen. In dem Beispiel wird als der Cronjob an jedem Tag eines Monat um 00:00 Uhr ausgeführt. Wenn ihr den Cronjob auch jeden Monat und an jedem Tag einer Woche ausführen lassen möchtet, dann tragt unten ebenfalls einen Stern ein.</p>
<p><img title="Bearbeitung der Crontab-Aufgabe von wwwrun" alt="Bearbeitung der Crontab-Aufgabe" src="http://kau-boys.de/wp-content/uploads/2009/11/Bearbeitung-der-Crontab-Aufgabe-von-wwwrun.png"/></p>
<p>Wenn ihr ein lokales Programm oder ein PHP-Skript ohne Parameter starten möchtet, könnt ihr einfach den Befehlsnamen in der Feld &#8220;Befehl&#8221; eintragen. Wenn ihr allerdings etwas in der Form &#8220;php /srv/www/vhosts/example.com/httpdocs/skript.php?var1=value&#8221; eintragt, dann versucht PHP die Datei mit dem Namen &#8220;skript.php?var1=value&#8221; zu finden, die es natürlich nicht gibt. Ein sehr einfacher Trick dies zu lösen ist die Verwendung von <a href="http://de.wikipedia.org/wiki/Wget">wget</a>. Dieser Befehlt wird normalerweise dazu genutzt eine Datei von einer Website zu laden. Damit aber nicht eine Datei mit dem Namen &#8220;skript.php?var1=value&#8221; erzeugt wird, nutzen wir den Parameter &#8220;&#8211;spider&#8221;, der den Download unterdrückt. Wir führen also somit einfach nur ein PHP-Skript auf einer beliebigen URL aus. Sobald alle Einstellungen vorgenommen sind, könnt ihr die Einstellungen mit einem Klick auf &#8220;OK&#8221; speichern.</p>
<p><img title="Crontab-Aufgaben von wwwrun aktualisiert" alt="Crontab-Aufgaben aktualisiert" src="http://kau-boys.de/wp-content/uploads/2009/11/Crontab-Aufgaben-von-wwwrun-aktualisiert.png"/></p>
<p>Ihr solltet nun in der Übersicht euren eben erzeugt Cronjob sehen können. Sobald der Zeitpunkt, den ihr angegeben habt erreicht ist, sollte das Skript ausgeführt werden. Zu den Cronjobs wird ein Bereicht erstellt und an eine E-Mail-Adress verschickt. Diese könnt ihr über &#8220;Einstellungen&#8221; eintragen:</p>
<p><img title="Crontab-Eigenschaften von wwwrun bearbeiten" alt="Crontab-Eigenschaften bearbeiten" src="http://kau-boys.de/wp-content/uploads/2009/11/Crontab-Eigenschaften-von-wwwrun-bearbeiten.png"/></p>
<p>Bei meinen Cronjobs wurde bisher noch keine E-Mail verschickt. Eventuell wird auch nur im Fehlerfall eine Mail mit der Fehlermeldung verschickt. Oder aber mein Server leitet die Mail nicht korrekt an den externen 1&#038;1 Mailserver weiter, da es sich bei der E-Mail-Adresse um eine Domain handelt, die er selbst verwaltet. Sobald ich das Rätsel gelöst habe werde ich euch natürlich davon berichten.</p>
<p>Ich hoffe der Artikel konnte euch weiterhelfen. Kennt ihr vielleicht auch noch eine tollt versteckte Funktion? Oder sucht ihr eine bestimmte Einstellung? Über Kommentare würde ich mich wie immmer sehr freuen.</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/490/webserver/plesk-cronjob-fuer-ein-php-skript-mit-parametern-einrichten/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Mail Versand per SMTP auf 1&amp;1 Linux Root Server einrichten</title>
		<link>http://kau-boys.de/466/webserver/mail-versand-per-smtp-auf-1un1-linux-root-server-einrichten?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mail-versand-per-smtp-auf-1un1-linux-root-server-einrichten</link>
		<comments>http://kau-boys.de/466/webserver/mail-versand-per-smtp-auf-1un1-linux-root-server-einrichten#comments</comments>
		<pubDate>Thu, 05 Nov 2009 13:17:58 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=466</guid>
		<description><![CDATA[Ich bin auf einen neues Problem mit dem Standard-Setup der 1&#038;1 Linux Root Server getoßen. Vor dem Umzug auf den Root Server wurde ein 1&#038;1 Managed Homepage Server genutzt. Dieser hat keinen eigenen Mailserver installiert. Der Root Server hingegen verschickt die Mails direkt an den Empfänger und nicht wie der Managed Server über den 1&#038;1 [...]]]></description>
			<content:encoded><![CDATA[<p>Ich bin auf einen neues Problem mit dem Standard-Setup der 1&#038;1 Linux Root Server getoßen. Vor dem Umzug auf den Root Server wurde ein 1&#038;1 Managed Homepage Server genutzt. Dieser hat keinen eigenen Mailserver installiert. Der Root Server hingegen verschickt die Mails direkt an den Empfänger und nicht wie der Managed Server über den 1&#038;1 SMTP Server. Doch wieso ist das ein Problem?</p>
<p>Nun, durch das zunehmende Problem von SPAM werden bei den meisten Mailanbeitern alle Mails von Severn abgelehnt, die nicht als vertrauerswürdiger Mailserver in einer Whitelist eingetragen sind. Der eigene Root-Server ist in diesen Listen allerdings fast nie gelistet. Beim Versuch eine Mail an einen Freemailer wie z.B. GMX zu senden resultiert dann in einer Ablehnung seitens GMX. Diese sehen in der Regel wie folgt aus:</p>
<p><span id="more-466"></span></p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
Hi. This is the qmail-send program at sXXXXXXXX.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

&lt;user@gmx.de&gt;:
XXX.XXX.XX.XXX does not like recipient.
Remote host said: 550-5.7.1 {mx087} Sorry, your helo has been denied.
550 5.7.1 ( http://portal.gmx.net/serverrules ) Giving up on XXX.XXX.XX.XXX.
</pre>
<p>Die Lösung des Problems ist die Versendung der Mail über den SMTP-Server von 1&#038;1. Hierbei gibt es allerdings ein kleines Problem. Damit der 1&#038;1 Mailserver nicht als SPAM-Verteiler missbraucht werden kann, muss sich das sendende Skript an diesem Server authentifizieren. Dazu ist eine beliebiege E-Mail Adresse eures Servers notwendig. Ich würde euch empfehlen dazu eine spezielle Adresse wie z.B. &#8220;websitesend@example.com&#8221; anzulegen.</p>
<p>Das wäre soweit auch kein Problem, allerdings unterstützen einigen Skriptsprachen nicht von Hause aus die SMTP-Authentifizierung an einem Server. Auch PHP bietet leider keinerlei Einstellungen für die Authentifizierung. Lediglich der Mailserver kann angegeben werden, über den die Mail versendet werden soll. Die <a href="http://de.php.net/manual/de/function.mail.php">mail()</a> Funktion von 1&#038;1 könnt ihr also nicht verwenden. </p>
<p>Abhilfe schafft hier eine Mail-Klasse, die auch eine SMTP-Authentifizierung anbieten. Ich nutze schon seit längerem in allen Projekte die PHP-Klasse <a href="http://phpmailer.worxware.com/">PHPMailer</a>. Diese bietet auch eine SMTP-Authentifizierung. Einfache Beispiele zur <a href="http://phpmailer.worxware.com/index.php?pg=examplebsmtpna">Verwendung der SMTP-Authentifizierung mit PHPMailer</a> findest ihr auch auf der Website von PHPMailer. Ein Beispiel für den Versand einer Mail über den SMTP von 1&#038;1 könnte wie folgt aussehen:</p>
<pre class="brush: php; title: ; notranslate">
require_once('class.phpmailer.php');
$mail = new PHPMailer();
$mail-&gt;CharSet = 'utf-8';
$mail-&gt;IsSMTP();
$mail-&gt;SMTPAuth = true;
$mail-&gt;Host = &quot;smtp.1und1.de&quot;;
$mail-&gt;Username = &quot;websitesend@example.com&quot;;
$mail-&gt;Password = &quot;password_for_websitesend&quot;;
$mail-&gt;AddReplyTo('your_mail_address@example.com');
$mail-&gt;Subject = 'Subject of the mail';
$mail-&gt;AltBody = 'Text for users without a HTML mail viewer';
$mail-&gt;MsgHTML('Text for users with a HTML ready mail viewer');
$mail-&gt;AddAddress('user@gmx.de');
if(!$mail-&gt;Send()) {
	echo &quot;Fehler beim Senden der Mail: &quot; . $mail-&gt;ErrorInfo;
} else {
	echo &quot;Mail wurde erfolgreich versandt!&quot;;
}
</pre>
<p>Zugegebenermaßen sind das sehr vielke Zeilen für den Mailversand einer einzelnen Mail. Aber leider ist es nicht sehr viel kürzen möglich. Damit ihr aber nicht in jedem Skript, in dem ihr eine Mail versenden möchtet, alles von neuem schreiben und bei Änderungen in jedem Skript anpassen müsst, empfiehlt es sich die Zeilen 1.8 in eine PHP-Datei zu exporieren und diese per &#8220;require&#8221; in das Skript zu importieren, in der ihr die Mail verschicken wollt.</p>
<p>Die Verwendung der PHPMailer Klasse bietet aber auch ein paar Vorteile gegenüber der mail() Funktion von PHP. Ihr könnt nämlich sehr einfach weitere Empfänger hinzufügen, indem ihr die &#8220;$mail->AddAddress()&#8221; mehrfach anwendet. Es gibt auch eine Funktion für Kopien: &#8220;$mail->AddCC()&#8221; und blinde Kopien: &#8220;$mail->AddBCC()&#8221; oder auch Anhänge: &#8220;$mail->AddAttachment()&#8221;. Seht euch dazu einfach mal die <a href="http://phpmailer.worxware.com/index.php?pg=methods">Liste der Methoden</a> an.</p>
<p>Ich hoffe, dass euch die kleine Anleitung helfen konnte. Wenn ihr noch Anmerkungen oder Fragen habt, oder auch eine andere gute PHP-Klasse oder eine entsprechende Funktion für andere Skrtipsprachen kennt, würde ich mich über einen Kommentar sehr freuen.</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/466/webserver/mail-versand-per-smtp-auf-1un1-linux-root-server-einrichten/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Plesk Backup-Manager auf 1&amp;1 Linux Root Server einrichten</title>
		<link>http://kau-boys.de/385/webserver/plesk-backup-manager-auf-1und1-linux-root-server-einrichten?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=plesk-backup-manager-auf-1und1-linux-root-server-einrichten</link>
		<comments>http://kau-boys.de/385/webserver/plesk-backup-manager-auf-1und1-linux-root-server-einrichten#comments</comments>
		<pubDate>Wed, 14 Oct 2009 21:50:48 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=385</guid>
		<description><![CDATA[Ich habe bei einem Server den ich betreue ein paar Probleme beim Einrichten des Backup-Managers über das Plesk Panel festgestellt. Daher habe ich hier ein kleines Tutorial zusammengestellt, welches das Einrichten des Backup-Managers auf einem 1&#038;1 Dedicated Server Linux beschreiben soll. Auf anderen Servern wird die Einrichtung bis auf ein parr Punkt aber identisch sein. [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe bei einem Server den ich betreue ein paar Probleme beim Einrichten des Backup-Managers über das Plesk Panel festgestellt. Daher habe ich hier ein kleines Tutorial zusammengestellt, welches das Einrichten des Backup-Managers auf einem 1&#038;1 Dedicated Server Linux beschreiben soll. Auf anderen Servern wird die Einrichtung bis auf ein parr Punkt aber identisch sein.</p>
<p>Der 1&#038;1 Server verwendet Plesk in der Version 9.2. Im ersten Schritt müsst ihr euch im Plesk Panel anmelden anschließend gelangt ihr auf die Startseite wo ihr im Abschnitt Server einen Button für den Backup-Manager finden solltet:</p>
<p><span id="more-385"></span></p>
<p><img src="http://kau-boys.de/wp-content/uploads/2009/10/Backup-Manager.png" alt="Backup-Manager" title="Backup-Manager" /></p>
<p>Nachdem ihr den Backup-Manager aufgerufen habt bekommt ihr eine Auswahl an Tools angeboten. Der Punkt &#8220;Aktualisieren erklärt sich wohl von selbst. Die anderen stelle ich kurz vor.</p>
<p><img src="http://kau-boys.de/wp-content/uploads/2009/10/Backup-Manager-Tools.png" alt="Backup-Manager-Tools" title="Backup-Manager-Tools" /></p>
<p>Mit dem Tool &#8220;Backup erstellen&#8221; könnt ihr ein einmaliges Backup druchführen, das sofort ausgeführt wird. Mit dem unter &#8220;Einstellungen für geplantes Backup&#8221; könnt ihr ein tägliches (bzw. wöchentliches, monatliches) Backup einstellen. Mit dem Punkt &#8220;Dateien ins Server-Repository hochladen&#8221; könnt ihr ein erstelltes Backup wieder auf den Server kopieren um es anschließend eine Wiederherstellung zu starten. Der Punkt der uns zuerst interessiert ist &#8220;Einstellungen für persönliches FTP-Repository&#8221;:</p>
<p><img src="http://kau-boys.de/wp-content/uploads/2009/10/Pers%C3%B6nliches-FTP-Repository.png" alt="Persönliches FTP-Repository" title="Backup Manager Einstellungen für persönliches FTP-Repository" /></p>
<p>Hier tragt ihr die Zugangsdaten für den 1&#038;1 Recovery Server ein. Die Daten dazu findet ihr innerhalb des 1&#038;1 Control-Centers im Bereich &#8220;Server-Verwaltung&#8221; unter dem Punkt &#8220;Server-Backup&#8221;. Ein Zugriff auf diesen Server direkt per FTP von eurem Rechner aus wird aber nicht funktionieren, was euch also nicht verwundern sollte. Innerhalb des Netzwerks von 1&#038;1 funktioniert die Verbindung. Nachdem ihr also alle Daten eingetragen habt und auf &#8220;OK&#8221; geklickt habt, kommt ihr wieder ins Menü des &#8220;Backup-Managers&#8221; zurück. Dort wählt ihr als nächstes &#8220;Einstellungen für geplantes Backup&#8221;:</p>
<p><img src="http://kau-boys.de/wp-content/uploads/2009/10/Einstellungen-für-geplantes-Backup.png" alt="Einstellungen für geplantes Backup" title="Backup Manager Einstellungen für geplantes Backup" /></p>
<p>Wichtig ist bei den Einstellungen die Auswahl &#8220;Persönlichers FTP-Repository&#8221; damit die Daten auch auf dem Backup Server landen und bei einem Ausfall des 1&#038;1 ROOT Servers nicht auch verloren gehen. Wann ihr das Backup starten wollt ist euch überlassen, aber wählt am besten einen Zeitpunkt mit wenigen Zugriffen. Ein Zeitpunkt von 1 Uhr nachts ist z.B. auch nicht gut, wenn ihr viele Besucher aus den USA habt. Wählt in diesem Fall vielleicht eher 6 Uhr, da hier viele Amerikaner schon im Bett liegen und viele Deutsche erst aufstehen. Der Prozess braucht zwar nicht viele Ressourcen, aber ihr habt somit alle Daten eines &#8220;Tages&#8221; im Backup enthalten. Ihr könnt ein Präfix vergeben, falls ihr das wollt. Eine E-Mail-Adresse für Meldungen über fehlgeschlagene Backups solltet ihr in jedem Fall angeben. Zuletzt auf keinen Fall vergessen &#8220;Serverkonfiguration und Inhalt&#8221; auszuwählen, da ansonsten nicht die Dateien eures Servers mitgesichert werden.</p>
<p><strong>UPDATE:</strong> Ihr solltet auch daran denken die Anzahl der Backups auf einen sinnvollen Wert zu begrenzen. Wieso erfahrt ihr in diesem Artikel: <a href="http://kau-boys.de/692/webserver/anzahl-der-backups-im-plesk-backup-manager-begrenzen">Anzahl der Backups im Plesk Backup-Manager begrenzen</a>.</p>
<p>Man könnte meinen, dass jetzt alles glatt läuft. Leider ist dem aber nicht so. Denn standardmäßig werden die Backups im Ordner &#8220;/var/lib/psa/dumps&#8221; zwischengespeichert, der sich auf der Partition &#8220;/dev/sda6&#8243; befindet. Diese Partition ist oft zu klein um ein Backup zu speichern, bevor es dann auf den FTP-Server verschoben wird. Da hier auch die MySQL Tabellen liegen führt es dann dazu, dass die MySQL Datenbank keinen Platz mehr für temporäre Tabellen für Abfragen erstellen kann und den Dienst bei großen Abfragen verweigert. Ihr müsst also den Speicherort verschieben. Am besten verschiebt ihr ihn auf die größte Partition. Welche das ist könnt ihr mit dem Befehl &#8220;df&#8221; rausfinden (die zusätzlichen Parameter dienen nur der Übersichtlichkeit), nachdem ihr euch <a href="http://hilfe-center.1und1.de/hosting/technik/ssh/?article_searchpos=2">per SSH am Server an angemeldet</a> habt:</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
s12345678:~ # df -h -x tmpfs
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.2G  235M  8.5G   3% /
/dev/sda5             9.4G  2.2G  7.3G  23% /usr
/dev/sda6             9.4G  1.9G  7.5G  20% /var
/dev/sda7             436G   21G  416G   5% /srv
</pre>
<p>In diesem Beipiel ist die größte Partition &#8220;/dev/sda7&#8243;, auf welcher der Ordner &#8220;/srv&#8221; gemountet ist. Ihr verschiebt den Ordner dann mit diesen drei Befehlen:</p>
<pre class="brush: plain; title: ; notranslate">
mv /var/lib/psa/dumps /srv/dumps
rm -rf /var/lib/psa/dumps
ln -s /srv/dumps /var/lib/psa/dumps
</pre>
<p>Der erste Befehl verschiebt den Ordner nach &#8220;/srv&#8221; welcher sich in diesem Beipsiel auf der größten Partition befindet, da hier auch die Websites gespeichert sind. Der zweite Befehl löscht den Ordner an seinem ursprünglichen Ort (sollte er dort noch vorhanden sein). Am wichtigsten ist der dritte Befehl. Er erzeugt einen sogenanten &#8220;Symbolic Link&#8221; also einen Link zu dem neuen Verzeichnis. Dadurch ist es nicht notwendig den Speicherpfad in der Konfiguration von Plesk anzupassen, was über das Plesk Panel ohnehin nicht funktioniert.</p>
<p>Nachdem diese Schritte vollzogen sind, müsst ihr nurnoch abwarten, bis der Zeitpunkt des ersten Backups erreicht ist. Ein Backup kann ohne Probleme eine halbe Stunde oder mehr andauern. Ihr könnt auch zu Testzwecken gerne ein Backup manuell über den Punkt &#8220;Backup erstellen&#8221; ausführen und einfach einmal nur die Serverkonfiguration speichern. Wenn das Backup erfolgreich verlaufen ist, solltet ihr es über den Reiter &#8220;Persönliches FTP-Repository&#8221; aufgelistet sehen:</p>
<p><img src="http://kau-boys.de/wp-content/uploads/2009/10/Backup-Manager-erstellte-Backups.png" alt="Backup-Manager erstellte Backups" title="Backup-Manager Übersicht der erstellten Backups" /></p>
<p>Hier könnt ihr auch ein Backup wiederherstellen. Das habe ich aber bisher zum Glück noch nicht machen müssen. Sobald ich es aber mal durchführen musste (hoffentlich nie) gibt es dazu dann auch einen Artikel.</p>
<p>Ich hoffe der Artikel konnte euch weiterhelfen und ihr konntet eine Backup-Routine dadruch einrichten. Es ist aber schade, dass die Server von 1&#038;1 nicht direkt so konfiguriert sind, dass sie die größte Partition für die Backup-Daten nutzt. Wenn euch zusätzlich noch ein Tipp zu dem Thema einfällt oder ihr Fragen oder Anregungen habt, würde ich mich über ein Kommentar sehr freuen.</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/385/webserver/plesk-backup-manager-auf-1und1-linux-root-server-einrichten/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>WordPress auf einem Server mit Plesk installieren</title>
		<link>http://kau-boys.de/277/webserver/wordpress-auf-einem-server-mit-plesk-installieren?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-auf-einem-server-mit-plesk-installieren</link>
		<comments>http://kau-boys.de/277/webserver/wordpress-auf-einem-server-mit-plesk-installieren#comments</comments>
		<pubDate>Sun, 20 Sep 2009 18:28:48 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=277</guid>
		<description><![CDATA[Mein Blog läuft auf einem virtuellen Root Server, der Plesk zur Administration verwendet. Im Zusammenhang mit der Installation hatte ich einige Probleme bezüglich der Zugriffsrechte. Auf der Website von WordPress gibt es zwar eine sehr ausführliche Anleitung zum Ändern der Zugriffrechte, aber sie beantwortet nicht alle Fragen, die man beim Einrichten auf einem System mit [...]]]></description>
			<content:encoded><![CDATA[<p>Mein Blog läuft auf einem virtuellen Root Server, der Plesk zur Administration verwendet. Im Zusammenhang mit der Installation hatte ich einige Probleme bezüglich der Zugriffsrechte. Auf der Website von WordPress gibt es zwar eine sehr ausführliche <a href="http://codex.wordpress.org/Changing_File_Permissions">Anleitung zum Ändern der Zugriffrechte</a>, aber sie beantwortet nicht alle Fragen, die man beim Einrichten auf einem System mit Plesk hat.</p>
<p>Zuerst müsst Ihr entscheiden, wo der Blog installiert werden soll. Entweder direkt auf einer eurer Domains oder auf einer Subdomain. Diese müsst ihr eventuell zuerst über Plesk erzeugen und dort die PHP-Unterstützung aktivieren.</p>
<p><span id="more-277"></span></p>
<p>Jetzt meldet Ihr euch per SSH am Server an, das geht unter Unix Systemen direkt mit der Konsole (dem Terminal) und unter Windows mit Tools wie <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">PuTTY</a>. Dort navigiert Ihr zu dem httpdocs Ordner eurer Domain bzw. Subdomain, in die ihr den Blog installieren möchtet. Für eine Domain example.com könnte der Ordner wie folgt aussehen:</p>
<p><code><br />
cd /var/www/vhosts/example.com/httpdocs<br />
</code></p>
<p>Nicht immer steckt der Plesk vhosts Ordner aber in /var, daher müsst ihr eventuell feststellen, wo er auf eurem Server liegt.</p>
<p>Anschließend müsste Ihr euch die aktuelle Version von WordPress runterladen. Ich tue das hier exemplarisch mit der englischen Version, Ihr könnt aber auch die Deutsche Version runterladen und installieren:</p>
<p><code><br />
wget http://wordpress.org/latest.zip<br />
</code></p>
<p>Nachdem die Zip-Datei runtergeladen wurde, müsst Ihr Sie entpacken.</p>
<p><code><br />
unzip latest.zip<br />
</code></p>
<p>Dabei wird der Inhalt in einen Unterordner &#8220;wordpress&#8221; entpackt. Möchtet Ihr den Blog aber unter einem anderen Ordnernamen aufrufbar machen, könnt Ihr den Ordner &#8220;wordpress&#8221; einfach umbenennen.</p>
<p><code><br />
mv wordpress/ blog<br />
</code></p>
<p>Damit habt Ihr WordPress installiert. Wenn ihr nun example.com/blog aufruft und versucht die Konfigurationsdatei zu erstellen bekommt Ihr allerdings eine Fehlermeldung. Beim entpacken wurden alle Ordner dem Benutzer und dessen Gruppe zugeordnet (z.B. root). Damit Ihr mit dem Plesk Benutzer per FTP Zugriff auf das Verzeichnis bekommen könnt, müsst ihr zuerst alle Order und Dateien dem Plesk Benutzer zuordnen. Dazu wechselt Ihr zuerst in den Ordner und passt dann den Besitzer an:</p>
<p><code><br />
cd blog/<br />
chown dein_plesk_username . -R<br />
</code></p>
<p>Anschließend solltet Ihr noch die Gruppe auf die Standardgruppe von Plesk setzen:</p>
<p><code><br />
chgrp psacln . -R<br />
</code></p>
<p>Aber auch jetzt könnt Ihr die Konfigurationsdatei noch nicht über das WordPress-Setup erzeugen. Damit Ihr die Installation über den WordPress-Setup-Wizzard durchführen könnt, müsst ihr den ROOT Ordner des Blog dem Benutzer zuordnen, der den Apache-Server ausführt. Um festzustellen, welcher Benutzer dies ist, könnt ihr den Befehl &#8220;top&#8221; verwenden.</p>
<p><code><br />
Ausgabe (Auszug): 3113 www-data  18   0 45400  25m 4044 S  0.0  0.5   0:18.57 apache2<br />
</code></p>
<p>Diese Zeile zeigt und, dass der Benutzer www-data den Apache-Server ausführt. Mit STRG+C kehrt Ihr wieder zur Konsole zurück.</p>
<p>Jetzt weisen wir den ROOT Ordner des Blogs dem www-data Benutzer zu (der Punkt am Ende des Befehls gehört dazu):</p>
<p><code><br />
chown www-data .<br />
</code></p>
<p>Nun könnt Ihr den WordPress-Setup-Wizzard durchführen und euch ein erstes Mal am neuen Blog anmelden. Es gibt allerdings noch ein paar andere Ordner, die Ihr anpassen müsst, damit der Blog vollständig über den Adminbereich verwaltet werden kann. Vor Allem die Ordner &#8220;cache&#8221;, &#8220;uploads&#8221;, &#8220;upgrades&#8221; und eventuell die Order &#8220;plugins&#8221; und &#8220;themes&#8221; müssen für den Apache-Benutzer schreibbar sein. Diese befinden sich alle im Ordner &#8220;wp-content&#8221; und können somit gemeinsam schreibar gemacht werden. Damit Ihr auch per FTP auf solche Dateien zugreifen könnt, solltet Ihr dem &#8220;wp-content&#8221; Order daher die Gruppe des Apache-Benutzers zuordnen:</p>
<p><code><br />
chgrp www-data wp-content<br />
</code></p>
<p>Damit die Gruppe auch Dateien dort ablegen darf, müsst Ihr zusätzlich die Zugriffsrechte anpassen:</p>
<p><code><br />
chmod g+w wp-content/ -R<br />
</code></p>
<p>Hiermit sollten alle notwendigen Anpassungen vorgenommen sein. Ihr habt dadruch die Sicherheitseinstellungen bezüglich der Zugriffsrechte von Plesk beibehalten und lediglich einige problematische Ordner auch für die Gruppe des Apache-Benutzers freigegeben. Ihr solltet auf keinen Fall Pauschal allen Ordnern die Schreibberechtigung für die Gruppe setzen oder gar allen Benutzern alle Rechte, wie es manche Plugins gerne hätten.</p>
<p>Die einzige Einschränkung besteht hier beim Installieren oder Aktualisieren von Plugins bzw. Themes und beim Upgrade von WordPress. Da der Benutzer www-data nicht der Besitzer aller Ordner ist, muss bei diesen Vorgängen der FTP-Benutzer und dessen Passwort eingegeben werden. Wenn Ihr allerdings den Benutzer ändert, verliert Ihr den Zugriff auf den Blog per FTP (zumindest den Schreibzugriff). Dies lässt sich leider oft nicht beheben, da der www-data Benutzer nicht per FTP zugreifen darf und Ihr auch vermutlich keine Möglichkeit habt, den Plesk-Benutzer zum ausfüren des Apache-Servers einzustellen.</p>
<p>Solltet Ihr noch ein Problem gefunden haben oder Anmerkungen haben, würde ich mich über einen Kommentar sehr freuen.</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/277/webserver/wordpress-auf-einem-server-mit-plesk-installieren/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

