Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[gelöst] php neukompilieren mit zlib Option

Alles rund um das Internet, Internet-Anwendungen (E-Mail, Surfen, Cloud usw.) und das Einrichten von Netzwerken einschl. VPN unter Linux

Moderator: Moderatoren

Benutzeravatar
Nucles
Newbie
Newbie
Beiträge: 19
Registriert: 22. Dez 2004, 15:23
Wohnort: Düsseldorf

[gelöst] php neukompilieren mit zlib Option

Beitrag von Nucles »

Hallo!

Ich habe ein großes Problem!
I hoste bei 1&1 und besitze da eigenen Server mit SuSE 9.1, Apache2, PHP 4.3.4, MySQL und Plesk 7.5 Reloaded als Konfigurationstool für den Server
Das Problem ist, dass im Auslieferungszustand wurde php ohne zlib Unterstützung kompiliert. Da ich aber ein CMS-System benutzen möchte, das ohne zlib nicht funktioniert, ist zlib Lebenswichtig!

Die Frage ist: kann man nachträglich PHP so neukompilieren, dass es keine Auswirkung auf Apache und auf das ganze System hat, aber zlib benutzt?

Für jeden Hinweis wäre ich sehr dankbar!
Benutzeravatar
Nucles
Newbie
Newbie
Beiträge: 19
Registriert: 22. Dez 2004, 15:23
Wohnort: Düsseldorf

Beitrag von Nucles »

villeicht kann man zlib auch ohne neukompilierung von php aktivieren?
Benutzeravatar
nbkr
Guru
Guru
Beiträge: 2857
Registriert: 10. Jul 2004, 15:47

Beitrag von nbkr »

PHP lässt sich auf zwei Arten kompilieren. Als Apachemodul und als CGI Version. Beide lassen sich neu kompilieren. Dann funktioniert natürlich das YaST update nicht mehr, bzw. es kann Schwierigkeiten geben. Ein Anleitungen wie man PHP als CGI kompiliert findet sich unter:

http://texte.benjaminfleckenstein.de/wissen
Kann gar nicht sein, ich bin gefürchtet Wald aus, Wald ein.
Benutzeravatar
Nucles
Newbie
Newbie
Beiträge: 19
Registriert: 22. Dez 2004, 15:23
Wohnort: Düsseldorf

Beitrag von Nucles »

ja, ok, yast habe ich nicht vor zu benutzen. Ich will nur nicht bei der neukompilation von php apache einstellungen beschädigen. Bei mir läuft php ohne cgi.
In deinem Link sind leider keine Infos über kompilation von php als apache als modul
Benutzeravatar
nbkr
Guru
Guru
Beiträge: 2857
Registriert: 10. Jul 2004, 15:47

Beitrag von nbkr »

Geht im Prinzip genauso - nur brauchst Du noch eine zusätzliche Option. --with-axirgendwas. Dann wird statt der CGI Version ein Modul erstellt. Such mal bei google nach PHP kompilation apache dann wirst Du sicher fündig.
Kann gar nicht sein, ich bin gefürchtet Wald aus, Wald ein.
Benutzeravatar
Nucles
Newbie
Newbie
Beiträge: 19
Registriert: 22. Dez 2004, 15:23
Wohnort: Düsseldorf

Beitrag von Nucles »

Danke nbkr für Deine Hinweise!

Wenn ich dich richtig verstanden habe kann man doch ein paar Optionen des Typs --with-irgendwas zu PHP hinfügen.
Zur Zeit sieht bei mir so aus:

Code: Alles auswählen

'./configure' '--prefix=/usr' '--datadir=/usr/share/php' '--mandir=/usr/share/man' '--bindir=/usr/bin' '--libdir=/usr/share' '--includedir=/usr/include' '--sysconfdir=/etc' '--with-_lib=lib' '--with-config-file-path=/etc' '--with-exec-dir=/usr/lib/php/bin' '--disable-debug' '--enable-inline-optimization' '--enable-memory-limit' '--enable-magic-quotes' '--enable-safe-mode' '--enable-sigchild' '--disable-ctype' '--disable-session' '--without-mysql' '--disable-cli' '--without-pear' '--with-openssl' '--with-apxs2=/usr/sbin/apxs2-prefork' 'i586-suse-linux'
wie Du siehst ist leider zlib nict dabei.
Ich verde mal bei google weiter Suchen
Benutzeravatar
nbkr
Guru
Guru
Beiträge: 2857
Registriert: 10. Jul 2004, 15:47

Beitrag von nbkr »

Du kannst einfach den gleichen String nehmen und ncoh "--with-zlib" dran hängen, dann sollte es gehen.
Kann gar nicht sein, ich bin gefürchtet Wald aus, Wald ein.
Benutzeravatar
Nucles
Newbie
Newbie
Beiträge: 19
Registriert: 22. Dez 2004, 15:23
Wohnort: Düsseldorf

Beitrag von Nucles »

also du meinst ich sollte zu dem String einfach --with-zlib hinfügen und das war's?
Das komischste ist, dass ich die datei "configure" auf meindem System nicht finden kann
Benutzeravatar
nbkr
Guru
Guru
Beiträge: 2857
Registriert: 10. Jul 2004, 15:47

Beitrag von nbkr »

Theoretisch sollte das so gehen, praktisch muss man es testen, nicht alle Optionen werden gehen, denn auf dem system müssen auch die entsprechenden Pakete installiert sein (with-zlib wird z.B. nicht gehen wenn keine zlib installiert ist). Die configure Datei wird von den PHP Sourcen mitgeliefert (die musst Du natürlich haben, sonst kannst Du das ja nicht neu kompilieren).
Kann gar nicht sein, ich bin gefürchtet Wald aus, Wald ein.
Benutzeravatar
Nucles
Newbie
Newbie
Beiträge: 19
Registriert: 22. Dez 2004, 15:23
Wohnort: Düsseldorf

Beitrag von Nucles »

das war natürlich dumm von mir, denn "configure" Datei wird doch mit Source-Code von php mitgeliefert...
Also, am besten denke ich mir gleichen Systemaufbau auf heimischen localhost mit Apache und php aufbauen, und da zu testen. Sonst glaube ich kann bei solchen kritischen Einstellungen viel schief gehen...
Benutzeravatar
nbkr
Guru
Guru
Beiträge: 2857
Registriert: 10. Jul 2004, 15:47

Beitrag von nbkr »

Nö, kann eigentlich nicht - die meisten Fehler entstehen beim ./configure bzw. beim make aufruf. Da kann noch nix passieren. Erst wenn "make install" läuft werden Dateien ins System kopiert.
Kann gar nicht sein, ich bin gefürchtet Wald aus, Wald ein.
Benutzeravatar
Nucles
Newbie
Newbie
Beiträge: 19
Registriert: 22. Dez 2004, 15:23
Wohnort: Düsseldorf

Beitrag von Nucles »

ja, aber um --with-zlib zu dem oben genannten String hinzufügen brauche ich ein Aufruf von ./configure aus dem Source Paket, danach ist php konfiguriert, aber nicht upgedatet. Beim "make" und anschließend "make install", kompiliere ich und installiere davor mit ./configure eingestellte Optionen.
Meine ich es richtig?
Benutzeravatar
nbkr
Guru
Guru
Beiträge: 2857
Registriert: 10. Jul 2004, 15:47

Beitrag von nbkr »

Ja, würde ich zustimmen.
Kann gar nicht sein, ich bin gefürchtet Wald aus, Wald ein.
Benutzeravatar
Nucles
Newbie
Newbie
Beiträge: 19
Registriert: 22. Dez 2004, 15:23
Wohnort: Düsseldorf

Beitrag von Nucles »

Es ist erstaunlich, aber bei der Ausführung von:

Code: Alles auswählen

'./configure' '--prefix=/usr' '--datadir=/usr/share/php' '--mandir=/usr/share/man' '--bindir=/usr/bin' '--libdir=/usr/share' '--includedir=/usr/include' '--sysconfdir=/etc' '--with-_lib=lib' '--with-config-file-path=/etc' '--with-exec-dir=/usr/lib/php/bin' '--disable-debug' '--enable-inline-optimization' '--enable-memory-limit' '--enable-magic-quotes' '--enable-safe-mode' '--enable-sigchild' '--disable-ctype' '--disable-session' '--without-mysql' '--disable-cli' '--without-pear' '--with-openssl' '--with-apxs2=/usr/sbin/apxs2-prefork' 'i586-suse-linux'
fehlt dem php 4.3.4 die Datei apxs2-prefork im Pfad /usr/sbin/
Es gibt in Wirklichkeit keine Datei auf dem Server mit dem oder ähnlichen Namen.

So wie ich es verstehe ist der apxs2 bei Apache für die Installation von Modulen verantwortlich.

Jetzt frage ich mich, wie haben die Leute von 1&1 meinen Server mit oben dargestallten Optionen installiert, wenn sie nachträglich nicht benutzt werden können. Oder schmeißen sie einfach einen Image drauf und war's das?

Für jeden Hinweis bin ich dankbar.
Benutzeravatar
nbkr
Guru
Guru
Beiträge: 2857
Registriert: 10. Jul 2004, 15:47

Beitrag von nbkr »

Die Leute von 1&1 schmeißen da images drauf. Die kompilieren nichts. Abgesehen davon hätten die ja das fertige (aber veraltete) RPM genommen. Wenn Du selbst kompilierst brauchst Du natrülich alle Pakete die PHP mit einbinden soll. Wenn Du apt hast kannst Du ja mal nach axps suchen vielleicht ist es da dabei, allerdings kann ich Dir bei dem Modul nicht wirklich helfen - brauchst Du das überhaupt als Modul?
Kann gar nicht sein, ich bin gefürchtet Wald aus, Wald ein.
Benutzeravatar
Nucles
Newbie
Newbie
Beiträge: 19
Registriert: 22. Dez 2004, 15:23
Wohnort: Düsseldorf

Beitrag von Nucles »

nbkr hat geschrieben:Die Leute von 1&1 schmeißen da images drauf. Die kompilieren nichts. Abgesehen davon hätten die ja das fertige (aber veraltete) RPM genommen. Wenn Du selbst kompilierst brauchst Du natrülich alle Pakete die PHP mit einbinden soll. Wenn Du apt hast kannst Du ja mal nach axps suchen vielleicht ist es da dabei, allerdings kann ich Dir bei dem Modul nicht wirklich helfen - brauchst Du das überhaupt als Modul?
Hallo nbkr!
Es ist unglaublich wie schnell und kompeten du auf meine Fragen reagierst. Ich danke dir dafür!

Also axps ist nicht dabei, hast du vielleicht apxs gemeint? Es ist gar nichts dabei der Art "*apxs*"...

Ich weiss nicht genau ob ich den Modul brauche. Weil der Server über Plesk als Config-Tool configuriert wird, ist es nicht auszuschließen, dass es mal irgend wann von diesem Tool gebraucht wird. So genau weiss ich das nicht...

Ich habe versucht php ohne apxs Unterstützung zu configurieren, allerding stollpert der ./configure bei anderer Option:

[/code]
Configuring extensions
checking for OpenSSL support... yes
checking for pkg-config... no
configure: error: Cannot find OpenSSL's <evp.h>

Code: Alles auswählen

Wie ich verstehe sind auf dem Server überhaupt keine Distributionen drauf...  :( 
Die muss ich alle wohl selber besorgen...
Was sagst Du dazu?
Benutzeravatar
nbkr
Guru
Guru
Beiträge: 2857
Registriert: 10. Jul 2004, 15:47

Beitrag von nbkr »

Nucles hat geschrieben: Hallo nbkr!
Es ist unglaublich wie schnell und kompeten du auf meine Fragen reagierst. Ich danke dir dafür!
Freut mich wenn ich helfen kann.
Also axps ist nicht dabei, hast du vielleicht apxs gemeint? Es ist gar nichts dabei der Art "*apxs*"...
Ja, meinte mit apxs - das ist normalerweise bei den Apache Quellen dabei. Die kannst Du von apache.or runterladen - allerdings muss das dann die gleiche Version sein wie Du installiert hast.
Ich weiss nicht genau ob ich den Modul brauche. Weil der Server über Plesk als Config-Tool configuriert wird, ist es nicht auszuschließen, dass es mal irgend wann von diesem Tool gebraucht wird. So genau weiss ich das nicht...
Also das Modul hat den Vorteil, dass man auf .htaccess Passwörter zugreifen kann. In der Regel braucht man das aber nicht. Einzig manche Verwaltungstools (z.B. Confixx) setzen das voraus. Bei Plesk weiß ich nicht ob es das voraussetzt, ich kenne Plesk nicht.

Es gibt theoretisch die Möglichkeit sowohl das aktuelle Modul für Plesk als auch die CGI Version für den Rest einzusetzen. Dann muss man die httpd.conf entsprechend verändern. Die Virtualhosteinträge müssen dann das PHP Modul entfernt bekommen (die genaue Syntax kenne ich im Moment nicht auswendig) und dafür den Eintrag aus den HowTo vom Anfang.
Ich habe versucht php ohne apxs Unterstützung zu configurieren, allerding stollpert der ./configure bei anderer Option:

Code: Alles auswählen

Configuring extensions
checking for OpenSSL support... yes
checking for pkg-config... no
configure: error: Cannot find OpenSSL's <evp.h>

Wie ich verstehe sind auf dem Server überhaupt keine Distributionen drauf... :(
Die muss ich alle wohl selber besorgen...
Was sagst Du dazu?
Die 1&1 Images enthalten wohl die Sourcen für die Pakete nicht. Mit Apt kann man auch die Sourcen nachninstallieren. Ansonsten kann man die auch herunterladen und den --with-ssl Schalter anpassen das er dann die neuen Sourcen verwendet. Das wäre dann in etwa --with-ssl=/pfad/zu/den/sourcen.h
Kann gar nicht sein, ich bin gefürchtet Wald aus, Wald ein.
Benutzeravatar
Nucles
Newbie
Newbie
Beiträge: 19
Registriert: 22. Dez 2004, 15:23
Wohnort: Düsseldorf

Beitrag von Nucles »

Hallo nbkr!

OpenSSL habe ich bereits nachträglich installiert. apxs konnte ich als Source nicht finden. Wahrscheinlich ist es direkt bei Apache2 integriert.
die Konfiguration mit

Code: Alles auswählen

./configure ... --with-openssl --with-zlib-dir=/usr/local/lib ...
, allerdings ohne

Code: Alles auswählen

--with-apxs2=/usr/sbin/apxs2-prefork
durchgeführt und dabei keine Fehlermeldung, dafür ein WARNING erhalten

Code: Alles auswählen

You will be compiling the CGI version of PHP without any redirection checking...
So genau verstahe ich das Problem nicht. Ich habe nirgendswo implizit angegeben, dass ich php als CGI kompilieren will. Bei google konnte ich dazu keine Hilfe finden.

Hast Du vielleicht eine Ahnung, was diese Warnung anstoßen konnte?
Vielleich sollte man vor dem make und make install ein Backup des Systems durchführen, damit man auf der sicheren Seite ist?

Mit freundlichem Gruß
Dennis
Benutzeravatar
nbkr
Guru
Guru
Beiträge: 2857
Registriert: 10. Jul 2004, 15:47

Beitrag von nbkr »

Nucles hat geschrieben:

Code: Alles auswählen

You will be compiling the CGI version of PHP without any redirection checking...
So genau verstahe ich das Problem nicht. Ich habe nirgendswo implizit angegeben, dass ich php als CGI kompilieren will. Bei google konnte ich dazu keine Hilfe finden.

Hast Du vielleicht eine Ahnung, was diese Warnung anstoßen konnte?
Vielleich sollte man vor dem make und make install ein Backup des Systems durchführen, damit man auf der sicheren Seite ist?
Wenn man PHP als CGI (und das tut man indem man das --with-axirgendwas weglässt) kompiliert entsteht ein echtes Binary - also eine ausführbare Datei. Diese sollte aus sicherheitsgründen nicht ohne Argument vom Apache aufgerufen werden (also ein besucher darf nicht einfach so php ausführen, ohne dass er eine PHP Seite aufgerufen hat). Das lässt sich mit der Option --enable-force-cgi-redirect mit einbauen. Wenn Du das deinem ./configure String hinzufügst solltest Du keine Warnung mehr erhalten und make und make install sollten durchlaufen.

Ein Backup des Systems ist eigentlich nicht notwendig ABER kann nicht schaden!
Kann gar nicht sein, ich bin gefürchtet Wald aus, Wald ein.
Benutzeravatar
Nucles
Newbie
Newbie
Beiträge: 19
Registriert: 22. Dez 2004, 15:23
Wohnort: Düsseldorf

Beitrag von Nucles »

mit "--enable-force-cgi-redirect" habe ich wie Du gesagt hast KEIN WARNING mehr!!!

Ich gehe jetzt so vor, dass ich ein Backup des Systems durchführe und danach OHNE apxs2-Untestützung...

Code: Alles auswählen

-with-apxs2=/usr/sbin/apxs2-prefork
php kompiliere und anschließend linke.

Ich denke bei solchen Systemarbeiten muss man geduldig sein, vor allem wenn man sowas nicht oft macht.
Antworten