<?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>kauderWWWelsch &#187; apache-modul</title>
	<atom:link href="http://www.kauderwwwelsch.de/tag/apache-modul/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kauderwwwelsch.de</link>
	<description>...rund um&#039;s Web, Games, etc...</description>
	<lastBuildDate>Thu, 29 Dec 2011 17:30:34 +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>Plesk 9 und PHP 5.2.13/5.3 &#8211; so geht&#8217;s</title>
		<link>http://www.kauderwwwelsch.de/2010-05-12/plesk-9-und-php-5-2-13-php-5-3-so-gehts/</link>
		<comments>http://www.kauderwwwelsch.de/2010-05-12/plesk-9-und-php-5-2-13-php-5-3-so-gehts/#comments</comments>
		<pubDate>Wed, 12 May 2010 03:16:58 +0000</pubDate>
		<dc:creator>mici81de</dc:creator>
				<category><![CDATA[Server, Hosting, etc.]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache-modul]]></category>
		<category><![CDATA[configure]]></category>
		<category><![CDATA[dotdeb.org]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[mod_php]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpinfo]]></category>
		<category><![CDATA[plesk]]></category>
		<category><![CDATA[suexec]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://www.kauderwwwelsch.de/?p=661</guid>
		<description><![CDATA[Das Plesk Panel von Parallels ist eine (meiner Meinung nach) recht angenehme Variante, einen Web-Server zu verwalten. Alltägliches, wie z. B. das Einrichten einer neuen E-Mail-Adresse, das Anlegen einer Subdomain oder ähnliche Aufgaben lassen sich mit wenigen Klicks bewerkstelligen. Besonders angenehm ist auch, dass sich in den &#8220;Webhosting-Einstellungen&#8221; einer Domain jederzeit die PHP-Einbindung wählen lässt: [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_675" class="wp-caption alignright" style="width: 310px"><img class="size-full wp-image-675 " title="php_5-2-13_dotdeb" src="http://www.kauderwwwelsch.de/wp-content/uploads/php_dotdeb.jpg" alt="php_5-2-13_dotdeb" width="300" height="75" /><p class="wp-caption-text">PHP 5.2.13 über dotdeb.org installiert</p></div>
<p>Das Plesk Panel von Parallels ist eine (meiner Meinung nach) recht angenehme Variante, einen Web-Server zu verwalten. Alltägliches, wie z. B. das Einrichten einer neuen E-Mail-Adresse, das Anlegen einer Subdomain oder ähnliche Aufgaben lassen sich mit wenigen Klicks bewerkstelligen. Besonders angenehm ist auch, dass sich in den &#8220;Webhosting-Einstellungen&#8221; einer Domain jederzeit die PHP-Einbindung wählen lässt: die Standard-Variante als Apache-Modul (<strong>mod_php</strong>) oder doch lieber per <strong>fastcgi</strong>.</p>
<p>Der Vorteil bei fastcgi ist dabei, dass dann gleich auch die Erweiterung <strong>suexec</strong> aktiv geschaltet wird, was dazu führt, dass PHP-Skripte mit den Rechten des FTP-Users, dem die Skripte gehören, ausgeführt werden. Das ist äußerst praktisch &#8211; sonst teilweise recht nervige Update-Prozeduren von z. B. WordPress Themes/Plugins laufen einfach so durch.</p>
<h3 id="Das_Problem">Das Problem</h3>
<p>Wie überall bei Software gibt es natürlich auch bei Plesk verschiedenste Punkte, an denen der Spaß aufhört und man die Komplexität des Systems verflucht. Dabei spielt vor allem die als Standard mit Plesk installierte PHP-Version eine große Rolle. Einerseits, weil ein auf Sicherheit bedachter Admin logischerweise gerne Updates einspielen würde &#8211; andererseits, weil bestimmte PHP-Funktionen nun mal erst ab einer bestimmten Version verfügbar sind. Selbst die neueste Plesk-Version 9.5.1 bringt je nachdem, auf welchem System sie eingesetzt wird, aber nur veraltete PHP-Versionen mit bzw. zieht sich diese aus den Repositories der Distribution. Möchte man aber aus zuvor erwähnten Gründen eine aktuellere PHP-Version einsetzen, fängt&#8217;s an haarig zu werden.</p>
<h3 id="Wichtige_Info:"><span style="color: #ff6600;">Wichtige Info:</span></h3>
<p><span style="color: #ff6600;">Wer auch immer das liest &#8211; bitte beachte, dass ich hier nur meine &#8220;Odyssee&#8221; schildere und wie es dann letztlich funktioniert hat. Dieser Beitrag will kein Tutorial sein! Bitte daher nicht einfach irgendeinen der Schritte nachvollziehen, ohne vorher den gesamten Artikel gelesen zu haben &#8211; könnte nämlich zu extrem unerwünschten Ergebnissen führen&#8230; Danke Anke. <img src='http://www.kauderwwwelsch.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </span></p>
<h3 id="Ein_Ansatz&#8230;">Ein Ansatz&#8230;</h3>
<p>Mein erster Gedanke war: Das kann doch nicht so schwer sein! Ich lade mir einfach die Quellen einer aktuellen PHP-Version, kompiliere die selbst und schiebe sie Plesk unter. Gedacht, umgesetzt, &#8230; gescheitert. Bei der Umsetzung wird das Ganze nämlich schon lustig. Wer so was schon mal gemacht hat weiß, dass so ein <strong>configure</strong>-Befehl sehr mächtig ist bzw. eine Menge Optionen mitbringt. Bei PHP ist es besonders wichtig, denn schließlich sollen alle derzeit auf dem System aktiven Erweiterungen auch in der neu kompilierten Version mit drin sein!</p>
<p>Nun ja, erster Schritt: Unter <a href="http://www.php.net/downloads.php#v5" title="PHP Download &gt; php.net" target="_blank" class="liexternal">http://www.php.net/downloads.php#v5</a> die gewünschte PHP-Version geladen (hier 5.2.13), entpackt und mal eben die möglichen Schalter des &#8220;configure&#8221; angezeigt.</p>
<pre class="brush: bash; gutter: true">wget http://de3.php.net/get/php-5.2.13.tar.gz/from/this/mirror
tar xvzf php-5.2.13.tar.gz
rm php-5.2.13.tar.gz
cd php-5.2.13
./configure --help | less</pre>
<p>Der letzte Befehl gibt die Hilfe und damit auch die möglichen Optionen/Schalter für den &#8220;configure&#8221;-Befehl für PHP aus. Eine schnelle Zählung ergibt mal eben schlappe <strong>219 Optionen</strong>. Nun wäre allein das ja nicht so tragisch, wenn man weiß, wie die aktuelle Konfiguration aussieht. Dann würde es ausreichen, die korrekten Optionen zu setzen und configure auszuführen. Nur: wie lässt sich die aktuelle Konfiguration verlässlich herausfinden? Mit welchen Erweiterungen wurde das derzeit installierte PHP kompiliert?</p>
<h3 id="Configure-Gerätsel">Configure-Gerätsel</h3>
<p>Bei einigen Webhostern wird über den PHP-Befehl phpinfo(); auch der &#8220;Configure Command&#8221; mit ausgegeben. Mit dieser Info hat man schon mal so gut wie gewonnen. Denn diese Anzeige gibt nun mal genau aus, wie PHP konfiguriert wurde. Ein simples copy &amp; paste sollte also ausreichen, um die neue PHP-Version auf den Weg zu bringen.</p>
<p>Das ist leider bei einer Plesk-Installation in der Regel nicht der Fall &#8211; hier fehlt der &#8220;Configure Command&#8221; in der phpinfo()-Ausgabe. Also wo bekommt man diese Info dann her? Selbst wenn man sämtliche in der über <strong>phpinfo</strong> ausgegebenen Aufstellung angezeigten Module und Erweiterungen durchforsten würde, kann man daraus nicht zuverlässig den Configure-Befehl ableiten.</p>
<p>Ich habe auf diesem Weg zwei Tage vergeudet &#8211; mehrere Stunden intensiver Google-Suche eingeschlossen und bin zu keiner zufriedenstellenden Lösung gekommen, wie man an diese Information kommt. Zwar gibt es alle möglichen sehr informativen Anleitungen, wie PHP auf diesem Weg zu konfigurieren und installieren ist. So fand ich bspw. diese Anleitung sehr hilfreich: <a href="http://de.wikibooks.org/wiki/Websiteentwicklung:_PHP:_Installation#UNIX-artige_Systeme" title="PHP-Installation unter UNIX-Systemen &gt; de.wikibooks.org" target="_blank" class="liexternal">Websiteentwicklung: PHP: Installation: UNIX-artige_Systeme</a>. Mein großes Fragezeichen war damit aber immer noch nicht beantwortet.</p>
<h3 id="Ein_anderer_Ansatz">Ein anderer Ansatz</h3>
<p>Weil mir irgendwann die Lust verging und ich auch mal wieder was anderes zu tun hatte, als stundenlang verzweifelt nach einer Antwort zu suchen, musste eine andere Lösung her. Mir fiel wieder ein, dass ich irgendwo mal vorkompilierte Installationspakete für aktuelle PHP-Versionen für die verschiedenen Linux-Distributionen gefunden hatte. Also noch mal eben danach gesucht und siehe da, <strong>dotdeb.org</strong> führt unter dem Link <a href="http://www.dotdeb.org/mirrors/" title="PHP deb-Pakete &gt; dotdeb.org" target="_blank" class="liexternal">http://www.dotdeb.org/mirrors/</a> eine Liste der verschienden Spiegelserver für Debian-basierte Server. Demnach auch für mich &#8211; welch Freude!</p>
<p>Damit diese Quellen verwendet werden, ist nur eine kurze Anpassung der Datei &#8220;<strong>/etc/apt/sources.list</strong>&#8221; erforderlich:</p>
<pre class="brush: bash; gutter: true">nano /etc/apt/sources.list</pre>
<p>Hier habe ich dann an&#8217;s Ende die Mirrors von dotdeb.org für Deutschland eingefügt.</p>
<pre class="brush: bash; gutter: true">deb http://ftp.hosteurope.de/mirror/packages.dotdeb.org/ stable all
deb-src http://ftp.hosteurope.de/mirror/packages.dotdeb.org/ stable all
deb http://dotdeb.netmirror.org/ stable all
deb-src http://dotdeb.netmirror.org/ stable all</pre>
<p>Wieder mal gedacht, jetzt ist alles toll &#8211; und über &#8220;apt&#8221; ein update &amp; upgrade ausgeführt:</p>
<pre class="brush: bash; gutter: true">apt-get update &amp;&amp; apt-get upgrade</pre>
<p>Und siehe da &#8211; es gibt Updates für PHP auf die von mir gewünschte Version 5.2.13. Installieren? Ja klar! Bei der Installation gab&#8217;s keine Schwierigkeiten, alle Abhängigkeiten wurden erfüllt, so soll&#8217;s sein. Auf die Frage hin, ob die vorhandenen Konfigurationsdateien beibehalten werden sollen, antworte ich natürlich mit &#8220;Ja&#8221; &#8211; schließlich sollen die Einstellungen so bleiben, wie sie sind!</p>
<p>Dann der große Test &#8211; was sagt phpinfo? Yeah, auch hier sieht&#8217;s gut aus: &#8220;PHP Version 5.2.13&#8243; wird angezeigt. Soweit so gut.</p>
<p>Was folgt, ist&#8230; Ernüchterung. Aus welchen Gründen auch immer &#8211; mein Blog läuft nicht mehr. Eine kurze Nachforschung ergibt: PHP wurde zwar aktualisiert, aber trotz der Entscheidung, die Konfigurationsdateien wie gehabt zu behalten, wurde die MySQL-Erweiterung nicht bzw. nicht korrekt installiert.</p>
<p>Toll &#8211; auf diesem Weg also auch kein Erfolg gehabt. PHP ist zwar aktuell, aber die Installation ist zerschossen. Was nun?</p>
<h3 id="Unkonventionell_und_unpraktisch_&#8211;_aber_endlich_eine_Lösung">Unkonventionell und unpraktisch &#8211; aber endlich eine Lösung</h3>
<p>Die Lösung ergab sich letztlich durch den Umstand, dass ein Update von Plesk vor der Tür stand. Momentaner Stand war Plesk 9.3 &#8211; die neue Version <strong>Plesk 9.5.1</strong> sollte installiert werden. Da neue Plesk-Versionen mit Vorsicht zu genießen sind, gerade, wenn diese als Upgrade von einer kleineren Version ausgeführt werden, habe ich das Ganze erst einmal auf den späten Abend verschoben.</p>
<p>Abends stand dann erst mal eine Sicherung des Servers an, Blog + Datenbank exportieren und dann&#8230; einfach mal eben eine Neuinstallation des Servers mit Minimal-System. Gut dass das kein Produktiv-System mit anderen Usern drauf ist, sondern halt einfach nur ein privater Blog drauf läuft. Da ist sowas schon mal eben vertretbar.</p>
<p>Nach der Neuinstallation des Systems kurz eben einmal die Updates ziehen und los geht&#8217;s. Da das PHP-Update bei einer vorhandenen Plesk-Installation scheiterte, dachte ich mir, schiebe ich Plesk doch einfach schon während der Installation die neue PHP-Version unter! Und so hat&#8217;s dann auch funktioniert.</p>
<p>Kurz bei Parallels unter &#8220;<a href="http://www.parallels.com/de/download/plesk/products/" title="Parallels Plesk Panel - Download &gt; parallels.com" target="_blank" class="liexternal">http://www.parallels.com/de/download/plesk/products/</a>&#8221; einen Account angelegt und den &#8220;autoinstaller&#8221; für meine Distribution herunter geladen. Dann die &#8220;sources.list&#8221; angepasst und den Installer von Plesk gestartet&#8230;</p>
<pre class="brush: bash; gutter: true">wget __link_zur_gewünschten_Plesk_Version__
nano /etc/apt/sources.list   # Sources von dotdeb.org, wie beschrieben
chmod +x __heruntergeladene_plesk_datei__    # herunterladene Datei ausführbar machen
./__von_parallels_heruntergeladene_datei__   # autoinstaller starten</pre>
<p>Hangelt man sich nun durch das Menü des Autoinstallers und lässt die Installation dann durchlaufen, zieht sich das Plesk-Tool brav aus den Quellen die aktuelle PHP-Version und installiert diese. Heureka!</p>
<p>Abschließend stand dann noch an, das Datenbank-Backup und die Blog-Daten wieder einzuspielen und einzurichten, was dann relativ schnell erledigt war. Komfortabler geht es natürlich über den <strong>Plesk-Backup-Manager</strong>. Nutzt man diesen, um z. B. einmal pro Tag eine automatische Sicherung des gesamten Servers, soweit es Plesk betrifft, durchzuführen, so braucht man nach der Neuinstallation einfach nur wieder die Daten des FTP-Servers einzutragen, auf dem das Backup liegt. Gibt Plesk noch eben den Auftrag das Backup zurückzuspielen und schon steht die Einrichtung wieder.</p>
<p>Das Beschriebene lässt sich natürlich statt mit PHP 5.2.13 auch genauso mit PHP 5.3.2 durchführen.</p>
<h3 id="Fazit:">Fazit:</h3>
<p>Ob sich der ganze Aufwand lohnt / gelohnt hat, ist die Frage. Ich denke schon &#8211; immerhin habe ich nun die neueste PHP-Version am Laufen. Seitdem funktioniert auch FastCGI und suexec ohne Probleme. Und falls zukünftig irgendwann mal wieder eine Serverneuinstallation ansteht, weiß ich nun, das Plesk von Anfang an die korrekte Version untergeschoben bekommen muss, damit es läuft ohne zu meckern.</p>
<p>Es bleiben allerdings noch offene Fragen:</p>
<ul>
<li>Wie vertrauenswürdig sind die Quellen von dotdeb.org? Sind die &#8220;produktiv-System-tauglich&#8221;?</li>
<li>Wieso hat die Installation der Pakete von dotdeb.org im laufenden Betrieb versagt, obwohl ich die bestehenden Config-Files beibehalten habe?</li>
<li>Warum finde ich verflixt noch eins keine Info dazu, wie ich mir den &#8220;Configure Command&#8221; der jeweils aktuell installierten PHP-Version anzeigen lassen kann, wenn dieser nicht per phpinfo() auftaucht?</li>
<li>Und wenn ich dann diese Info irgendwann mal finden sollte&#8230; wird das Kompilieren und Installieren der dann aktuellen PHP-Version sauber vonstatten gehen oder wird&#8217;s wieder scheitern?</li>
</ul>
<p>Für Infos bin ich dankbar &#8211; nutzt bitte einfach die Kommentar-Funktion. Danke <img src='http://www.kauderwwwelsch.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.kauderwwwelsch.de/2010-05-12/plesk-9-und-php-5-2-13-php-5-3-so-gehts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

