php4 & php5 zusammen!

mio

New Member
Hallo Leute

würde gerne php4 & 5 zusammen einsetzen

SUSE 9.3 mit Plesk 8.0 - php4.3.10

1. Versuch - Komplett falsch gemacht habe php4 überschrieben :eek:
Server neu aufgesetzt wieder mit php4.3.10 daher ne Menge Projekte laufen und ich jetzt noch nicht komplett auf php5 umstellen möchte!

2. Versuch - Alles ohne Probleme durchgelaufen (php-5.2.5)

Code:
./configure --prefix=/usr/local/php5 --datadir=/usr/share/php5 --libdir=/usr/share/php5 --with-config-file-path=/etc/php5 --with-exec-dir=/usr/lib/php5/bin --enable-memory-limit --enable-force-cgi-redirect --enable-track-vars --with-mysql --without-pear --enable-session --without-sqlite --enable-exif

dann make & make install

Problem war --bindir=/usr/bin/php5 was ich eingentlich beim 1. Versuch mit genommen habe. Nur bekomme, wenn es in der ./configure steht angezeigt dass da (=/usr/bin/) eine Datei liegt mit dem Namen php5 und daher error...kann keinen Ordner php5 erstellen. Die Datei habe ich nicht erstellt, keine Ahnung wie die da hin kommt wenn ich nur php4 drauf habe und nie was anderes gemacht habe??
Kann dass der Fehler sein warum es nicht funzt:confused:

Nun gut nachdem make install habe ich in der httpd.conf folgendes eingetragen:

Code:
<Directory "/usr/bin/php5">
AllowOverride None
Options +ExecCGI +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
ScriptAlias /php5rocks /usr/bin/php5
Action php5-cgi /php5rocks/php
AddType php5-cgi .php5

bekomme ab dann ein 403 Forbidden beim aufruf der phpinfo.php5

ich komme einfach nicht weiter. Jetzt habe ich es schon geschafft php5 zusammen mit php4 und trotz allem läuft es nicht. Auch in der error_log nichts!

Das was mir aber aufgefallen ist, wenn ich php -v eingebe kommt:

PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php/extensions/zip.so' - /usr/lib/php/extensions/zip.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 4.3.10 (cli) (built: Nov 7 2006 14:25:22)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies

zip.so ???

was ich komisch finde, steht doch nichts in der httpd.conf von wegen
extensions=zip.so

Alles Mist. Ich komme einfach nicht weiter. Mensch, lasse nich nach aber das ist echt heftig, würde mich über jede hilfe riesig freuen!

gruss
mio
 
Last edited by a moderator:
Datei liegt mit dem Namen php5 und daher error...kann keinen Ordner php5 erstellen. Die Datei habe ich nicht erstellt, keine Ahnung wie die da hin kommt
Das sagt, wie die Datei da hin kommt:
Code:
rpm -qf /usr/bin/php5
Du willst aber eigentlich, dass das Binary /usr/bin/php5 ist und nicht /usr/bin/php5/php oder so. Also ist das Bindir /usr/bin, nicht /usr/bin/php5

Du solltest dir mal rpmbuild angucken. Da installiert das make-install in ein pseudo-root und packaged die so angelegten Files in ein RPM.
Vor dem Packagen kannst du dann die php-binaries in php5 php5-cgi u.s.w. umbenennen - das SPEC-File ist an den Stellen fast wie ein Shell-Script.
Danach wacht rpm bei der Installation, dass du nichts von php4 überschreibst. (Es dürfen nicht beide Pakete php heißen - das für php5 musst du dann entsprechend in php5 umbenennen)

BTW: Nachdem php4 jetzt ausläuft und nur noch php5 supportet wird, solltest du überlegen, ob du nicht php5 "unverbogen" installieren willst und php4 unter geänderten Namen. Das macht es einfacher, wenn du alle Projekte auf php5 portiert hast.
 
Hi

Du willst aber eigentlich, dass das Binary /usr/bin/php5 ist und nicht /usr/bin/php5/php oder so. Also ist das Bindir /usr/bin, nicht /usr/bin/php5

aber will php5 zusammen mit php4 und wenn ich doch /usr/bin in die ./configure packe dann werden doch die daten in /usr/bin überschrieben oder sehe ich weas komplett falsch:confused:

Ansonten würde ich jetzt die /usr/bin/php5 löschen:
(php5-5.0.3-14.32) sehr komisch??

dann würde ich:

PHP:
./configure --prefix=/usr/local/php5 --datadir=/usr/share/php5 --libdir=/usr/share/php5 --bindir=/usr/bin/php5 --with-config-file-path=/etc/php5 --with-exec-dir=/usr/lib/php5/bin --enable-memory-limit --enable-force-cgi-redirect --enable-track-vars --with-mysql --without-pear --enable-session --without-sqlite --enable-exif

oder (ohne --bindir=/usr/bin/php5 )

PHP:
./configure --prefix=/usr/local/php5 --datadir=/usr/share/php5 --libdir=/usr/share/php5 --bindir=/usr/bin --with-config-file-path=/etc/php5 --with-exec-dir=/usr/lib/php5/bin --enable-memory-limit --enable-force-cgi-redirect --enable-track-vars --with-mysql --without-pear --enable-session --without-sqlite --enable-exif

das verstehe ich leider nicht

Vor dem Packagen kannst du dann die php-binaries in php5 php5-cgi u.s.w. umbenennen - das SPEC-File ist an den Stellen fast wie ein Shell-Script.
Danach wacht rpm bei der Installation, dass du nichts von php4 überschreibst. (Es dürfen nicht beide Pakete php heißen - das für php5 musst du dann entsprechend in php5 umbenennen)

ist es nicht einfacher da make clean & make - make install erneut alles durchlaufen zu lassen?
Aber da komme ich nicht weiter :eek:

BTW: Nachdem php4 jetzt ausläuft und nur noch php5 supportet wird, solltest du überlegen, ob du nicht php5 "unverbogen" installieren willst und php4 unter geänderten Namen. Das macht es einfacher, wenn du alle Projekte auf php5 portiert hast.

ja wenn :D dann klar nächstes Jahr werde ich da ran...aber das passt dieses Jahr nicht und habe ein script was nur mit php5 läuft, daher das ganze jetzt....

Gruss
mio
 
(php5-5.0.3-14.32) sehr komisch??
Gibt es evtl. sogar ein php5 für deine Dist, das sich mit php4 verträgt? Ist das evtl. installiert?

ist es nicht einfacher da make clean & make - make install erneut alles durchlaufen zu lassen?
Wenn du dir rpmbuild anschaust, wirst du sehen, was ich meine.
Du würdest in dem von mir beschriebenen Fall die libs u.s.w. wie in deinem configure nach /usr/lib/php5, /usr/share/php5 u.s.w. legen und nach dem make install in das pseudo-root /usr/bin/<xyz> umbenennen, bevor es gepackaged wird.

In dem Fall beschützt dich rpm bei der Installation dann auch vor Überschreiben - was make install nicht tut.
 
Hi

Gibt es evtl. sogar ein php5 für deine Dist, das sich mit php4 verträgt? Ist das evtl. installiert?

ja so ist es. Raffe ich nicht. Wenn ich per yast schaue dann steht jetzt auf einmal php5 installiert.

Provides: php, zend, php-xml, php-spl, php-simplexml, php-session, php-pcre, php5 = 5.0.3-14.32

Verstehe nicht wie es dazu kommt dass php5 schon drauf ist.
Oder ist das jetzt die Installation welche ich gemacht habe und dann wird auch über yast- i php5 angezeigt. Also blicke nicht mehr durch. Zumindest wird angezeigt dass php5 drauf ist.

whereis php5 dann kommt

php5: /usr/bin/php5 /etc/php5 /usr/lib/php5 /usr/local/php5 /usr/share/php5 /opt/php51/bin/php5 /usr/share/man/man1/php5.1.gz

wenn ich php -v

dann kommt

PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php/extensions/zip.so' - /usr/lib/php/extensions/zip.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 4.3.10 (cli) (built: Nov 7 2006 14:25:22)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies

Wenn du dir rpmbuild anschaust, wirst du sehen, was ich meine.
Du würdest in dem von mir beschriebenen Fall die libs u.s.w. wie in deinem configure nach /usr/lib/php5, /usr/share/php5 u.s.w. legen und nach dem make install in das pseudo-root /usr/bin/<xyz> umbenennen, bevor es gepackaged wird.

In dem Fall beschützt dich rpm bei der Installation dann auch vor Überschreiben - was make install nicht tut.

Ja nur wenn ich mit dem vi editor mir die rpmbuild anschaue sehe die den Wald vor lauter Bäumen nicht mehr :eek:

Was passiert denn wenn ich per yast php5 wieder runter haue dann erneut
./configure und make - make install

gruss
mio
 
php4 & php5

Hat sich erledigt. Vielen Dank für die Hilfe!
Habe nun php5 alleine laufen. Was meine Projekte angeht, keine Probleme ;) bisher :p

Genial, vielen Dank!

Gruss
mio
 
Back
Top