Andreas Korthaus: php4 und php5 parallel installieren

Beitrag lesen

Hallo!

Man kann nicht 2 php-Module laden innerhalb einer Installation.

Doch, das kann man. Mir ist das aus Versehen schon passiert, als ich vergessen hatte, vor einer Zeile das Kommentarzeichen anzubringen.

Hm, ich dachte immer das sei nicht möglich, da beide Module intern denselben Typ verwenden:

AddType application/x-httpd-php .php

AFAIK lässt sich das nur mit PHP-CGI verändern.

Also ist die Folgerung entweder beide php-Versionen als cgi zu laden oder eine als Modul und eine als cgi.

Diese Alternative erscheint mir nur vordergründig als reizvoll, weil ich nach wie vor nicht nachvollziehen kann, was du für Unterschiede zwischen *.php4 und *.php5 machst.

ich schon.

Mir ist auch kein einziger Provider bekannt, der (ausgenommen *.php3) solche Versionsnummern für wichtig hält

Ich kenne auch keinen Provider der überhaupt PHP5 unterstützt.

Nun habe ich also 2 verschiedene 'AddType' angefügt: einen für die php-Dateien und einen für die php5-Dateien.

Was inkonsequent geschehen ist. Leichter machst du es dir sowieso, wenn du die neuen MIME-Typen gleich in "mime.types" einträgst, das erspart dir diese "AddType"-Zeile in der httpd.conf.

Ich persönlich finde das unübersichtlicher.

Da ich meine php-Skripte (welche auch die alten php4-xml-Funktionen verwenden) nun objektorientiert (und mit neuen xml-Funktionen) umbauen möchte, ist die Unterscheidung zwingend nötig.

Nein, das sehe ich absolut anders. Es ist sehr zu begrüßen, wenn du Prinzipien der OOP befolgen willst, aber das hat mit deiner "PHP-Version" überhaupt nichts zu tun.

Hm? Zum einen gibt es Änderungen an bestehenden Funktionen die nicht abwärtskompatibel sind, darüber hinaus gibt es einige Module (z.B. dom, simplexml, sqlite, soap, spl...) die schlicht und ergreifend bei PHP4 nicht dabei sind, einige wenige davon gibt es in PECL auch für PHP4, sind aber nicht im Standardumfang vorhanden.
Dazu kommen die Neuerungen der ZE2, die ohne Ende nicht kompatible Änderungen enthält, und teilweise das OOP-Verhalten verändert.

Siehe: http://www.zend.com/php5/

Es sollte mit recht wenig Aufwand möglich sein Scripte von PHP4 unter PHP5 laufen zu lassen, aber darum geht es Bjoern ja nicht wenn ich ihn richtig verstanden habe. Er will seine Scripte nach und nach so umschreiben, dass sie von den neuen, nicht PHP4-kompatiblen Features von PHP5 Gebrauch machen, was ich sehr gut verstehen und nur unterstützen kann.
Und hierfür finde ich seine Umsetzungs-Idee auch geeignet.

Prinzipiell kannst du dir natürlich auch auf Windows mehrere Apaches einrichten resp. konfigurieren. Setze beispielsweise einen Apache auf port 12345 und einen anderen auf port 23456. Das geht. Dann kann einer eben *.php4 und der andere kann *.php5.

Ich hatte vor einigen Tagen ja folgendes Posting zu diesem Thema geschrieben: </archiv/2004/7/86012/#m507953>

Das ist meiner Meinung aber eher dafür geeignet, größere Projekte auf PHP5-Tauglichkeit zu testen. Bjoern will aber einzelne Scripte mit Hilfe der neuen PHP5 Features "refactoren".

Schreib deine Scripts alle so, daß sie mit PHP5 objektorientiert laufen, dann hast du das Problem, das dich im Moment zu beschäftigen scheint, nicht mehr

Hm? Es gibt Scripte dessen OOP mit PHP4 aber nicht mit PHP5 funktioniert, und anders herum. Außerdem sind die Scripte ja bereits vorhanden.

und wir können uns allenfalls darüber unterhalten, ob auf einer Windows-Kiste überhaupt die "Modulvariante" sinnvoll und effektiv eingesetzt werden kann. Meines Erachtens kann sie das nicht.

Jepp. Genausowenig wie auf Linux mit dem Worker-MPM des Apache2.

@Bjoern: siehe hier für ein paar Ideen: http://www.sitepoint.com/blog-post-view.php?id=159852

Was steht denn genau in der Error-Log des Apachen? Auch neu gestartet...?

Grüße
Andreas

--
SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/