<?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>digidisaster.de &#187; Linux</title>
	<atom:link href="http://www.digidisaster.de/tag/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://www.digidisaster.de</link>
	<description>MySpace! -,- -,- Mein Platz! ;-) ;-)</description>
	<lastBuildDate>Sun, 24 Apr 2011 09:57:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP 4 &amp; PHP 5 auf Debian 4(etch) installieren</title>
		<link>http://www.digidisaster.de/2009/02/19/php-4-php-5-auf-debian-4etch-installieren</link>
		<comments>http://www.digidisaster.de/2009/02/19/php-4-php-5-auf-debian-4etch-installieren#comments</comments>
		<pubDate>Thu, 19 Feb 2009 15:18:59 +0000</pubDate>
		<dc:creator>roland</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Apache2]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP4]]></category>
		<category><![CDATA[PHP5]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.digidisaster.de/?p=301</guid>
		<description><![CDATA[PHP4 und PHP5 parallel auf einem Debian Server zu instalieren ist keine Hexerei.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.digidisaster.de/wp-content/uploads/2009/02/php45-logo.png" rel="lightbox[301]"><img class="alignleft size-full wp-image-350" title="php45-logo" src="http://www.digidisaster.de/wp-content/uploads/2009/02/php45-logo.png" alt="php45-logo" width="300" height="196" /></a></p>
<p>Läuft ein Webserver schon einige Zeit und ist wie in meinem Fall schon des öfteren von einer früheren Version von <a href="http://www.debian.de" target="_blank">Debian </a>upgedatet worden, ist vielfach <a href="http://www.php.net" target="_blank">PHP </a>in der Version 4 als Modul für den <a href="http://www.apache.org" target="_blank">Apache </a>Webserver installiert. Neue Software, wie zum Beispiel Typo3 Version 4.2 benötigt mittlerweile aber PHP in der Version 5.2. Was tun? PHP4 deinstalieren und PHP 5 instalieren ist aufgrund der Rückwertskompatipilität oft nicht so einfach möglich. Eine Lösung bei der beide Versionen im Paralellbetrieb laufen ist Notwendig.</p>
<p>Die Lösung ist, PHP5 in der CGI Variante zu instalieren und dem jeweiligen Bereich der Internetseite oder dem VirtuelenHost über eine direktive Mitteilen das <code>.php</code> Dateien über den CGI Wrapper auszuführen sind.</p>
<p>Aber keine Panik! PHP5 parallel zu installieren ist kein Hexenwerk:</p>
<ol>
<li>In <code>/etc/apt</code> die <code>sources.list</code> mit den aktuellen Debian Mirrors anpassen.
<pre lang="apt_sources"># Deutsche Debian Server

deb http://ftp.de.debian.org/debian stable main contrib non-free
deb http://ftp2.de.debian.org/debian-non-US/ stable/non-US main contrib non-free
deb http://ftp2.de.debian.org/debian-security stable/updates main contrib non-free</pre>
<p>Eine Liste mit den aktuellen <a href="http://www.debian.org/mirror/mirrors_full" target="_blank">Mirrors</a> findet ihr auf den <a href="http://www.debian.org/mirror/mirrors_full" target="_blank">Debian Seiten</a>.</li>
<li><code>apt-get update</code> ausführen um die Paketinformationen der neuen Mirrors zu laden <em>(Root Rechte werden benötigt)</em>:
<pre class="brush:[bash]">ServerXX:/etc/apt#su
Password:
ServerXX:/etc/apt# apt-get update
Hole:1 http://ftp2.de.debian.org stable/non-US Release.gpg [197B]
Hole:2 http://ftp2.de.debian.org stable/updates Release.gpg [189B]
OK   http://ftp2.de.debian.org stable/non-US Release
OK   http://ftp2.de.debian.org stable/updates Release
Hole:3 http://ftp.de.debian.org stable Release.gpg [386B]
OK   http://ftp.de.debian.org stable Release
Ign http://ftp2.de.debian.org stable/non-US/main Packages/DiffIndex
Ign http://ftp2.de.debian.org stable/non-US/contrib Packages/DiffIndex
Ign http://ftp2.de.debian.org stable/non-US/non-free Packages/DiffIndex
Ign http://ftp2.de.debian.org stable/updates/main Packages/DiffIndex
Ign http://ftp.de.debian.org stable/main Packages/DiffIndex
Ign http://ftp2.de.debian.org stable/updates/contrib Packages/DiffIndex
Ign http://ftp2.de.debian.org stable/updates/non-free Packages/DiffIndex
Ign http://ftp2.de.debian.org stable/non-US/main Packages
Ign http://ftp2.de.debian.org stable/non-US/contrib Packages
Ign http://ftp.de.debian.org stable/contrib Packages/DiffIndex
Ign http://ftp.de.debian.org stable/non-free Packages/DiffIndex
OK   http://ftp.de.debian.org stable/main Packages
Ign http://ftp2.de.debian.org stable/non-US/non-free Packages
OK   http://ftp2.de.debian.org stable/updates/main Packages
OK   http://ftp.de.debian.org stable/contrib Packages
OK   http://ftp2.de.debian.org stable/updates/contrib Packages
OK   http://ftp.de.debian.org stable/non-free Packages
OK   http://ftp2.de.debian.org stable/updates/non-free Packages
OK   http://ftp2.de.debian.org stable/non-US/main Packages
OK   http://ftp2.de.debian.org stable/non-US/contrib Packages
OK   http://ftp2.de.debian.org stable/non-US/non-free Packages
Es wurden 3B in 0s geholt (4B/s)
Paketlisten werden gelesen... Fertig
ServerXX:/etc/apt#</pre>
<p>Sollte eine Fehlermeldung bei diesem Prozess auftreten, liegt dies meist daran, das der PGP Schlüssel zur Überprüfung der Pakete nicht bekannt ist. Sollte dies der Fall sein, lest bitte hier weiter.</li>
<li> Nun kann das <code>php5-cgi</code> Paket, mit dem Befehl <code>apt-get install php5-cgi</code> installiert werden.</li>
<li>In die Datei <code>/etc/apache2/apache2.conf</code> müssen folgende Zeilen eingefügt werden:
<pre class="brush:[plain]"># PHP5 CGI Integration
ScriptAlias /php5-cgi /usr/lib/cgi-bin/php5
Action php5-cgi /php5-cgi</pre>
</li>
<li>Jetzt ist es an der Zeit PHP5 für einen bestimmten Bereich oder einem VirtuellenHost zu aktivieren. Dies geschieht am besten in den Konfigurationsdateien für die verschiedenen Bereiche des Webservers. Hier in diesem Beispiel richte ich PHP5 für die Sub-Domain <code>php5.r-g-b.de</code> ein.<br />
Im Verzeichniss <code>/etc/apache2/sites-enabled/</code> liegen die Konfigurationsdateien die der Apache Webserver beim starten einliest. Hier empfiehlt es sich für die verschiedenen VirtuellenHosts je eine Konfiguration ab zu legen.<br />
Beispiel: <code>php5_rgb.conf</code></p>
<pre class="brush:[plain]">
   ServerName php5.r-g-b.de
   DocumentRoot /home/rgb/php5test
   DirectoryIndex index.php index.html index.htm

   UseCanonicalName off
   ServerSignature off

   # Verzeichniss Einstellungen
    &lt;Directory '/home/rgb/php5test'>
	AllowOverride All
	Options +FollowSymLinks -Indexes +Includes +MultiViews
        AddHandler php5-cgi .php
    &lt;/Directory>
</pre>
</li>
<li>Ist dies alles getan, muss der Apache Prozess die neue Konfiguration mittels des Befehls: <code>/etc/init.d/apache2 reload</code> einlesen. Das wars <img src='http://www.digidisaster.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li>Die Konfiguration kann nun mittels des PHP Kommandos <code>phpinfo()</code> überprüft werden. Dazu eine Datei mit dem Namen <code>phpinfo.php</code> und folgendem Inhalt in dem Bereich des Webservers den wir vorher für PHP5 konfiguriert haben ablegen und mittels des Browsers aufrufen. Nun sollte eine Status Seite des PHP Interpreters erscheinen. Diese Informiert uns über die aktuelle Konfiguration von PHP5. <a href="http://php5.r-g-b.de/phpinfo.php" target="_blank">Hier ein Beispiel.</a><br />
Inhalt von <code>phpinfo.php</code>:</p>
<pre class="brush:[php]">
&lt;?php
    phpinfo();
?>
</pre>
</li>
<li>Da der Interpreter in den meisten Fällen nicht ausreichen sollte, müssen wir noch benötigte Funktionen und Module für PHP5 nachinstallieren. In meinem Fall habe ich die Pakete <code>php5-mysql, php5-gd, php5-curl, php5-imagick, php5-imap, php5-mcrypt, php5-xcache, php5-xsl und php5-xmlrpc</code> instaliert.<br />
Der Befehl zum instalieren der Pakete ist immer der selbe. Nur der jeweilige Paketname muss ausgetauscht werden.  Um sich einen Überblick über die vorhandenen Pakete zu verschaffen gibt man: <code>apt-cache search php5</code> in der Kommandozeile ein und erhält eine Liste der gefundenen Pakete:</p>
<pre class="brush:[bash]">ServerXX:/# apt-cache search php5
cakephp - MVC rapid application development framework for PHP
jffnms - web-based Network Management System (NMS) for IP networks
libapache2-mod-php5 - server-side, HTML-embedded scripting language
(Apache 2 module)
libapache2-mod-php5filter - server-side, HTML-embedded scripting
language (apache 2 filter module)
libgv-php5 - Php5 bindings for graphviz
php-auth - PHP PEAR modules for creating an authentication system
php-codesniffer - tokenises PHP code and detects violations of a
defined set of coding standards
php-doc - Documentation for PHP5
php-imlib - PHP Imlib2 Extension
php-pear - PEAR - PHP Extension and Application Repository
php5 - server-side, HTML-embedded scripting language (metapackage)
php5-adodb - Extension optimising ADOdb database abstraction library
php5-auth-pam - A PHP5 extension for PAM authentication
php5-cgi - server-side, HTML-embedded scripting language (CGI binary)
php5-cli - command-line interpreter for the php5 scripting language
php5-common - Common files for packages built from the php5 source
php5-curl - CURL module for php5
php5-dbg - Debug symbols for PHP5
php5-dev - Files for PHP5 module development
php5-ffmpeg - ffmpeg support for php5
php5-gd - GD module for php5
php5-geoip - GeoIP module for php5
php5-gmp - GMP module for php5
php5-gpib - libgpib PHP5 bindings
php5-idn - PHP API for the IDNA library
php5-imagick - ImageMagick module for php5
php5-imap - IMAP module for php5
php5-interbase - interbase/firebird module for php5
php5-lasso - Library for Liberty Alliance and SAML protocols - PHP 5
bindings
php5-ldap - LDAP module for php5
php5-librdf - PHP5 language bindings for the Redland RDF library
php5-mapscript - php5-cgi module for MapServer
php5-mcrypt - MCrypt module for php5
php5-memcache - memcache extension module for PHP5
php5-mhash - MHASH module for php5
php5-ming - Ming module for php5
php5-mysql - MySQL module for php5
php5-odbc - ODBC module for php5
php5-pgsql - PostgreSQL module for php5
php5-ps - ps module for PHP 5
php5-pspell - pspell module for php5
php5-radius - PECL radius module for PHP 5
php5-recode - recode module for php5
php5-sasl - Cyrus SASL extension for PHP 5
php5-snmp - SNMP module for php5
php5-sqlite - SQLite module for php5
php5-sqlrelay - SQL Relay PHP API
php5-suhosin - advanced protection module for php5
php5-sybase - Sybase / MS SQL Server module for php5
php5-symfony1.0 - Open-Source PHP Web Framework
php5-tidy - tidy module for php5
php5-uuid - OSSP uuid module for php5
php5-xapian - Xapian search engine interface for PHP5
php5-xcache - Fast, stable PHP opcode cacher
php5-xdebug - Xdebug Module for PHP 5
php5-xmlrpc - XML-RPC module for php5
php5-xsl - XSL module for php5
phpunit - Unit testing suite for PHP5
libapache-mod-php5 - server-side, HTML-embedded scripting language
(apache 1.3 module)
php4-pear - PHP Extension and Application Repository (transitional
package)
ServerXX:/#</pre>
<p style="text-align: left;">Um ein Paket <em>(in diesem Fall php5-mysql)</em> zu instalieren gibt man folgenden Befehl ein:<br />
<code>apt-get install php5-mysql</code><br />
Dies wiederholt man solange bis man alle benötigten Pakete installiert hat. Nun kann man die Konfiguration wieder mit der Datei <code>phpinfo.php</code> überprüfen. Die installierten Module sollten nun auf der Statusseite von PHP5 aufgelistet sein.</li>
<li>Das wars! PHP5 ist nun installiert und so weit Lauffähig. <img src='http://www.digidisaster.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ol>
<p>Eure Erfahrung bitte in den Kommentaren posten.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.digidisaster.de/2009/02/19/php-4-php-5-auf-debian-4etch-installieren/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

