<?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>André Bloggt &#187; Apache</title>
	<atom:link href="http://blog.andreflemming.de/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.andreflemming.de</link>
	<description>Ein Pfadfinder im Internet</description>
	<lastBuildDate>Tue, 24 Jan 2012 15:43:10 +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>Piwik automatisch laden</title>
		<link>http://blog.andreflemming.de/2012/01/18/piwik-automatisch-laden/</link>
		<comments>http://blog.andreflemming.de/2012/01/18/piwik-automatisch-laden/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 11:47:02 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[mod_include]]></category>
		<category><![CDATA[mod_inject]]></category>
		<category><![CDATA[mod_layout]]></category>
		<category><![CDATA[mod_substitute]]></category>
		<category><![CDATA[Piwik]]></category>
		<category><![CDATA[Privat]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Statistik]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.andreflemming.de/?p=801</guid>
		<description><![CDATA[Heute gibts mal wieder was aus der Ecke der nützlichen Sachen. Wie einige von euch vielleicht wissen, habe ich seit einigen Monaten ein VServer. Davor war ich mit all meinen Webseiten bei pytal.de, wo auch jetzt noch einige Seiten von mir liegen. Bei Pytal gab es immer so eine kleine Statistik wo man zumindest sehen [...]]]></description>
			<content:encoded><![CDATA[<p>Heute gibts mal wieder was aus der Ecke der nützlichen Sachen.<br />
Wie einige von euch vielleicht wissen, habe ich seit einigen Monaten ein VServer. <img src='http://blog.andreflemming.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Davor war ich mit all meinen Webseiten bei <a href="http://pytal.de">pytal.de</a>, wo auch jetzt noch einige Seiten von mir liegen.</p>
<p>Bei Pytal gab es immer so eine kleine Statistik wo man zumindest sehen konnte, wie viele User auf der Seite waren, daher hatte ich mir nie wirklich Gedanken gemacht eine eigene Statistik auftzustellen. Für mich ist sowas eigentlich auch gar nicht wichtig, ich möchte im Prinzip nur ab und an mal sehen, wie viele Leute denn auf der Webseite waren.<br />
Naja jetzt mit einem eigenen Server gibt es diese Statistik von Pytal natürlich nicht mehr, also musste was eigenes her.</p>
<p>Piwik &#8230;. schon viel von gelesen, aber noch nie ausprobiert.</p>
<p>Die Benutzung ist ja wirklich leicht, einfach den Tracking-Code, der von Piwik generiert wird, auf die Webseite packen und gut ist.</p>
<p>Aber bei jeder Webseite die neu auf den Server kommt immer in den Code eingreifen und evtl. bei einem Update drauf achten, dass der Tracking-Code nicht verloren geht, ist auf die Dauer bestimmt nervig. Was muss also passieren? Richtig, der Code muss Automatisch in die Webseiten eingebettet werden. Aber wie?</p>
<p>Bei Pytal waren die Werbeeinblendungen auf der Webseite auch immer automatisch eingebunden, wie machen die das nur? Ich habe einfach mal eine Email geschrieben und bekam auch direkt eine Antwort, dass es sich dabei um ein selbst geschriebenes Apache Modul handelt.</p>
<p>Ok, das ist ein bisschen zu viel den guten, ich möchte doch einfach nur ein bisschen dynamischen Code ans Ende jeder Webseite einfügen. Eine Idee dafür, lieferte die Email von Pytal direkt mit, ich wurde auf mod_layout hingewiesen.</p>
<p>Bei der Beschaffung dieses Modules traten jedoch einige Probleme auf, da ich die Webseite, wo man das ganze Downloaden sollte, nicht öffnen konnte.</p>
<p>Also suchte ich erst einmal ein bisschen weiter. Nach einigen Minuten hatte ich die Lösung gefunden &#8230; naja das dachte ich zumindest.</p>
<p>auto_append_file in der php.ini war für mich erst einmal die Lösung des Problems. Heute morgen habe ich das ganze dann auf meinem Server getestet, natürlich ohne Erfolg. Das Skript wurde zwar geladen und ausgeführt, allerdings bei jeder PHP-Datei. Diese Aktion zwang dann meinen VServer in die Knie &#8230; und so war meine Webseite nicht erreichbar, bis ich nach 2 Stunden wieder aus der Schule kam.</p>
<p>auto_append_file ist also keine Lösung &#8230; aber was benutze ich dann? Vielleicht noch einmal mod_layout probieren? Doch auch diesmal hatte ich keinen Erfolg, beim Download. Bei der suche nach Alternativen fand ich dann mod_injection. Aber auch hier musste ich feststellen, dass die Seite zum Downloaden offline war.</p>
<p>Was mache ich nun also?</p>
<p>Nach einiger Zeit des googelns, stieß ich auf einen <a href="http://bemasc.net/wordpress/2010/06/24/how-to-not-use-mod_layout/">Blog Artikel</a>, welcher erklärt, wie man mittels mod_substitute und mod_include Code an das Ende der Seite einfügt.</p>
<p>Aufgrund dieses Beispiels habe ich dann folgenden Code in meine httpd.conf eingefügt:</p>
<p><code>&lt;IfModule substitute_module&gt;<br />
&lt;IfModule include_module&gt;<br />
FilterDeclare Sub<br />
FilterProvider Sub SUBSTITUTE resp=Content-Type $text/html<br />
FilterDeclare SSI<br />
FilterProvider SSI INCLUDES resp=Content-Type $text/html<br />
Options +Includes<br />
FilterChain +Sub +SSI<br />
Substitute "s|&lt;/body.*?&gt;|&lt;!--#exec cmd=\"php /srv/http/include_piwik.php\"--&gt;&lt;!--#exec cmd=\"php /srv/http/include_piwik.php\"--&gt;$1|i"<br />
&lt;/IfModule&gt;<br />
&lt;/IfModule&gt;</code></p>
<p>Und siehe da, endlich wurde die include_piwik.php an jede Seite angehängt und der Sever ging dabei nicht in die Knie.</p>
<p>Wie aber stellt man es nun an, dass nicht jede Webseite getrackt wird? Und dazu auch die Webseiten unterschieden werden?</p>
<p>Bei einem kurzen Blick auf den von Piwik erstellten Tracking-Code sieht man, dass dort eine ID gesetzt wird. Also muss man nur die ID der Seite herausfinden &amp; in den Tracking-Code einsetzen. Schon kann man die Webseiten unterscheiden.</p>
<p>Ich habe das ganze wie folgt gelöst:</p>
<p><code><br />
&lt;?php<br />
// +----------------------------------------------------------------------+<br />
// | Copyright (c) 2012 DasLampe &lt;daslampe@lano-crew.org&gt; |<br />
// | Encoding:  UTF-8 |<br />
// +----------------------------------------------------------------------+<br />
$url    = $_SERVER['SERVER_NAME'];<br />
if(substr_count($url, '.') &gt;= 2)<br />
{<br />
$url    = substr($url, strrpos($url, '.', -4)+1);<br />
}<br />
$result    = simplexml_load_file("http://nixmuss-design.de/services/piwik/index.php?module=API&amp;method=SitesManager.getSitesIdFromSiteUrl&amp;url=http://".$url."/&amp;format=XML&amp;token_auth=[AUTH TOKEN]");<br />
if(!empty($result))<br />
{<br />
?&gt;<br />
&lt;!-- Piwik --&gt;<br />
&lt;script type="text/javascript"&gt;<br />
var pkBaseURL = (("https:" == document.location.protocol) ? "https://nixmuss-design.de/services/piwik/" : "http://nixmuss-design.de/services/piwik/");<br />
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));<br />
&lt;/script&gt;&lt;script type="text/javascript"&gt;<br />
try {<br />
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", &lt;?= $result-&gt;row[0]-&gt;idsite; ?&gt;);<br />
piwikTracker.trackPageView();<br />
piwikTracker.enableLinkTracking();<br />
} catch( err ) {}<br />
&lt;/script&gt;&lt;noscript&gt;&lt;p&gt;&lt;img src="http://nixmuss-design.de/services/piwik/piwik.php?idsite=&lt;?= $result-&gt;row[0]-&gt;idsite; ?&gt;" style="border:0" alt="" /&gt;&lt;/p&gt;&lt;/noscript&gt;<br />
&lt;!-- End Piwik Tracking Code --&gt;<br />
&lt;?php<br />
}<br />
else<br />
{<br />
echo $url;<br />
}<br />
?&gt;<br />
&lt;/body&gt;</code></p>
<p>Piwik läuft bei mir also unter der URL meiner Gewerbe Webseite <a href="http://nixmuss-design.de">http://nixmuss-design.de</a>. Die ID jeder Seite finde ich über die Piwik API heraus. Den Zugriff auf diese Daten habe ich einem Benutzer erlaubt, von welchem ich den Token Key übergebe.</p>
<p>Wenn ich die ID habe, dann setze ich diese einfach in den Tracking-Code ein und fertig.</p>
<p>&nbsp;</p>
<p>Eine Besonderheit ist, dass Subdomains als die normale Domains getrackt werden, somit muss ich zum Beispiel blog.andreflemming.de nicht extra in Piwik eintragen, sondern der Zugriff wird unter andreflemming.de gespeichert.</p>
<p>Sollte eine Webseite nicht in Piwik auftauchen, aber trotzdem bei mir auf dem Server liegen, dann wird einfach nur ein &lt;/body&gt; ausgegeben.</p>
<p>&nbsp;</p>
<p>Ich hoffe diese kleine Erklärung, die irgendwie mehr Text als alles andere geworden ist, hilft einigen Leuten, bei der Lösung ähnlicher Probleme.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andreflemming.de/2012/01/18/piwik-automatisch-laden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keine Ausgabe bei PHP Dateien</title>
		<link>http://blog.andreflemming.de/2009/08/14/keine-ausgabe-bei-php-dateien/</link>
		<comments>http://blog.andreflemming.de/2009/08/14/keine-ausgabe-bei-php-dateien/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 15:44:44 +0000</pubDate>
		<dc:creator>André</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Arch]]></category>
		<category><![CDATA[Fail]]></category>
		<category><![CDATA[Fehler]]></category>

		<guid isPermaLink="false">http://blog.andreflemming.de/?p=417</guid>
		<description><![CDATA[Da ich einige Veränderungen an meinem PC vorgenommen hatte, musst auch heute bzw. gestern Apache dran glauben. Also Apache, PHP und MySQL einfach mal runter geschmissen, natürlich mit den Konfigurationsdateien. (Bitte hinterfragt nicht den Sinn dieser Aktion ) Nach dem installieren stand ich erst einmal vor ein paar Problemen, der Apache wollte irgendwie die Dateien [...]]]></description>
			<content:encoded><![CDATA[<p>Da ich einige Veränderungen an meinem PC vorgenommen hatte, musst auch heute bzw. gestern Apache dran glauben.</p>
<p>Also Apache, PHP und MySQL einfach mal runter geschmissen, natürlich mit den Konfigurationsdateien. (Bitte hinterfragt nicht den Sinn dieser Aktion <img src='http://blog.andreflemming.de/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  )</p>
<p>Nach dem installieren stand ich erst einmal vor ein paar Problemen, der Apache wollte irgendwie die Dateien nicht anzeigen und zwar gar keine, außer welche die ich dann erst neu erstellt hatte. Die Lösung hierfür lag in der Gruppenberechtigung, irgendwie war für die anderen Dateien eine Gruppe eingetragen die es gar nicht mehr bzw. noch nie gegeben hat. Nach ca. 20 Minuten hatte dann auch ich dass ganze bemerkt und änderte es natürlich sofort mit dem <code>chgrp</code> Befehl.</p>
<p>Soweit ja kein Problem, allerdings erhielt ich bei den PHP Dateien immer noch keine Ausgabe. Auch nachdem ich 10 mal die <em>httpd.conf</em> Datei überprüft hatte, ob PHP auch wirklich geladen wird. Irgendwann kam ich dann auf die Idee, ich könnte doch auch mal eine PHP Datei neu erstellen, am besten mit dem Inhalt:<br />
<code>&lt;?php<br />
echo phpinfo();<br />
?&gt;</code></p>
<p>Leider bekam ich auch bei dieser Datei erst einmal keine Ausgabe. Das Problem, war jedoch (wie eigentlich jedes) ziemlich simpel und auch schnell gefunden in der <em>php.ini</em> war bei <em>openbase_dir</em> noch nicht mein <em>Document-Root</em> eingetragen.</p>
<p>Diese Datei konnte ich nun schon öffnen &#8230; allerdings gingen die anderen Dateien immer noch nicht. Ich bekam immer noch keine Ausgabe&#8230; noch nicht einmal eine Fehlermeldung. Genau da lag aber das Programm &#8230; ich hatte natürlich versucht Dateien aus existierenden Projekten aufzurufen, die Index Datei in diesen Projekten bindet unglücklicher weiße aber immer eine Datei, welche eine Verbindung zu einer Datenbank mittels <a title="PHP Data Objects" href="http://de.wikipedia.org/wiki/PHP_Data_Objects">PDO</a> aufbauen will ein.</p>
<p>Diese Verbindung konnte allerdings nicht zustande kommen, da die PDO Erweiterung für PHP noch nicht aktiviert wurde. Dadurch wurde das Script abgebrochen und würde eine Fehlermeldung zurück geben, wenn in der <em>php.ini</em> nicht der Wert <em>Off</em> bei <em>display_errors</em> gestanden hätte.</p>
<p>Ein ziemlich blöder Fehler, der mich viel Zeit und nerven gekostet hat. Wer kommt schon auf so etwas? Zum Glück bin ich aber nicht der einzige dem so etwas schon mal passiert ist. <img src='http://blog.andreflemming.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Jetzt ist mein Linux allerdings wieder voll Funktionstüchtig und die Entwicklung von Webseiten kann auch weiter gehen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andreflemming.de/2009/08/14/keine-ausgabe-bei-php-dateien/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

