Andreas Korthaus: php4 und php5 parallel installieren

Beitrag lesen

Hi Bjoern!

@Bjoern: siehe hier für ein paar Ideen: http://www.sitepoint.com/blog-post-view.php?id=159852
Leider finde ich da nicht genau das, was ich suche. Sie eröffnen einfach einen "php5-Port" oder ein solches Verzeichnis.
Da ich aber die Scripts wirklich einzeln umbauen möchte, sollten immer php4- und php5-Skripte in einem Verzeichnis liegen.

Dann lass das mit dem Port und Verzeichnis und unterscheide lediglich anhand der Endung.

Was steht denn genau in der Error-Log des Apachen? Auch neu gestartet...?
Folgende Zeile steht in meinem Apache-Error-Log:
  [Tue Aug 03 19:14:23 2004] [error] [client 127.0.0.1] Invalid URI in request GET /phpinfo.php5 HTTP/1.1
Die Datei gibt's aber. Wenn ich die "*.php5"-Dateien mit dem php4-Modul interpretieren lasse, funktioniert es auch.

Seltsam. Hast Du mal php ein logfile erstellen lassen? Gibt es eine Einstellung in der php.ini. Was wird hier reingeschrieben?

Hm, kann es sein dass Du viele Extensions lädst, so dass PHP evtl. Konflikte mit den DLLs von PHP4 und PHP5 bekommt?

An Deiner Stelle würde ich erstmal alle Extension in der php.ini deaktivieren. Dann würde ich mal in das Verzeichnis wechseln, wo Deine php.exe bzw. php-cgi.exe liegt, und da mal "php-cgi -i" ausführen. Wenn eine Art phpinfo-Ausgabe erfolgt, dann läuft php5 grundsätzlich.

Evtl. würde ich es auch mal mit der php.exe in der httpd.conf versuchen.

die install.txt von PHP 5 schlägt folgendes vor:

ScriptAlias /php/ "c:/php/"
   AddType application/x-httpd-php .php
   Action application/x-httpd-php "/php/php.exe"

Vielleicht ganz stupide das PHP5 Archiv nach c:\php entpacken und obige Syntax verwenden, nur eben mit "php5" also sowas

ScriptAlias /php/ "c:/php/"
   AddType application/x-httpd-php5 .php5
   Action application/x-httpd-php5 "/php/php.exe"

Naja, unter Windows helfen solche Sachen manchmal ;-)

Server neu starten nicht vergessen. Evtl. würde ich testweise auch mal die derzeitige php.ini temporär umbenennen, und die php.ini-dist als php.ini dahin kopieren, um wirklich nah an den Standard-Einstellungen zu sein. Nur das Loggen in PHP würde ich dann mal versuchen.

Falls es an der php.ini, bzw. den DLLs liegt (was ich eigentlich nicht so richtig glauben kann), könntest Du mit http://de3.php.net/manual/de/configuration.changes.php ein alternatives Extension-Verzeichnis für PHP4-Scripte definieren - jedenfalls müsste das theoretisch funktionieren wenn PHP4 als Modul läuft. Du könntest vorübergehend das PHP4 Modul testweise auch mal komplett deaktivieren...

Wenn Du für PHP5 allerdings andere Module laden willst, als für PHP4, wird es IMHO recht schwierig, das ging vermutlich nur über eine 2. Apache-Instanz, könntest Du per mod_proxy dazu bewegen dass beide auf einem Port erreichbar sind, und Requests an .php5-Scripte an einen anderen Apache, leiten. Hm, wenn Du Glück hast kann man dem PHP-Binary per CGI auch den Pfad zur Konfigurations-Datei übergeben, aber das weiß ich nicht.

So nebenbei: Mein Provider (hostpoint.ch) unterstützt php5 bereits. Man muss ihm halt mitteilen, was man gerne haben möchte.

Oh! Naja, ich denke es ist noch zu früh das produktiv einzusetzen, es gibt noch verschiedene Probleme, z.B. mit Basic Auth. Dieses und einige andere Probleme werden in 5.0.1 behoben sein, soll AFAIK in den nächsten Tagen rauskommen. Aber ich denke in wenigen Monaten kann man das nach ausgiebigen Tests durchaus riskieren.

Grüße
Andreas

--
SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/