PHP Update bei Redhat

PHP Update bei Redhat

am 24.09.2004 22:41:03 von gilmoure

ich habe auf einem Rootserver von Schlund Linux Redhat 9 installiert.
Hierbei ist die PHP Version 4.22.
Nun möchte ich gerne updaten, weiß aber nicht genau wie ich vorgehen soll.
Da es von Redhat scheinbar kein aktuelleres RPM gibt, müsste ich selber
compilieren. Muss ich dafür erst das alte PHP entfernen oder kann ich
irgendwie darüber installieren?

Auch ist PHP als Modul in Apache eingebunden. Muss ich dann nach dem
Update Apache auch neu installieren?

Ich hoffe es kann mir jemand einen Tip geben.

--
Gruß
Günter

Re: PHP Update bei Redhat

am 27.09.2004 21:32:47 von Torsten Stauder

Günter Bertels wrote:
> ich habe auf einem Rootserver von Schlund Linux Redhat 9 installiert.
> Hierbei ist die PHP Version 4.22.
> Nun möchte ich gerne updaten, weiß aber nicht genau wie ich vorgehen soll.
> Da es von Redhat scheinbar kein aktuelleres RPM gibt, müsste ich selber
> compilieren. Muss ich dafür erst das alte PHP entfernen oder kann ich
> irgendwie darüber installieren?
>
> Auch ist PHP als Modul in Apache eingebunden. Muss ich dann nach dem
> Update Apache auch neu installieren?
>
> Ich hoffe es kann mir jemand einen Tip geben.
>
HI!

Generell empfieht es sich, den alten Kram zu entfernen, weil man sonst potentiell damit durcheinander kommt.
Zur Installation: Es gibt 3 Arten, wie man PHP in Apache laufen lassen kann:

a) dynamisches Modul (dso)
b) fest einkompiliert
c) als CGI

Im ersten Fall (warscheinlich wird dies bei dir so sein), mußt du Apache nicht neu installieren. In diesem Fall langt PHP. Sollte es fest
einkompiliert sein, dann muß auf jeden Fall auch Apache neu kompiliert werden. Ich geh davon aus, dass du es nicht als CGI laufen hast.

Allerdings kannst du den Apache im Prinzip auch gleich mitmachen - ist keine große Sache vom Aufhand her. PHP ist um einiges schwerer zu
kompilieren mit entsprechendem Support:

Hinweis: Meine Schilderungen beziehen sich aussschließlich auf Apache 1.3.x - ich hab zugegebenermaßen keine Ahnung, welche Möglichkeiten
man dort hat.

Re: PHP Update bei Redhat

am 28.09.2004 07:28:39 von gilmoure

> Generell empfieht es sich, den alten Kram zu entfernen,

Das sehe ich eigentlich auch so.
Allerdings habe ich au dem System folgende Packete installiert
php-pgsql-4.2.2-17.2
phpBook-1.50-rh9.build71040916.21
php-4.2.2-17.2
php-mysql-4.2.2-17.2
phpBB-2.0.8a-rh9.build71040916.21
php-imap-4.2.2-17.2


Jetz weiß ich natürlich nicht ob ich alle entfernen muss, da das
compilierte PHP alles neu mitbringt oder ob ich einige davon behalten muss.

> a) dynamisches Modul (dso)

Woran erkenn ich ob PHP als dynamisches Modul installiert ist


--
Gruß Günter

Re: PHP Update bei Redhat

am 28.09.2004 15:24:04 von Torsten Stauder

Günter Bertels wrote:
>> Generell empfieht es sich, den alten Kram zu entfernen,
>
>
> Das sehe ich eigentlich auch so.
> Allerdings habe ich au dem System folgende Packete installiert
> php-pgsql-4.2.2-17.2
> phpBook-1.50-rh9.build71040916.21
Hat nix direkt mit PHP zu tun.
> php-4.2.2-17.2
> php-mysql-4.2.2-17.2
> phpBB-2.0.8a-rh9.build71040916.21
Hat auch nix direkt mit PHP zu tun.
> php-imap-4.2.2-17.2

Die restlichen Module, unter die ich nix geschrieben habe, sind modulare Teile von PHP. Die mußt du entsprechend neu kompilieren, wenn du
den Support später auch noch willst.
>
>
> Jetz weiß ich natürlich nicht ob ich alle entfernen muss, da das
> compilierte PHP alles neu mitbringt oder ob ich einige davon behalten muss.
Also: alles wo 4.2.2 drinsteht, ist zu löschen. Mitbringen an sich ist so nicht richtig: Du mußt die für jeden extra Support auch mit
einkompilieren. Das bringt PHP nicht "einfach so" mit. D.h. du mußt für alles, was du haben willst an Support, auch die entsprechenden
Header-Files (include) und libs (lib) installierst. Nimm dir zum Beispiel mal das .rpm von mysql - und schau mal rein, was da so für Files
drin sind. Das geht übrigens recht einfach mit dem midnight commander. Du wirst sehen, dass dort u.a. die besagten Header (/usr/include) und
Libs (/usr/lib) drin sind. Und genau die werden auch für das Kompilieren benötigt. D.h. wenn du z.B. imap, mysql, gdlib, zlib usw Support
willst, dann müssen auch all diese Pakete installiert sein. Bei Suse hat man beispielsweise etwas derartiges nochmal getrennt: Dort gibt es
dann z.B. ein mysql und ein mysql-devel Paket. Im devel-Paket liegen dann jeweils die Sachen (header + libs), die man für die Entwicklung
benötigt. Ich hab keine Ahnung, wie das bei Red Hat gelöst ist - deswegen schreib ich dir das. Ich selbst nutze Slackware 10 (Umsteiger von
Suse).

Man kann das Ganze natürlich auch noch weiter treiben (wie ich das gemacht hab) und wirklich alles selbst kompilieren. Das ergibt dann halt
nen riesen Rattenschwanz. Für PHP brauchst du zB myqsl (wenn du's willst), für mysql brauchst du wiederrum andre Sachen und für diese dann
evtl. wieder welche :-) Und das Dumme ist: Kompilierst du die unteren Ebenen falsch (fehlender Support), dann funzt oben nix so wie's soll.

Das kann dann durchaus mal 1-2 Wochen dauern bis das alles geht, denn wenn es kompiliert ist (und dafür muß es erstmal richtig und mit
entsprechendem Support kompiliert werden) will es ja auch noch konf. werden. Und nicht selten merkt man dann bei der Konfiguration, dass man
ja eigentlich was vergessen hat und dann geht das Spiel von vorne wieder los :-) Daher wirds am Anfang wohl einfacher sein, wenn du dich
einfach auf die rpms und deren header/libs verlässt und daraus php kompilierst.

Ich will dir nicht den Mut nehmen - ich will dir nur sagen, was dich erwartet :-) Aber das wirst du spätestens sehen, wenn du die
php-Quellen entpackt und "./configure --help" eingegeben hast.
>
>> a) dynamisches Modul (dso)
>
>
> Woran erkenn ich ob PHP als dynamisches Modul installiert ist
Es steht ein solcher Eintrag in der httpd.conf:
LoadModule php4_module libexec/libphp4.so

dso = dynamic shared object (sollte ich mich täuschen, korrigiere man mich bitte). D.h. Apache bietet Support für all die Module, die in der
httpd.conf eingetragen sind, lädt sie aber nur in den Kern, wenn sie auch benötigt werden. Es gibt nur mindestens genau ein Modul, welches
zwingend in Apache einkompiliert werden muß und das ist das Modul "so". Wie gesagt: Ich gehe davon aus, dass Red Hat apache entsprechend so
schon kompiliert hat. Ansonsten mußt du es halt selbst tun :-)

Re: PHP Update bei Redhat

am 28.09.2004 20:02:24 von gilmoure

danke für deine ausführliche Antwort.
Ich denke das bringt mich erst mal weiter.
Ich habe bereits vor 5 jahren schonmal sowas gemacht. Kann mich noch
sehr gut daran erinnern wie verzweifelt ich war als ich versuchte
Apache, Tomcat, PHP und MySQL unter Debian zu compilieren.
Hat aber dann irgendwann doch geklappt.
Leider habe ich seit dem kein Linux mehr zu sehen bekommen (falsche
Firma). Aber ich werde mich da schon rein fummeln.

--
Gruß Günter

Re: PHP Update bei Redhat

am 28.09.2004 23:48:35 von Torsten Stauder

Günter Bertels wrote:
> danke für deine ausführliche Antwort.
> Ich denke das bringt mich erst mal weiter.
> Ich habe bereits vor 5 jahren schonmal sowas gemacht. Kann mich noch
> sehr gut daran erinnern wie verzweifelt ich war als ich versuchte
> Apache, Tomcat, PHP und MySQL unter Debian zu compilieren.
> Hat aber dann irgendwann doch geklappt.
> Leider habe ich seit dem kein Linux mehr zu sehen bekommen (falsche
> Firma). Aber ich werde mich da schon rein fummeln.
>
Unter RedHat hast du da generell schon ziemlich viel Paket-Support. Von daher mußt du dann auch ohnehin nicht alle selbst kompilieren. Ich
wollte das mit Slackware halt nicht anders :-)

Schreib' ne Mail, wenn du noch Fragen hast.