<?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>GW-Preislisten Blog</title>
	<atom:link href="http://blog.folkeraxmann.de/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.folkeraxmann.de</link>
	<description>von Folker Axmann</description>
	<lastBuildDate>Mon, 09 Aug 2010 17:45:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Aus der Windows Shell heraus über PHP ein pdf an einen Drucker senden</title>
		<link>http://blog.folkeraxmann.de/?p=353</link>
		<comments>http://blog.folkeraxmann.de/?p=353#comments</comments>
		<pubDate>Mon, 09 Aug 2010 17:45:23 +0000</pubDate>
		<dc:creator>Folker</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[mySQL]]></category>
		<category><![CDATA[Ghostscript]]></category>
		<category><![CDATA[html2pdf]]></category>

		<guid isPermaLink="false">http://blog.folkeraxmann.de/?p=353</guid>
		<description><![CDATA[Print PDF from Windows shell with php]]></description>
			<content:encoded><![CDATA[<p>Ich stand vor dem Problem, das eine Webanwendung ein PDF-Dokument erzeugen muss, und diese anschließend das Dokument auch noch an einen Drucker im Netzwerk senden muss.</p>
<p>Lange Zeit haben ich mit der .exe von Adobe Reader rumgebastelt, kam aber nie zu einer sauberen Ausführung. Alles was ich ausprobiert (und per Google) gefunden habe, war mumpitz. Schlußendlich bin ich zu der Lösung gekommen, dies mit Ghost Script zu machen. (Ich gehe davon aus, das GS so auch unter Linux funktionieren wird.)</p>
<p>Das Problem mit der AcroRd32.exe ist zum einen, das beim ausführen des Druckbefehls der Auftrag zwar gedruckt wird, aber anschließend der Reader offen bleibt und der Task nicht beendet wird. Es gibt zwar den Trick, nach einer gewissen Zeit den Task über die Shell zu beenden. Aber auf meinem Server hat dies nicht immer Funktioniert. Oftmals bliebt das komplette Skript hängen. oder es kam kein Ausdruck am Drucker an, oder der Task ließ sich manchmal nicht mal mehr über den Taskmanager beenden.</p>
<p>Die Lösung bei mir ist schließlich so:</p>
<p>Voraussetzung ist die Installation von Ghost Script auf dem Webserver.</p>
<p>Als erstes erzeuge ich per PHP aus einem HTML-Dokument ein PDF. Hierzu nutze ich html2pdf die Klasse (http://html2pdf.fr/) von Laurent Minguet.</p>
<pre class="brush:php">$doc="mein htmlinhalt";
$html2pdf =  new HTML2PDF('P','A4','de',  false,  'UTF-8');
//$html2pdf-&gt;setModeDebug();
$html2pdf-&gt;setDefaultFont('Arial');
$html2pdf-&gt;writeHTML($doc,  false);
$datei="file.pdf";
$html2pdf-&gt;Output($datei,"F");
</pre>
<p>Dieses erzeugte PDF lege ich ein temporäres Verzeichnis auf meinem Server. (Oben im Script ist der Pfad nicht mit angegeben)</p>
<p>Anschließend starte ich im PHP mit shell_exec(); ein kleines Shellscript zum starten von GS mit folgendem Inhalt:</p>
<pre class="brush:bash">rem %1  druckername

rem  %2 dateiname inclusive pfad

echo  printing %2
"C:\Programme\gs\gs8.70\bin\gswin32c.exe" -dBATCH -q  -sDEVICE=mswinpr2 -dNOPAUSE -dNoCancel -sPAPERSIZE=a4 -dPDFFitPage  -sOutputFile=%%printer%%%1 %2</pre>
<p>&#8230; Und siehe da, wieder ein glücklicher Anweder mehr!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folkeraxmann.de/?feed=rss2&amp;p=353</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Win 2k3 Terminalserver mit FreePDF</title>
		<link>http://blog.folkeraxmann.de/?p=349</link>
		<comments>http://blog.folkeraxmann.de/?p=349#comments</comments>
		<pubDate>Thu, 05 Aug 2010 17:42:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[freePDF]]></category>
		<category><![CDATA[Terminalserver]]></category>
		<category><![CDATA[Windows 2003]]></category>

		<guid isPermaLink="false">http://blog.folkeraxmann.de/?p=349</guid>
		<description><![CDATA[FreePDF auf einem Terminalserver Windows 2003 starten.]]></description>
			<content:encoded><![CDATA[<p>Meine User haben ja manchmal komische Wünsche. Da wollen die doch allem Ernst über den Terminalserver ein PDF-Dokument drucken, das als Datei dann abgelegt wird. Unser eins als Admin versucht ja meist, dem Betrieb ein bisschen Geld zu sparen. Deshalb nutzen wir z.B. das schön kleine <a href="http://freepdfxp.de/" target="_blank">freePDF</a>. Aber was tut sich beim Einsatz auf dem Terminalserver? Nix.</p>
<p>Also Google angeschmissen und fleissig gesucht.</p>
<p>Ich habe viele Vorschläge gefunden und versucht. Über die eigene freePDF Doku zu diversen Forenbeiträgen. Einiges war Humbug, anderes halbwegst gut. Schluss endlich habe ich eine einzige Lösung gefunden, die wirklich funktioniert.</p>
<p>Die User auf dem Terminalserver haben keine allzu großen Rechte. Sie bekommen lediglich 2 Programme beim einloggen zu Gesicht, die per TS-Startscript gestartet werden. Kein Desktop, nix.  Fast alles andere ist nicht verfügbar. Somit hat freePDF das Problem, das es nicht funktioniert (Hintergründe sind in den Dokus nachzulesen).</p>
<p>Ein Lösungansatz aus einem Forum war, die fpassist.exe über das Anmeldescript  zu starten, die bei jedem Login aufgerufen wird.<br />
Aber das Problem hierbei ist, das beim Starten die Shell an der Stelle hängen bleibt, und die anderen Anwendungen nicht starten.</p>
<p>Das eigendliche Problem ist, das die standard Redmon-dll nicht sauber mit den Benutzerkonten zusammenarbeitet. Im Gegensatz zu RedMon 1.7 ist RedMonEE in der Lage, einen Prozess  korrekt im aktuellen Benutzerkontext zu starten. In unserem Fall ist das  die fpassist.exe. RedMonEE versucht diese bei jedem Druckauftrag zu  starten. Die fpassist.exe erkennt dabei automatisch, ob sie bereits  gestartet wurde, weswegen der Prozess auch nur ein mal pro User im  Taskmanager erscheint.</p>
<p>Ich habe die Dll entsprechend ausgetauscht, und siehe da -&gt; es läuft und läuft und läuft&#8230;</p>
<p>Zur Intsallation geht man folgendermassen vor:</p>
<ol>
<li>Beende den Druckerspoolerdienst (Druckerwarteschlange)</li>
<li>lösche, oder besser benenne die redmonnd.dll im system32 Verzeichnis um</li>
<li>RedMonEE installieren (einfach setup.exe starten)</li>
<li>In den Porteinstellungen von FreePDF (FREEPDFXP1) unter der Registerkarte RedirektPort folgendes eintragen. Der Parameter <strong>Program to start after</strong> erhält folgenden Eintrag: <strong>C:\Programme\FreePDF_XP\fpassist.exe</strong></li>
<li>Außerdem den Haken bei <strong>Run as User</strong> setzen</li>
<li>speichern nicht vergessen</li>
<li>anschließend den Druckerspoolerdienst wieder starten</li>
</ol>
<p><span style="text-decoration: underline;">Links:</span></p>
<p>Das RedMonEE gibt es hier: <a href="http://www.is-foehr.com/" target="_blank">http://www.is-foehr.com/</a></p>
<p>Den Top-Tipp mit dem &#8220;Austausch&#8221; der Dll habe ich hier gefunden: <a href="http://qvpdf.de/viewtopic.php?t=40" target="_blank">http://qvpdf.de/viewtopic.php?t=40</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folkeraxmann.de/?feed=rss2&amp;p=349</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webseite Grundschule Leese, die 2.</title>
		<link>http://blog.folkeraxmann.de/?p=334</link>
		<comments>http://blog.folkeraxmann.de/?p=334#comments</comments>
		<pubDate>Sun, 21 Mar 2010 09:47:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Grundschule Leese]]></category>

		<guid isPermaLink="false">http://blog.folkeraxmann.de/?p=334</guid>
		<description><![CDATA[Überlegungen zur Seitengestaltung der Grundschule Leese]]></description>
			<content:encoded><![CDATA[<p>Wir sind im Augenblick dabei, zu Überlegen, was denn für eine Grundschule auf einer Webseite sinnvoll ist, und wie die <a href="http://www.grundschule-leese.de" target="_self">Seite</a> in Zukunft aussehen soll. Im Augenblick ist die Seite einfach nur hässlich &#8211; mit so einem unschönen Buch als Layoutgrundlage. Wir habe im Augenblick 2 bereist vorhandene Templates zur Auswahl, die dann entsprechend auf 2 Spalten modifiziert würden.</p>
<p>Zur Auswahl stehe zur Zeit das <a href="http://www.joomlademos.de/home?template=school" target="_self">Template von Eaglehawk Design</a>, sowie ein <a href="http://www.joomlademos.de/home?template=siteground-j15-109" target="_self">Template vonSiteGround web hosting. </a></p>
<p>Mir persönlich gefällt das von Eaglehawk besser, das der Kontrast der Farben besser gewählt ist.</p>
<p>Für das erste haben wir den Terminkalender mittels <a href="http://software.albonico.ch/" target="_self">SimpleCalendar</a> auf Vordermann gebracht, sowie ein Gästebuch eingerichtet. Danach haben die Lehrkräfte seid einiger Zeit gerufen. Ich persönlich halte von Gästebüchern zwar nichsts, aber was soll&#8217;s. Für Kinder ist das schon was gutes, denke ich.</p>
<p>Auf jeden Fall wird noch eine Bildergalerie eingerichtet (Die Komponente <a href="http://www.joomgallery.net/demo-joomgallery/" target="_self">joom:galerie</a> ist bereist installiert), und außerdem muss noch die Lehrerschaft überredet werden, die Seite mit mehr Leben zu füllen.</p>
<div id="attachment_340" class="wp-caption aligncenter" style="width: 160px"><a href="http://blog.folkeraxmann.de/wp-content/uploads/2010/03/gs_now.png"><img class="size-thumbnail wp-image-340" title="Grundschulwebseite jetzt" src="http://blog.folkeraxmann.de/wp-content/uploads/2010/03/gs_now-150x150.png" alt="Grundschulwebseite jetzt" width="150" height="150" /></a><p class="wp-caption-text">Grundschulwebseite jetzt</p></div>
<div id="attachment_343" class="wp-caption aligncenter" style="width: 160px"><a href="http://blog.folkeraxmann.de/wp-content/uploads/2010/03/eaglehawk.png"><img class="size-thumbnail wp-image-343" title="Design von eaglehawk" src="http://blog.folkeraxmann.de/wp-content/uploads/2010/03/eaglehawk-150x150.png" alt="Design von eaglehawk" width="150" height="150" /></a><p class="wp-caption-text">Design von eaglehawk</p></div>
<div id="attachment_344" class="wp-caption aligncenter" style="width: 160px"><a href="http://blog.folkeraxmann.de/wp-content/uploads/2010/03/siteground.png"><img class="size-thumbnail wp-image-344" title="Webdesign von siteground" src="http://blog.folkeraxmann.de/wp-content/uploads/2010/03/siteground-150x150.png" alt="Webdesign von siteground" width="150" height="150" /></a><p class="wp-caption-text">Webdesign von siteground</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.folkeraxmann.de/?feed=rss2&amp;p=334</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Word .doc zu .txt mittels PHP</title>
		<link>http://blog.folkeraxmann.de/?p=318</link>
		<comments>http://blog.folkeraxmann.de/?p=318#comments</comments>
		<pubDate>Fri, 19 Mar 2010 21:15:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[mySQL]]></category>
		<category><![CDATA[doctotext]]></category>
		<category><![CDATA[docxtotext]]></category>
		<category><![CDATA[pdftotext]]></category>

		<guid isPermaLink="false">http://blog.folkeraxmann.de/?p=318</guid>
		<description><![CDATA[Word- und PDF-Dokumente mittels PHP zu einfachem Text wandeln, um ihn in einer Datenbank zu speichern.]]></description>
			<content:encoded><![CDATA[<p>Vor ein paar Tagen stand ich vor dem Problem, mittels PHP Word-Documente, die auf den Webserver geladen wurde, auszulesen. Sinn der ganzen Übung ist, den reinen Text des Dokumentes in einer mySQL-Datenbank zu speichern, um dann darüber recherchieren zu können.  Stichwort <strong>webbasierendes Dokumentenmanagement</strong>, an dem ich für meine Firma arbeite. Außerdem war das Problem vorhanden, .pdf Dokumente ebenso mit indexieren zu können. Nach vielem Basteln und googlen habe ich eine brauchbare Lösung gefunden.</p>
<h3>PDF zu Text:</h3>
<p>Die einfachste und brauchbarste Methode, um .pdf Dokumente auszulesen, ist meiner Ansicht das Shellscript pdftotext von <a href="http://www.foolabs.com/xpdf/download.html" target="_blank">Xpdf</a>, welches frei Verfügbar ist. Es gibt unter Anderem eine Windows Version, und, wie kann es wohl sein <img src='http://blog.folkeraxmann.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  , auch eine Linuxversion.<br />
Ich lade mir das PDF Dokument auf den Server (mittels Formular, oder wie auch immer), stoße die pdftotext.exe (ja es ist ein Windows Server) mittels shellexecute an und lese die erzeugte Temp-Datei wieder aus. Dies klappt wunderbar. Das Ergebnis speichere ich dann in einem &#8220;TEXT-Spalte&#8221; in mySQL und kann wunderbar per LIKE im Text suchen lassen. Für alle Nachahmer: beachtet, das bei großen Datenmengen die Suche natürlich ein wenig dauern kann <img src='http://blog.folkeraxmann.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>.doc zu Text</h3>
<p>Bei den alten Word .doc habe ich im Internet diverse Möglichkeiten gefunden, wie zB das Nutzen des COM Objektes von PHP. Nachteil: auf dem Server muss WORD installiert sein (tseses!). Hier stelle ich aber eine andere Methode vor, die etwas einfacher zu handhaben ist:</p>
<p>Ich habe bei der Suche nach einer Lösung folgendes Script im Netz gefunden:</p>
<pre class="brush:php">function doc2text($filename)
{
if ( file_exists($filename) )
{
if ( ($fh = fopen($filename, 'r')) !== false )
{
$headers = fread($fh, 0xA00);
# 1 = (ord(n)*1) ; Document has from 0 to 255 characters
$n1 = ( ord($headers[0x21C]) - 1 );
# 1 = ((ord(n)-8)*256) ; Document has from 256 to 63743 characters
$n2 = ( ( ord($headers[0x21D]) - 8 ) * 256 );
# 1 = ((ord(n)*256)*256) ; Document has from 63744 to 16775423 characters
$n3 = ( ( ord($headers[0x21E]) * 256 ) * 256 );
# (((ord(n)*256)*256)*256) ; Document has from 16775424 to 4294965504 characters
$n4 = ( ( ( ord($headers[0x21F]) * 256 ) * 256 ) * 256 );
# Total length of text in the document
$textLength = ($n1 + $n2 + $n3 + $n4);
$extracted_plaintext = fread($fh, $textLength);
# if you want the plain text with no formatting, do this
//echo $extracted_plaintext;
# if you want to see your paragraphs in a web page, do this
return nl2br($extracted_plaintext);
}
}
}
</pre>
<p>Diese Minifunktion reicht für meine Bedürfnisse vollkommen aus, auch wenn manchmal ein paar Datenkrüppel vorhanden sind. Häufig auftretende fehlerhaften Strings werden vor dem Speichern in die DB noch entfernt.</p>
<h3><span id="more-318"></span>.docx zu Text</h3>
<p>Bei .docx wird es etwas umfangreicher, da das das Datenformat eine komprimierte XML Datei ist, in der der Klartext dann in einer weiteren Datei &#8216;versteckt&#8217; ist. Folgende Funktion(en) habe ich gefunden, die mit den Klartext auch daraus extrahiert.</p>
<pre class="brush:php">/*
* docx zu text wandeln
*/
function docx2text($filename) {
return readZippedXML($filename, "word/document.xml");
//echo docx2text('d:\\web\\ppm\\bin\\test.docx')
}

function readZippedXML($archiveFile, $dataFile) {
// Create new ZIP archive
$zip = new ZipArchive;

// Open received archive file
if (true === $zip-&gt;open($archiveFile)) {
// If done, search for the data file in the archive
if (($index = $zip-&gt;locateName($dataFile)) !== false) {
// If found, read it to the string
$data = $zip-&gt;getFromIndex($index);
// Close archive file
$zip-&gt;close();
// Load XML from a string
// Skip errors and warnings
$xml = DOMDocument::loadXML($data, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
// Return data without XML formatting tags
return strip_tags($xml-&gt;saveXML());
}
$zip-&gt;close();
}

// In case of failure return empty string
return "";
}
</pre>
<p>Vor Aufruf der jeweiligen Word-Funktion habe ich noch eine Funktion gesetzt, die mir dann die entsprechende Funktion nach der Endung automatisch aufruft:</p>
<pre class="brush:php">function word2txt($filename)
{
$lastpoint=strrpos($filename,".");
$extension=substr($filename,$lastpoint,5);
if ($extension==".doc")
{
$r=doc2text($filename);
return utf8_decode($r);
}
else
{
return utf8_decode(docx2text($filename));
}
}
</pre>
<p>Es gibt bestimmt noch andere Methoden diese hat mich aber bisher gut vorangebracht. Evtl. weiß ja jemand eine noch einfachere Art, Worddokumente auszulesen. Zumindest für die .doc Dateien, da doch manchmal größerer Datenmüll entsteht.  Außerdem werde ich mich wohl noch nach einer Methode umsehen müssen, die  xls und xlsx Daten ausschnüffeln, da manchen User Excel gerne als Textverarbeitung missbrauchen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folkeraxmann.de/?feed=rss2&amp;p=318</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grundschule Leese</title>
		<link>http://blog.folkeraxmann.de/?p=313</link>
		<comments>http://blog.folkeraxmann.de/?p=313#comments</comments>
		<pubDate>Sun, 14 Mar 2010 06:57:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Grundschule Leese]]></category>

		<guid isPermaLink="false">http://blog.folkeraxmann.de/?p=313</guid>
		<description><![CDATA[Webseite der Grundschule Leese mit Joomla erstellen]]></description>
			<content:encoded><![CDATA[<p>Der Förderverein der Grundschule Leese ist an mich herangetreten und hat mich gefragt, ob ich sie nicht bei der Webseite der Grundschule Leese unterstützen möchte. Ich werde also in der nächsten Zeit die Webseite der Grundschule ein wenig aufpeppen. Der Vorteil der Webseite ist das die Webseite mit Hilfe von Joomla erstellt wurde.</p>
<p>Vorgestern habe ich dort erst mal Joomla auf den aktuellen Softwarestand gebracht, und das Template der Seite ein wenig aufgepeppt. Das Aussehen der Seite wird aber wohl noch mal erheblich ändern. In den nächsten Wochen werde ich mit dem Förderverein der Schule zusammen daraus eine kleine schöne Webseite machen und diese überarbeiten.</p>
<p>Der Link zur Webseite der Schule: <a href="http://www.grundschule-leese.de" target="_self">Grundschule Leese</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folkeraxmann.de/?feed=rss2&amp;p=313</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update von ESX</title>
		<link>http://blog.folkeraxmann.de/?p=274</link>
		<comments>http://blog.folkeraxmann.de/?p=274#comments</comments>
		<pubDate>Sat, 13 Feb 2010 10:39:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[ESX update]]></category>

		<guid isPermaLink="false">http://blog.folkeraxmann.de/?p=274</guid>
		<description><![CDATA[Update des Virtualisierungssystem ESX von VMware]]></description>
			<content:encoded><![CDATA[<p>In der Firma, in der ich als Admin angestellt bin, betreibe ich einen kleinen Intel Modular Server mit 2 Modulen, auf dem fast alle unsere Server virtualisiert sind. Wir nutzen hierzu das ESX von <a title="VMware" href="http://www.vmware.com/" target="_self">VMware</a>. Ich musste gezwungenermassen das ESX 4.0 auf 4.0 Update 1 updaten. Leider habe ich 2 Stunden dazu verbracht, um überhaupt rauszubekommen, wie das geht. Ich hab also nach endlosem Googlen einen englischen Block aus dem Entwicklerteam von VMware gefunden, auf dem das updaten von ESX beschrieben ist. Um es dem deutschsprachigen Admin etwas zu erleichtern, hier meine Ausführung in deutsch:</p>
<p><strong>Zuvor:</strong> Es sollten ein paar Linuxkenntnisse vorhanden sein. Kenntnisse über die Linuxshell sind von Vorteil. Außerdem ist zu beachten, das für das Update die virtuellen Maschinen auf dem entsprechenden Modul heruntergefahren werden müssen. Bei mir hat das Updaten &#8211; ohne die ganze Leserei -  ca. 25 Minuten gebraucht.</p>
<p><strong>Die Vorbereitung:</strong></p>
<p>Lade dir Putty herunter (ich gehe davon aus, das du ein Windows Betriebssystem hast), denn das Updaten geht nur mittels einer SSH-Konsole. Außerdem lade dir das Update von VMware herunter. In meinem Falle war das die<em> ESX-4.0.0-update01a.zip.</em></p>
<p>Jetzt muss die Updatedatei auf einen der Datenspeicher kopiert werden. Dazu nimm den vSphere-Clienten:</p>
<p><a href="http://blog.folkeraxmann.de/wp-content/uploads/2010/02/0cd61a4dc9a5dd51e91a66f839182e72.media_.450x2901.png"><img class="aligncenter size-thumbnail wp-image-306" title="0cd61a4dc9a5dd51e91a66f839182e72.media.450x290" src="http://blog.folkeraxmann.de/wp-content/uploads/2010/02/0cd61a4dc9a5dd51e91a66f839182e72.media_.450x2901-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Gehe hierzu im vSphere-Clienten auf <em>Dateispeicher</em>, mache einen Rechtsklick auf ein Storage, welcher genug Speicherplatz hat und gehe auf <em>Datenspeicher durchsuchen</em>. Hier kannst du jetzt über das entsprechende Symbol die .zip Datei auf dem Storage speichern. Somit ist die Updatedatei schon mal auf dem Server.</p>
<p><strong>Update einspielen:</strong></p>
<p>Um die .zip Datei einzuspielen musst du dich jetzt mittels Putty auf das Modul einloggen, auf dem du das Update einspielen willst.</p>
<p style="text-align: center;"><a href="http://blog.folkeraxmann.de/wp-content/uploads/2010/02/putty4.png"><img class="aligncenter size-thumbnail wp-image-310" title="putty" src="http://blog.folkeraxmann.de/wp-content/uploads/2010/02/putty4-150x150.png" alt="" width="150" height="150" /></a></p>
<p style="text-align: center;"><a href="http://blog.folkeraxmann.de/wp-content/uploads/2010/02/putty2.png"><img class="size-thumbnail wp-image-280  aligncenter" title="SSH-Konsole" src="http://blog.folkeraxmann.de/wp-content/uploads/2010/02/putty2-150x150.png" alt="SSH-Konsole" width="150" height="150" /></a></p>
<p style="text-align: left;"><strong>01</strong></p>
<p style="text-align: left;">Prüfe, ob und wo genug Festplattenplatz vorhanden ist (doppelt so viel, wie das Updatefile wird benötigt):</p>
<blockquote>
<p style="text-align: left;">vdf -h</p>
</blockquote>
<p style="text-align: left;"><strong>02</strong></p>
<p style="text-align: left;">Du kannst dir die Datei noch irgendwo anders hinschieben mittels des <em>mv</em> Befehls, wie z.B. nach /var/updates</p>
<blockquote>
<p style="text-align: left;">mv /vmfs/volumes/&lt;datastore&gt;/ESX-4.0.0-update01a.zip /var/updates/*</p>
</blockquote>
<p style="text-align: left;">&lt;datastore&gt; ist dein entsprechender Datenspeicher. In meinem Beispiel ist dies <em>local_storage_raid10</em>.</p>
<p style="text-align: left;"><strong>03</strong></p>
<p style="text-align: left;">Prüfe jetzt ob das Update nicht schon eingespielt ist mittels diesem Befehl:</p>
<blockquote>
<p style="text-align: left;">esxupdate query</p>
</blockquote>
<p style="text-align: left;"><strong>04</strong></p>
<p style="text-align: left;">Werden jetzt Updates aus dem Paket benötigt, muss der Server in den Wartungsmodus gestellt werden. Entweder über vSphere oder über die SSH-Konsole (ich persönlich bevorzuge vSphere).  Bedenke, das alle virtuellen Maschinen auf diesem Modul heruntergefahren müssen!</p>
<blockquote>
<p style="text-align: left;">vimsh -n -e /hostsvc/maintenance_mode_enter</p>
</blockquote>
<p style="text-align: left;"><strong>05</strong></p>
<p style="text-align: left;">Über folgende Befehle können die Host aufgelistet werden. Mit dem zweiten Befehl wird die entsprechende Maschine heruntergefahren (ich bevorzuge wieder vSphere):</p>
<blockquote>
<p style="text-align: left;">vmware-cmd -s listvms</p>
<p>vmware-cmd &lt;voller Pfad zur .vmx Datei&gt; stop soft</p></blockquote>
<p style="text-align: left;"><span id="more-274"></span><strong>06</strong></p>
<p style="text-align: left;">Um zu Prüfen, welche Updates aus dem Bundle der .zip Datei eingespielt werden, kann dieser Befehl genutzt werden: (Schaue dir das Resultat zur Sicherheit ruhig an. Der Parameter <em>bundle hat 2 Minuszeichen</em>!))</p>
<blockquote>
<p style="text-align: left;">esxupdate &#8211;bundle file://var/updates/ESX-4.0.0-update01a.zip scan</p>
</blockquote>
<p style="text-align: left;"><strong>07</strong></p>
<p style="text-align: left;">Jetzt führe eine Updatetest durch -&gt; es ist ein Trockenlauf, ohne das das System wirklich upgedatet wird. Führe dies zur Sicherheit auf jeden Fall durch (Der Parameter <em>bundle hat 2 Minuszeichen</em>!):</p>
<blockquote>
<p style="text-align: left;">esxupdate &#8211;bundle file://var/updates/ESX-4.0.0-update01a.zip stage</p>
</blockquote>
<p style="text-align: left;"><strong>08</strong></p>
<p style="text-align: left;">Wenn jetzt kein Fehler angezeigt wurde, so kannst du das Update einspielen (Der Parameter <em>bundle hat 2 Minuszeichen</em>!):</p>
<blockquote>
<p style="text-align: left;">esxupdate &#8211;bundle file://var/updates/ESX-4.0.0-update01a.zip update</p>
</blockquote>
<p style="text-align: left;"><strong>09</strong></p>
<p style="text-align: left;">Wenn das Update durchgelaufen ist (Das System melde sich mit <em>please reboo</em>t), gebe den Befehl ein:</p>
<blockquote>
<p style="text-align: left;">reboot</p>
</blockquote>
<p style="text-align: left;"><strong>10</strong></p>
<p style="text-align: left;">Ist das System neu gebootet, schalte den Wartungsmodus wieder aus und fahre deine virtuellen Maschinen wieder hoch. (Ich nutze hier wieder vSphere)</p>
<blockquote>
<p style="text-align: left;">vimsh -n -e /hostsvc/maintenance_mode_exit</p>
<p>vmware-cmd &lt;Pfad zur .vmx Datei&gt; start</p></blockquote>
<p style="text-align: left;"><strong>11</strong></p>
<p style="text-align: left;">Lösche jetzt noch deine .zip Datei, um den Speicherplatz wieder frei zu haben. Anschließend kannst du nochmal dein Speicherplatz prüfen:</p>
<blockquote>
<p style="text-align: left;">rm /var/updates/*.zip</p>
<p>vdf -h</p></blockquote>
<p style="text-align: left;">Fertig. Das war es schon. Denke daran, das das Update auf allen Modulen einzeln eingespielt werden muss.</p>
<p style="text-align: left;">Hier der Link zum Original: <a href="http://communities.vmware.com/blogs/vmroyale/2009/10/12/single-use-esxupdate-how-to-for-esx-4" target="_self">http://communities.vmware.com/blogs/vmroyale/2009/10/12/single-use-esxupdate-how-to-for-esx-4</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folkeraxmann.de/?feed=rss2&amp;p=274</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ein Kampf mit Joomla und ImageSizer</title>
		<link>http://blog.folkeraxmann.de/?p=265</link>
		<comments>http://blog.folkeraxmann.de/?p=265#comments</comments>
		<pubDate>Fri, 12 Feb 2010 21:07:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://blog.folkeraxmann.de/?p=265</guid>
		<description><![CDATA[Problem mit Joomla Plugin ImageSize]]></description>
			<content:encoded><![CDATA[<p>Heute war ich am Verzweifeln. Ich habe für einen Kunden das Joomlaplugin ImageSizer von <a href="http://www.redim.de/downloads/joomla-1.5/plugins/imagesizer.html">reDim</a> installieren wollen.  Zum eine habe ich lange nach gesucht, warum das Plugin manchmal funktionierte, und manchmal nicht -&gt; nach 2 Stunde probieren habe ich das erste Problem lokalisieren können: In den Parametern des Plugin muss der maximale Thumbwert klein genug gemacht werden. Verkleinere ich mein Bild kleiner als der angegeben Wert, ignoriert das Plugin die Bilder.</p>
<p>Zum Zweiten arbeitet das Plugin nicht wirklich mit dem  mod_newsflash zusammen. Wenn ich das Modul auf meiner Startseite anzeigen lasse, so ignoriert das imageSize die Bilder im mod_newsflash. Warum das so ist, habe ich bisher nicht herausfinden können.</p>
<p>Jetzt weiß ich zumindest Bescheid, und kann dementsprechend reagieren.</p>
<p><a href="http://www.redim.de/downloads/joomla-1.5/plugins/imagesizer.html">http://www.redim.de/downloads/joomla-1.5/plugins/imagesizer.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folkeraxmann.de/?feed=rss2&amp;p=265</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>GW-Blog umgezogen</title>
		<link>http://blog.folkeraxmann.de/?p=262</link>
		<comments>http://blog.folkeraxmann.de/?p=262#comments</comments>
		<pubDate>Sun, 07 Feb 2010 15:58:27 +0000</pubDate>
		<dc:creator>Folker</dc:creator>
				<category><![CDATA[Aion]]></category>
		<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Preisliste]]></category>

		<guid isPermaLink="false">http://blog.folkeraxmann.de/?p=262</guid>
		<description><![CDATA[Heute bin ich mit dem GW-Blog umgezogen.  Die Preisliste selber bleibt beim alten Provider, da ich ansonsten zu viel Anpassungen durchführen muss, da der ‘alte’ Webserver noch auf PHP4 basiert.
Der Blog selber wird sich dahin ändern, denn ich selber spiele kein Guildwars mehr. Die Themenschwerpunkte werden in Zukunft eher Aion betreffen. Außerdem werde ich von [...]]]></description>
			<content:encoded><![CDATA[<p>Heute bin ich mit dem GW-Blog umgezogen.  Die Preisliste selber bleibt beim alten Provider, da ich ansonsten zu viel Anpassungen durchführen muss, da der ‘alte’ Webserver noch auf PHP4 basiert.</p>
<p>Der Blog selber wird sich dahin ändern, denn ich selber spiele kein Guildwars mehr. Die Themenschwerpunkte werden in Zukunft eher Aion betreffen. Außerdem werde ich von Zeit zu Zeit mehr auf die Scriptsprache Javascript, PHP, dem CMS Joomla und dem Javascriptframework jQuery eingehen. Mein neuestes Projekt, das  &#8220;Onlinekassensystem&#8221; bekommt hier ebenfalls sein Tagebuch-Zuhause.</p>
<p>Die Guildwarspreisliste werde ich aber weiterhin betreuen, sie wird nicht angeschaltet &#8211; falls das jetzt jemand befürchte.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folkeraxmann.de/?feed=rss2&amp;p=262</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kleines Update der Preisliste</title>
		<link>http://blog.folkeraxmann.de/?p=248</link>
		<comments>http://blog.folkeraxmann.de/?p=248#comments</comments>
		<pubDate>Thu, 07 Jan 2010 07:28:54 +0000</pubDate>
		<dc:creator>Folker</dc:creator>
				<category><![CDATA[Preisliste]]></category>

		<guid isPermaLink="false">http://blog.folkeraxmann.de/?p=248</guid>
		<description><![CDATA[Heute habe ich ein kleines Sicherheitsupdate eingespielt. Ein Bot hat versucht, die Datenbank zu fluten und Massenmails zu verschicken. Das Verschicken der Mails hat zwar nicht funktioniert, aber die Datenbank war Ã¼bermÃ¤ÃŸig belastet worden. Die SicherheitslÃ¼cke ist jetzt gestopft.
]]></description>
			<content:encoded><![CDATA[<p>Heute habe ich ein kleines Sicherheitsupdate eingespielt. Ein Bot hat versucht, die Datenbank zu fluten und Massenmails zu verschicken. Das Verschicken der Mails hat zwar nicht funktioniert, aber die Datenbank war Ã¼bermÃ¤ÃŸig belastet worden. Die SicherheitslÃ¼cke ist jetzt gestopft.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folkeraxmann.de/?feed=rss2&amp;p=248</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aion ohne Warteschlange</title>
		<link>http://blog.folkeraxmann.de/?p=245</link>
		<comments>http://blog.folkeraxmann.de/?p=245#comments</comments>
		<pubDate>Sun, 11 Oct 2009 10:03:47 +0000</pubDate>
		<dc:creator>Folker</dc:creator>
				<category><![CDATA[Aion]]></category>

		<guid isPermaLink="false">http://blog.folkeraxmann.de/?p=245</guid>
		<description><![CDATA[Sie haben es geschafft! Donnerwetter! Aion hat keine Warteschlangen mehr. Man kann jetzt sofort losspielen.
Seid vorgestern (Freitag) wurde die Obergrenze der Spielerzahl auf den Servern erheblich nach oben gesetzt, sodaÃŸ wir den Rechner nicht mehr stundenlang laufen lassen mÃ¼ssen, um just mal Aion zu spielen. Begonnen hat dies aber schon am Dienstag. Da gab es [...]]]></description>
			<content:encoded><![CDATA[<p>Sie haben es geschafft! Donnerwetter! Aion hat keine Warteschlangen mehr. Man kann jetzt sofort losspielen.</p>
<p>Seid vorgestern (Freitag) wurde die Obergrenze der Spielerzahl auf den Servern erheblich nach oben gesetzt, sodaÃŸ wir den Rechner nicht mehr stundenlang laufen lassen mÃ¼ssen, um just mal Aion zu spielen. Begonnen hat dies aber schon am Dienstag. Da gab es um 19:00 Uhr nur noch einWarteschlange von 7 Minuten. Ein paar Tage zuvor konnte man um 19:00 Uhr noch davon ausgehen, das die Warteschlange ca. 2 Stunde lang war.</p>
<p>So macht es wieder richtig spaÃŸ, denn jetzt kann man dazu Ã¼bergehen, gemeinsame Quests zu planen und durchzufÃ¼hren.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.folkeraxmann.de/?feed=rss2&amp;p=245</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
