<?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>zer(o_0)ne &#187; apache</title>
	<atom:link href="http://www.zero0ne.de/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zero0ne.de</link>
	<description>Datenreisender, Cyberpunk, Sysadmin, Console Cowboy ... lebt in der Wired</description>
	<lastBuildDate>Thu, 26 Jan 2012 15:34:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Apache Cache Funktionen</title>
		<link>http://www.zero0ne.de/2011/06/apache-cache-funktionen/</link>
		<comments>http://www.zero0ne.de/2011/06/apache-cache-funktionen/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 13:45:04 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=2205</guid>
		<description><![CDATA[mod_cache Um das Cacheing beim Apache zu aktivieren, muss man zum einen das allgemeine Cacheing Modul „mod_cache“ laden und dann eins für die Cacheing Methode welche man verwenden möchte. Also entweder „mod_disk_cache“ oder „mod_mem_cache“, wobei es auch geht beide zu laden. Es kommt eben immer darauf an wie man Cachen möchte. Entweder nur im RAM, [...]]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: justify;"><strong>mod_cache</strong></h2>
<p style="text-align: justify;">Um das Cacheing beim Apache zu aktivieren, muss man zum einen das allgemeine Cacheing Modul „<strong>mod_cache</strong>“ laden und dann eins für die Cacheing Methode welche man verwenden möchte. Also entweder „<strong>mod_disk_cache</strong>“ oder „<strong>mod_mem_cache</strong>“, wobei es auch geht beide zu laden. Es kommt eben immer darauf an wie man Cachen möchte. Entweder nur im RAM, oder nur auf der Festplatte, oder ein gemisch aus beiden. Eingebunden werden die Module über das Kommando „<strong>LoadModule Modulname Modul</strong>“. Für Cacheing würde das so aussehen:<span id="more-2205"></span></p>
<blockquote><p>LoadModule cache_module modules/mod_cache.so<br />
LoadModule disk_cache_module modules/mod_disk_cache.so<br />
LoadModule mem_cache_module modules/mod_mem_cache.so</p></blockquote>
<p style="text-align: justify;">In dem Zusammenhang ist es auch immer gut noch die Module für HTTP-Header und Expire-Steuerung zu aktivieren. Da auf diese beim Cacheing zurückgeriffen wird. Also zusätzlich dann noch:</p>
<blockquote><p>LoadModule expires_module modules/mod_expires.so<br />
LoadModule headers_module modules/mod_headers.so</p></blockquote>
<p style="text-align: justify;">All dies wird in die httpd.conf (evtl. auch apache2.conf) eingefügt. Nach einem Neustart des Apache sind die Module dann auch verfügbar. Hier nun die Allgemeinen Optionen für „<strong>mod_cache</strong>“:</p>
<p style="text-align: justify;">„<strong>CacheEnable disk /</strong>“ aktiviert das Caching. „<strong>disk</strong>“ besagt hierbei das „<strong>mod_disk_cache</strong>“ benutzt wird und nicht „<strong>mod_mem_cache</strong>“. Das Slash besagt, das alles ab dem Domain-Root gecached werden soll. Also alles z.B. ab http://www.domain.tld/ . Man könnte also auch sagen, wenn man nur Teilbereiche seiner Website cachen will, das nur http://www.domain.tdl/archive/ gecached werden soll. Dies würde man mit „<strong>CacheEnable disk /archive/</strong>“ erreichen. Will man mod_mem_cache ansprechen muss man die Option entsprehende umformulieren: „<strong>CacheEnable mem /sites</strong>“. So wird alles unterhalb von domain.tld/sites/ in durch den Mem- Cache abgedeckt.</p>
<p style="text-align: justify;">„<strong>CacheDisable</strong>“ kann das Caching für angegebene Domain.Pfade deaktivieren. Bsp.: „<strong>CacheDisable /sites/intern</strong>“.</p>
<p style="text-align: justify;">„<strong>CacheDefaultExpire</strong>“ legt die Zeit für ein Dokument ohne Gültigkeitsdauer fest, bevor es verfällt. Also wenn eine Dokumente keinen „<strong>Expires</strong>“-Header hat. Der Standard-Wert liegt bei einer Stunde. Die Zeit wird in Sekunden angegeben.</p>
<p style="text-align: justify;">„<strong>CacheIgnoreCacheControl</strong>“, ist diese Option gesetzt ignoriert Apache den „<strong>CacheControl</strong>“-Header des angeforderten Objektes und legt es trotzdem in den Cache, auch wenn „<strong>CacheControl: no-cache</strong>“ gesetzt ist.</p>
<p style="text-align: justify;">„<strong>CacheIgnoreNoLastMod</strong>“ wird gesetzt wenn man ein Dokument ohne „<strong>Last-Modified</strong>“-Header hat, dies aber trotzdem in den Cache legen möchte. Der „<strong>Last-Modified</strong>“-Wert wird dann auf die aktuelle Zeit + den Wert von „<strong>CacheDefaultExpire</strong>“ gesetzt.</p>
<p style="text-align: justify;">„<strong>CacheLastModifiedFactor</strong>“ legt das Verfallsdatum anhand von LastModified-Headers fest, wenn kein Expires- Header gesetzt ist. Dazu wird die aktuelle Zeit genommen, dann nachgeschaut, wie lange das Dokument schon nicht verändert wurde und dies dann mit dem Faktor multipliziert. Daraus ergibt sich zum Bsp. Bei einer seit 20h nicht mehr veränderten Datei und einen Faktor von „<strong>0,1</strong>“ eine Verfallszeit von zwei Stunden.</p>
<p style="text-align: justify;">„<strong>CacheMaxExpire</strong>“ definiert wie lange ein Dokument ohne Prüfung aus dem Cache ausgeliefert wird. Ist die Zeit abgelaufen, wird es aus dem Cache genommen, selbst wenn der „Expires“-Header etwas anderes besagt.</p>
<h2 style="text-align: justify;"><strong>mod_disk_cache</strong></h2>
<p style="text-align: justify;">Will man nun für einen bestimmten Vhost das Disk-Caching aktivieren (gesamte Domain), muss man in dessen &lt;VirtualHost&gt;-Tag folgendes einfügen:</p>
<blockquote><p>CacheEnable        disk /<br />
CacheRoot            /var/cache/apache2/VHOSTname<br />
CacheSize             307200<br />
CacheDirLevels   3<br />
CacheDirLength	2<br />
CacheMaxFileSize   2097152<br />
CacheMinFileSize    1024</p></blockquote>
<p style="text-align: justify;">„<strong>CacheRoot</strong>“ gibt an, wo auf der Festplatte das Verzeichnis liegt, in welchem Apache seine Cache-Dateien ablegent. Dieses Verzeichnis muss schon existieren, der Webserver wird es nicht selbst anlegen. Deshalb sollte man darauf achten, das auch die richten Zugriffsrechte gesetzt sind. Dieses Kommando gilt nur für „<strong>mod_disk_cache</strong>“.</p>
<p style="text-align: justify;">„<strong>CacheDirLevels</strong>“ legt die Tiefe fest, bis zu welcher Ordner für Cache-Dateien angelegt werden sollen.</p>
<p style="text-align: justify;">„<strong>CacheDirLength</strong>“ legt die Länge der Ordnernamen fest, in welchen die Cache-Dateien gespeichert werden. Die beiden Direktiven dienen zur Verwaltung der Cache-Dateien. So wird die Ordner Hierarchie festgelegt. So kann man die Größe des Cache regulieren und durch schlanke Verzeichnisstrukturen die Zugriffszeiten steigern. Dabei ist noch zu beachten, das CacheDirLevels * CacheDirLength &lt; 20 sein sollte. Sollte dies nicht beachtet werden kommt es zu Instabilitäten oder sogar abstürzen des Apache.</p>
<p style="text-align: justify;">„<strong>CacheMaxFileSize</strong>“ legt die maximale Größe einer Datei fest, welche in den Cache aufgenommen werden soll. Überschreitet eine Datei diese Größe wird sie nicht gecached. Im Bsp. Wird die max. Größe auf 2 MiB festgelegt.</p>
<p style="text-align: justify;">„<strong>CacheMaxFileSize</strong>“ legt entgegen zu CacheMaxFileSize die minimal Größe einer Datei fest, welche in den Cache aufgenommen werden soll. Unterschreiten Dateien diese Größe, werden sie ebenfalls nicht gecached. Im Bsp. Wird die min. Größe auf 100 KiB festgelegt</p>
<p style="text-align: justify;">„<strong>CacheSize</strong>“ legt einfach die Maximale Größe des gesamten Cache fest, der auf der Festplatte gespeichert werden soll. Läuft der Cache über, wird er durch das löschen der ältesten Dateien wieder auf seine maximal erlaubte Größe verkleinert. „<strong>mod_disk_cache</strong>“ hat dazu eine eigene Garbage-Collection-Funktion. Dabei wird auf das externe, aber zu Apache gehörende Tool „<strong>htcacheclean</strong>“ zurückgegriffen. Dieses Tool kann man auch selbst anstoßen oder durch Cronjobs zyklisch laufen lassen.</p>
<h2 style="text-align: justify;"><strong>mod_mem_cache</strong></h2>
<p style="text-align: justify;">Im Gegensatz zu mod_disk_cache, speichert „<strong>mod_mem_cache</strong>“ wie der Name schon sagt, die zu cachenden Inhalte im RAM des Servers. Auch sind hier wieder Angaben pro Vhost möglich. Für „<strong>mod_mem_cache</strong>“ gibt es 6 Optionen, die im Folgenden erläutert werden.</p>
<p style="text-align: justify;">„<strong>MCacheSzie</strong>“ legt die Maximale Größe des Cache im RAM fest. Man sollte sie nicht allzu groß wählen, außer man hat genügend Hauptspeicher. Standardmäßig steht dies Option auf 100 KiB.</p>
<p style="text-align: justify;">„<strong>MCacheMaxObjectCount</strong>“ legt die maximale Anzahl der Objekte im Speicher fest. Wird die Grenze erreicht, werden Objekte anhand der Option „<strong>MCacheRemovalAlgorithm</strong>“ entfernt.</p>
<p style="text-align: justify;">„<strong>MCacheMaxObjectSize</strong>“ legt wie der Name schon sagt, die max. Größe eines Objektes fest. Sie entspricht der Option „<strong>CacheMaxFileSize</strong>“.</p>
<p style="text-align: justify;">„<strong>MCacheMinObjectSize</strong>“ ist das Gegenteil der vorherigen Option und legt die minimale Größe eines Dokuments fest, welches im Speicher abgelegt werden darf. Es ist das Äquivalent zu „<strong>CacheMinFileSize</strong>“</p>
<p style="text-align: justify;">„<strong>MCacheMaxStreamingBuffer</strong>“ legt den max. Buffer für Streaming-Antworten fest. Bei Streaming-Objekten ist die Gesamtgröße vorher nicht bekannt. Daher kann die Prüfung von „<strong>MCacheMaxObjectSize</strong>“ nicht stattfinden. Daher wird soviel wie „<strong>MCacheMaxStreamingBuffer</strong>“ festlegt, gepuffert und daran dann entschieden ob das Objekt zu groß ist für den Cache oder nicht. Wird diese Option nicht gesetzt, wird der Wert von	<strong>MCacheSzie</strong>“ genommen. Aber dann nur ungefähr 98% davon.</p>
<p style="text-align: justify;">„<strong>McacheRemovalAlgorithm</strong>“ bestimmt nach welchen Verfahren die Objekte aus dem Speicher entfernt werden. Dabei gibt es zwei Optionen. Einmal <em>LRU </em>und zum anderen <em>GDSF</em>. <em>LRU </em>beduetet hierbei <em>Last Recently Used</em>. Wie der Name schon vermuten lässt, werden so dann die am längsten nicht benutzen Objekte aus dem Cache entfernt. Bei GDSF, was <em>Greedy-Dual-Size-Frequency </em>heißt, werden die Objekte priorisiert. Die Priorisierung wird daran festgelegt wie Aufwändig eine Neu-Anfrage wäre und wie groß das Objekt ist. Objekte mit niedriger Priorität werden dann aus dem Cache entfernt.</p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2011/06/apache-cache-funktionen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MAMP &#8211; XAMPP für den Mac</title>
		<link>http://www.zero0ne.de/2009/11/mamp-xampp-fuer-den-mac/</link>
		<comments>http://www.zero0ne.de/2009/11/mamp-xampp-fuer-den-mac/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 15:42:01 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[mamp]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php4]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=1157</guid>
		<description><![CDATA[Immer wieder gut wenn man PHP/MYSQL oder auch Java Sachen auf seinen Mac entwickeln will und dazu einen einfachen weg sucht sich nen Apache- und MySQL-Server zu installieren. MAMP macht das in der gewohnt einfachen Art von XAMPP. Man lädt sich einfach das Package  von der MAMP Seite herunter ( Link ). In gewohnt einfacher [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Immer wieder gut wenn man PHP/MYSQL oder auch Java Sachen auf seinen Mac entwickeln will und dazu einen einfachen weg sucht sich nen Apache- und MySQL-Server zu installieren. MAMP macht das in der gewohnt einfachen Art von XAMPP. Man lädt sich einfach das Package  von der MAMP Seite herunter ( <a title="MAMP" href="http://www.mamp.info/" target="_blank">Link</a> ). In gewohnt einfacher art lässt es sich einfach durch ziehen in den Programme-Ordner installieren. Zu beachten sie, das man das normal MAMP nimmt und nicht die Pro-Version. Dies ist nur gegen Geld zu verwendet, hat aber anfangs eine zwei wöchige Trial. Und eigentlich reicht auch die normale Version. Die Pro bringt nur kleine unwesentlich Gimmicks mit sich, wie DynDNS integration oder einen Config-Editor. Für den Durchschnittsentwickler also kaum interessant.<span id="more-1157"></span></p>
<p><a href="http://www.zero0ne.de/wordpress/wp-content/uploads/mampinstall.png"><img class="aligncenter size-thumbnail wp-image-1158" title="mampinstall" src="http://www.zero0ne.de/wordpress/wp-content/uploads/mampinstall-150x150.png" alt="mampinstall" width="150" height="150" /></a></p>
<p style="text-align: center;">Installationsdialog von MAMP</p>
<p style="text-align: justify;">Nachdem man es nun installiert hat kann man es einfach starten. Danach fragt es sofort, auch wenn man die normale Version genommen hat, ob man nicht die Pro-Version nehmen mag. Dies verneint man dann und kommt ins normal kleine Interface von MAMP. Gleichzeitig öffnet sich auch noch ein Browser-Fenster in dem die &#8220;Weboberfläche&#8221; von MAMP öffnet. Hier hat man einmal die PHPInfo-Informationen und einen phpMyAdmin, sowie einige allgemeine Informationen.</p>
<p style="text-align: center;"><a style="text-decoration: none;" href="http://www.zero0ne.de/wordpress/wp-content/uploads/mampinterface.png"><img class="aligncenter size-thumbnail wp-image-1159" title="mampinterface" src="http://www.zero0ne.de/wordpress/wp-content/uploads/mampinterface-150x150.png" alt="mampinterface" width="150" height="150" /></a></p>
<p style="text-align: center;">MAMP Interface</p>
<p style="text-align: justify;">Hier in dem Interface kann man nun die Server starten und beenden. Einige wenige Grundeinstellungen können noch unter &#8220;Einstellungen&#8230;&#8221; getroffen werden. Wie z.B. ob die Server beim starten sofort gestartet werden sollen und ob beim starten gefragt werden soll, ob man nicht doch die Pro-Version haben mag. Weiterhin können die Ports, auf welchen die Server laufen sollen, eingestellt werden. Sowie kann man die PHP-Version einstellen und definieren wo das Documentroot des Apache sein soll.</p>
<p style="text-align: left;"><a style="text-decoration: none;" href="http://www.zero0ne.de/wordpress/wp-content/uploads/mampoptionen.png"><img class="aligncenter size-medium wp-image-1160" title="mampoptionen" src="http://www.zero0ne.de/wordpress/wp-content/uploads/mampoptionen-300x214.png" alt="mampoptionen" width="300" height="214" /></a></p>
<p style="text-align: center;">Optionen von MAMP</p>
<p style="text-align: justify;">Und wenn die Server dann von allein starten und durch manuelles klicken auf &#8220;Server starten&#8221; ist man auch schon fertig. Unter &#8220;localhost:8888&#8243; ist der Apache zu erreichen und über &#8220;localhost:8889&#8243; der MySQL-Server. Hat man die aufgegangen Weboberfläche von MAMP geschlossen kann man diese durch klicken auf &#8220;Startseite öffnen&#8221; wieder holen.</p>
<p style="text-align: left;">So, das wärs dann also&#8230;.</p>
<p style="text-align: left;">Hier noch eine Auflistung des kompletten inhalts von MAMP:</p>
<p style="text-align: left;">&nbsp;</p>
<li style="padding-left: 60px;">Apache 2.0.63</li>
<li style="padding-left: 60px;">MySQL 5.1.37</li>
<li style="padding-left: 60px;">PHP 4.4.9 &amp; 5.2.10</li>
<li style="padding-left: 60px;">APC 3.0.19 &amp; APC 3.1.2</li>
<li style="padding-left: 60px;">eAccelerator 0.9.5.3</li>
<li style="padding-left: 60px;">XCache 1.2.2</li>
<li style="padding-left: 60px;">phpMyAdmin 2.11.9.5 &amp; phpMyAdmin 3.2.0.1</li>
<li style="padding-left: 60px;">Zend Optimizer 3.3.3</li>
<li style="padding-left: 60px;">SQLiteManager 1.2.0</li>
<li style="padding-left: 60px;">Freetype 2.3.9</li>
<li style="padding-left: 60px;">t1lib 5.1.2</li>
<li style="padding-left: 60px;">curl 7.19.5</li>
<li style="padding-left: 60px;">jpeg 7</li>
<li style="padding-left: 60px;">libpng-1.2.38</li>
<li style="padding-left: 60px;">gd 2.0.34</li>
<li style="padding-left: 60px;">libxml 2.7.3</li>
<li style="padding-left: 60px;">libxslt 1.1.24</li>
<li style="padding-left: 60px;">gettext 0.17</li>
<li style="padding-left: 60px;">libidn 1.15</li>
<li style="padding-left: 60px;">iconv 1.13</li>
<li style="padding-left: 60px;">mcrypt 2.5.8</li>
<li style="padding-left: 60px;">YAZ 3.0.47 &amp; PHP/YAZ 1.0.14</li>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/11/mamp-xampp-fuer-den-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_fcgid für Apache 2.2</title>
		<link>http://www.zero0ne.de/2009/09/fcgid-apache2/</link>
		<comments>http://www.zero0ne.de/2009/09/fcgid-apache2/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 10:01:39 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Stuff]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[fastCGI]]></category>
		<category><![CDATA[fcgi]]></category>
		<category><![CDATA[fcgid]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mod_fastcgi]]></category>
		<category><![CDATA[mod_fcgid]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-cgi]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[php5-cgi]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=999</guid>
		<description><![CDATA[Vorbereitungen: Ich gehe hierbei davon aus, das PHP5 und Apache bereits installiert sind und schon funktionieren. Wichtig ist noch das bei PHP5 das CGI wie das CLI Modul mit installiert sind. Sonst klappt das ganze nicht. Sind sie das noch nciht installieren wir diese mit apt-get nach: apt-get install php5-cgi php5-cli fcgid installieren: fcgid lässt [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><strong>Vorbereitungen:</strong><br />
Ich gehe hierbei davon aus, das PHP5 und Apache bereits installiert sind und schon funktionieren. Wichtig ist noch das bei PHP5 das CGI wie das CLI Modul mit installiert sind. Sonst klappt das ganze nicht. Sind sie das noch nciht installieren wir diese mit apt-get nach:<span id="more-999"></span></p>
<p><code>apt-get install php5-cgi php5-cli</code></p>
<p><strong>fcgid installieren:</strong><br />
fcgid lässt sich relativ leicht durch das repository installieren. Dazu reicht ein einfaches apt-get aus.</p>
<p><code>apt-get install libapache2-mod-fcgid</code></p>
<p style="text-align: justify;">Nach dem sollte es nun noch konfiguriert werden. Dazu nehmen wir aus der Apache2 Konfiguration erstmal das bisherige PHP5-Modul raus. Dazu entfernen wir einfach die LoadModul Aufforderung in der apache2.conf/httpd.conf oder wie bei Debian/Ubuntu-Systemen, dort löschen wir einfach die php5.conf und php5.load aus dem Verzeichnis &#8220;/etc/apache2/modules-enabled/&#8221;. Da es sich dabei nur um Symlinks handelt bleiben die eigentlichen Dateien also für den Notfall oder ein Rollback erhalten.</p>
<p>Nachdem wir nun das alte php5-Modul entfernt haben binden wir das neue ein. Dies tun wir durch die Direktive</p>
<p><code>LoadModule fcgid_module /usr/lib/apache2/modules/mod_fcgid.so</code></p>
<p style="text-align: justify;">Das Modul muss natürlich an dieser Stelle auch liegen! Nutzen wir Ubuntu oder Debian wurde die Konfiguration schon nach &#8220;modules-enabled&#8221; geschrieben. So sollte das Modul schon einmal geladen werden. Jetzt muss es natürlich noch konfiguriert werden. Allgemein kann man wieder in der httpd.conf/apache2.conf folgenden Block einfügen oder diesen unter &#8220;modules-enabled/fcgid.conf&#8221; bearbeiten:</p>
<p><code>&lt; IfModule mod_fcgid.c &gt;<br />
AddHandler fcgid-script .fcgi<br />
SocketPath /var/lib/apache2/fcgid/sock<br />
IdleTimeout 600<br />
IdleScanInterval 200<br />
BusyTimeout 300<br />
BusyScanInterval 120<br />
ErrorScanInterval 6<br />
ZombieScanInterval 3<br />
ProcessLifeTime 1200<br />
# SpawnScoreUpLimit 10<br />
# SpawnScore 1<br />
# TerminationScore 2<br />
MaxProcessCount 250<br />
DefaultMaxClassProcessCount 10<br />
DefaultMinClassProcessCount 0<br />
IPCConnectTimeout 20<br />
IPCCommTimeout 200<br />
MaxRequestsPerProcess 500<br />
&lt; /IfModule &gt;</code></p>
<p style="text-align: justify;">Damit ist das fcgid-Modul schon mal grundsätzlich einsatz bereit. Fehlen nur noch 2 kleine Sniplets und wir sind fertig! Nach den Apache-Konfigurations-Anpassungen muss nun noch ein Wrapper-Skript her um die PHP-Prozesse zu steuern. Dies legen wir uns an einen beliebigen Ort, aber dort wo der Apache2 es auch lesen kann und machen es ausführbar. Ich habe meins z.B. dort abgelegt: &#8220;/etc/php5/php-procs.sh&#8221;. Der Inhalt des Skripts ist wie folgt:</p>
<p><code>#!/bin/sh<br />
PHP_FCGI_CHILDREN=5<br />
PHP_FCGI_MAX_REQUESTS=100<br />
export PHP_FCGI_CHILDREN<br />
export PHP_FCGI_MAX_REQUESTS<br />
exec /usr/lib/cgi-bin/php5 "$@"<br />
</code></p>
<p style="text-align: justify;">Zu beachten sei noch der Pfad zum php5-cgi Binary. Dieser sollte noch überprüft werden, da das Ding ja auch mal woanders installiert sein kann oder einen anderen Namen haben kann. Die Anzahl der Kinder kann man je nach Last auf dem System noch hoch oder runter stellen. Genauso wie die Maximalen Requests pro Kind, bevor dieses zerstört wird. Haben wir das alles nun getan, fehlt uns nur noch ein Eintrag im jeweiligen VHost, welcher mit PHP arbeiten soll. Dazu fügen wir in diesen zwei Directory-Kontainer ein oder bearbeiten Vorhandene dementsprechend.</p>
<p><code>&lt; Directory / &gt;<br />
Options +FollowSymLinks<br />
AllowOverride all<br />
&lt; /Directory &gt;<br />
&lt; Directory /var/customers/webs/Zombie/ &gt;<br />
AddHandler fcgid-script .php<br />
FCGIWrapper /etc/php5/php-procs.sh .php<br />
Options Indexes +FollowSymLinks MultiViews ExecCGI<br />
AllowOverride None<br />
Order allow,deny<br />
allow from all<br />
&lt; /Directory &gt;</code></p>
<p style="text-align: justify;">FollowSymlinks ist für Anwendungen außerhalb des Webroots gedacht. Das nutz ich meist um phpMyAdmin in verschiedenen Domains zu nutzen, ohne es X-Mal installieren zu müssen. Ist dies dann auch getan, sind wir fertig und geben noch ein finales</p>
<p><code>/etc/init.d/apache2 reload</code></p>
<p style="text-align: justify;">ein. Damit werden all unsere Änderungen aktiv und wir können gucken ob sie auch funktionieren. Das sollten sie eigentlich auch ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/09/fcgid-apache2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP auf Gentoo</title>
		<link>http://www.zero0ne.de/2009/01/php-auf-gentoo/</link>
		<comments>http://www.zero0ne.de/2009/01/php-auf-gentoo/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 01:33:58 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache liefert kein php]]></category>
		<category><![CDATA[apache2.conf]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[Gentoo Linux]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[http.conf]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[httpd.conf]]></category>
		<category><![CDATA[IfDefine]]></category>
		<category><![CDATA[kein php]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=237</guid>
		<description><![CDATA[puhh, dachte eben ich hab mir meine gesamte apache config zerschossen, weil ich für ein wordpress plugin php neu compilierte. das ging auch alles gut, bis auf das ich meine apache-config dann hab automatisch verändern lassen. sah eigentlich alles auch ganz normal aus. blos der apache jagte php code nicht mehr durch den interpreter. alles [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">puhh, dachte eben ich hab mir meine gesamte apache config zerschossen, weil ich für ein wordpress plugin php neu compilierte. das ging auch alles gut, bis auf das ich meine apache-config dann hab automatisch verändern lassen. sah eigentlich alles auch ganz normal aus. blos der apache jagte php code nicht mehr durch den interpreter. alles durch gesehen und überprüft und getestet. aber nichts ging. also dann die config stück für stück auseinander genommen. am ende war es dann das, das es ein IfDefine zuviel war, der apache das ganze zwar angenommen hatte, aber nicht wirklich mit den direktiven umgehen konnte. alles sah normal aus, aber ging ebend nicht. dann hab ich die gesamte php config, aus ihrerer module.conf rausgenommen und alles einzeln nacheinander ohne IfDefine in die main config httpd.conf reingetan und was soll ich sagen? jetzt ging alles wie von zauberhand wieder&#8230;. scheiss scripte XD</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2009/01/php-auf-gentoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die Nacht der lebenden Server &#8230;</title>
		<link>http://www.zero0ne.de/2008/12/die-nacht-der-lebenden-server/</link>
		<comments>http://www.zero0ne.de/2008/12/die-nacht-der-lebenden-server/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 19:05:12 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[amavis]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[awstats]]></category>
		<category><![CDATA[cacti]]></category>
		<category><![CDATA[clamav]]></category>
		<category><![CDATA[courier]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[openfire]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[pop3]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=198</guid>
		<description><![CDATA[So gestern dann mal wieder an mein Projekt eines selbkompilierten Servers. Naja, nur Apache, PHP, MySQL sind wirklich selbstkompiliert. Dann kommt noch eine angepasste Version von Postfox dazu. Dann noch ein wenig IMAP und POP3, sowie ein Virenfilter dazu und fertig. Das ganze läuft im Rahmen einer Serveraktualisierung von <a title="www.dunkel-volk.de" href="http://www.dunkel-volk.de" target="_self">www.dunkel-volk.de</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">So gestern dann mal wieder an mein Projekt eines selbkompilierten Servers. Naja, nur Apache, PHP, MySQL sind wirklich selbstkompiliert. Dann kommt noch eine angepasste Version von Postfox dazu. Dann noch ein wenig IMAP und POP3, sowie ein Virenfilter dazu und fertig. Das ganze läuft im Rahmen einer Serveraktualisierung von <a title="www.dunkel-volk.de" href="http://www.dunkel-volk.de" target="_blank">www.dunkel-volk.de</a>.<br />
<span id="more-198"></span><br />
Das ganze bereite eine Freund und ich nun schon ein paar Monate vor. Irgendwie fehlte wohl immer so richtig die Zeit. Es ist ja nicht so das wir das ganze von Hand installieren, so nach und nach. Nein, es soll alles gescripted ablaufen. So das wir so gut wie nichts mehr machen müssen. Also haben wir uns da eine kleine Scriptsammlung zusammen geschrieben und anhand einiger Tutorials, welche auf  binär-Paketen setzen, die Lücken aufgefüllt.<br />
Angefangen haben wir mit einen frisch installierten Debian 4.0. Dann noch so die Grundlagen wie SSH und MC oder mal hier und da die ein oder andere Bibliothek und den ganzen Kram zum Kompilieren noch. Gefolgt davon dann die Quellen von Apache, MySQL und PHP. Diese konnten wir jetzt speziell an unsere Bedürfnisse anpassen und so auch die aktuellsten Versionen nehmen. Wo das dann alles fertig war, dachten wir uns, nen eigener Mail server sei ja auch nicht schlecht. Der jetzige den wir haben ist nicht wirklich kontrollierbar und es gibt massig SPAM. Also wollten wir das besser machen ;-) Da ich mir zuvor schon für mich und die Arbeit ein Postfix-Buch gekauft habe, war das ja perfekt zum üben und Erfahrungen sammeln. Also haben wir dann zu den drei bestehenden Server-Programmen noch Postfix, Courier, Spammassin, Amavis/Clamav hinzugefügt. Diese haben wir aller dings aus dem repository von Debian genommen. Ausser Postfix, dies haben wir zwar auch aus dem Repository genommen, dann aber mit der Source-Version überspielt, welche vorher gepatcht wurde. Das ist es dann also, ist ja nicht all zu viel denkt man. Da kann man sich aber gewaltig irren, weil es noch sehr sehr viele kleine ecken und kanten gab, an welchen man etwas nachbessern musste, oder wo etwas nicht so klappte wie man sich das eigentlich dachte.</p>
<p style="text-align: justify;">Gestern haben wir uns dann mal einen VServer erstellt, also ne VM die ich bereit stellte und darauf eine Domain geschalten. Dann alles nach und nach installiert. Eigentlich sollten wir ja nicht soviel eingreifen müssen, da wir ja viele scripte vorbereitet hatten. Dies war aber ein Irrtum. Das meiste lief ganz gut durch, also Apache, MySQL und PHP. Postfix ging auch ganz gut durch. Doch dann die Konfiguration davon. Da gab es dann doch das ein oder andere Problem, was isch dann aber auch lösen lies. Meist waren es kleine Fehler mit grossen Auswirkungen wie eben falsche Dateiberechtigungen oder Datenbankberechtigungen. Eines der Grösseren Probleme war, das die ClamAV Version von Debian wohl einen Tick hat und in der Konfiguration, so wie ich sie hier hatte, nicht richtig funktionierte. Nach ein wenig Recherche im Netz fand ich dann aber einen passenden Workaround.<br />
So gegen 23 Uhr war dann alles soweit erstmal bereit das es lief. Also ein Webserver mit PHP und MySQL support, MySQL an sich und eine Mailserverkonstrukt, was Emails empfangen und verenden kann. Wir hatten um 12:00 Uhr Mittags angefangen. Naja, mal ne grössere Pause zum einkaufen und noch eine weitere zum essen. Was jetzt dann noch fehlte waren so Kleinigkeiten wie die Richtige Verschlüsselung der Mails und Statistik tools wie AwStats und Cacti. Auch sollte noch ein Jabber-Server hinzukommen. Dies haben wir dann noch bis 4 Uhr morgens implementiert. Als Jabber Server hatten wir uns dann für OpenFire entschieden, aufgrund der GUI. Is ja für Mausschubser, aber falls eben mal kein Admin zu Hand ist, das die auch mal ein wenig was regeln können. Dann noch als Test für den Webserver und PHP sowie MySQL noch eben ein kleines WordPress aufgesetzt um zu sehen  ob das läuft.</p>
<p>Ich werde dann mal Demnächst die Final Version der Script-Sammlung hier noch veröffentlichen.</p>
<p>hier dann noch ein paar quellen:</p>
<p><a href="http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu8.10" target="_blank">HowtoForge Tutorial für einen Mail Server</a></p>
<p><a href="http://workaround.org/articles/ispmail-etch/" target="_blank">Workaround Tutorial für einen Mail Server</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2008/12/die-nacht-der-lebenden-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Updates&#8230;</title>
		<link>http://www.zero0ne.de/2008/11/updates/</link>
		<comments>http://www.zero0ne.de/2008/11/updates/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 14:02:09 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Neuigkeiten]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[bilder]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[schreiben]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[scripten]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[updates]]></category>

		<guid isPermaLink="false">http://www.zero0ne.de/?p=167</guid>
		<description><![CDATA[So, hab einige kleine Änderungen an der Seite vorgenommen&#8230; Hab unter &#8220;about me&#8221; zwei Bilder aktualisiert und unter Hardware endlich mal mein MacBook ein gepflegt. Weiterhin gab&#8217;s dann noch ein kleines Design-Update und ein paar neue Artikel auch gleich noch.  Vllt schaff ich es ja wieder mal öfter was zu schreiben, auf Arbeit sammeln sich [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">So, hab einige kleine Änderungen an der Seite vorgenommen&#8230; Hab unter &#8220;about me&#8221; zwei Bilder aktualisiert und unter Hardware endlich mal mein MacBook ein gepflegt. Weiterhin gab&#8217;s dann noch ein kleines Design-Update und ein paar neue Artikel auch gleich noch. <br />
Vllt schaff ich es ja wieder mal öfter was zu schreiben, auf Arbeit sammeln sich jedenfalls immer genug Themen an. Doch komm ich irgendwie nie dazu darüber zu schreiben, mag es Zeitmangel oder pure Faulheit sein.<br />
Ein Thema wäre auch mal, mein seit langen geführtes Projekt Apache+MySQL+PHP+Postfix aus den Quellen zu kompilieren. Das ganze dann automatisiert per Script auf Debianbasis.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2008/11/updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>compiling the weekend&#8230;</title>
		<link>http://www.zero0ne.de/2008/05/compiling-the-weekend/</link>
		<comments>http://www.zero0ne.de/2008/05/compiling-the-weekend/#comments</comments>
		<pubDate>Sun, 25 May 2008 21:26:45 +0000</pubDate>
		<dc:creator>zer(o_0)ne</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[compiling]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[kompilieren]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://www.alex23.de/wordpress/?p=118</guid>
		<description><![CDATA[von freitag abend bis samstag abend hab ich mich mit einen freund zusammen durch apache, mysql und php, sowie perl gekämpft. Erst haben wir uns apache vorgenommen. Geguckt wie wir das am besten kompilieren können. also welche optionen es alles gibt. Dann geguckt wies durch läuft und alles protokolliert. Danach war mysql dran, auch wieder [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">von freitag abend bis samstag abend hab ich mich mit einen freund zusammen durch apache, mysql und php, sowie perl gekämpft. Erst haben wir uns apache vorgenommen. Geguckt wie wir das am besten kompilieren können. also welche optionen es alles gibt. Dann geguckt wies durch läuft und alles protokolliert. Danach war mysql dran, auch wieder nach geschaut, welche optionen am sinnvollsten wären und wie es beim kompilieren durch läuft. alles protokolliert. Dann kam php und perl. Das selbe. kompilieren und alles protokollieren. Anschliessend haben wir alles zusammen in ein script gepackt und noch verschiedenen anpassungen vorgenommen. Am schluss hatten wir ein script was uns am stück alles runterläd, auspackt, konfiguriert, kompiliert und installiert. Jetzt überdenken wir noch mal die konfiguration und suchen nach verbesserungen&#8230; wir bauen uns unser eigenes lamp/xampp &#8230; dann unsere eigene distri und danach reissen wir die weltherrschaft an uns&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zero0ne.de/2008/05/compiling-the-weekend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

