PHP kompilieren > Problem

Webslave

New Member
Hallo,

Ich wollte meine PHP-Version von 5.1.2 auf 5.2.6 updaten, hab mir gedacht runterladen, gleich Konfigurieren wie die alte Version (siehe phpinfo() ) und dann make & make install.
Geht zwar alles fehlerlos, doch die installierte PHP-Version bleibt die alte.

Die configure-Anweisung:
Code:
'./configure' '--prefix=/usr' '--datadir=/usr/share/php5' '--mandir=/usr/share/man' '--bindir=/usr/bin' '--with-libdir=lib' '--includedir=/usr/include' '--sysconfdir=/etc/php5/apache2' '--with-config-file-path=/etc/php5/apache2' '--with-config-file-scan-dir=/etc/php5/conf.d' '--with-exec-dir=/usr/lib/php5/bin' '--enable-magic-quotes' '--enable-libxml' '--enable-session' '--with-mm' '--with-pcre-regex' '--enable-xml' '--enable-simplexml' '--enable-spl' '--enable-safe-mode' '--enable-sigchild' '--disable-debug' '--enable-memory-limit' '--enable-inline-optimization' '--enable-zend-multibyte' '--disable-rpath' '--with-apxs2=/usr/sbin/apxs2' '--disable-all' '--disable-cli'

Was muss ich nun noch machen damit die alte Version ersetzt wird?

Vielen Dank & Grüße,
Webslave
 
Moin,
Apache neu starten und gegebenen Falls einmal nachschauen wohin die kompilierte Version hinkopiert wurde. Eventuell war das nicht das richtige Verzeichnis (per Hand dann ins richtige Verzeichnis kopieren).
 
Sorry hab vergessen zu schreiben das ich Apache natürlich neu gestartet hab.

Kann ich den Ordner unter dem PHP gespeichert werden soll gleich bei der konfig mit angeben?
Bzw. wo liegen die Quelldateien von PHP5 unter Suse?
Edit: in /usr/lib/php5/ ?
 
Last edited by a moderator:
So... mein make-install bringt folgendes:

Installing PHP SAPI module: apache2handler
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/lib/apr-1/build/libtool' libphp5.la /usr/lib/apache2
/usr/lib/apr-1/build/libtool --mode=install cp libphp5.la /usr/lib/apache2/
cp .libs/libphp5.so /usr/lib/apache2/libphp5.so
cp .libs/libphp5.lai /usr/lib/apache2/libphp5.la
libtool: install: warning: remember to run `libtool --finish /floh/php-5.2.6/libs'
chmod 755 /usr/lib/apache2/libphp5.so
activating php5
"php5" already present
Installing build environment: /usr/lib/php/build/
Installing header files: /usr/include/php/
Installing helper programs: /usr/bin/
program: phpize
program: php-config
Installing man pages: /usr/share/man/man1/
page: phpize.1
page: php-config.1
Installing ZIP headers: /usr/include/php/ext/zip/lib


Selbst wenn mein PHP woanders liegt als das alte bräuchte ich ja nur den Pfad in der Apache-Konfig ändern, oder?
 
Habs geschafft :) *freu*
Das Problem lag einfach darin das in der alten Installation das PHP als mod_php5.so vorhanden war und in der neuen Installation hieß das Modul libphp5.so ;) ...umbenannt und nun gehts :)
 
mhh... zu früh gefreut.
Garnix geht :(
Weiße Seiten kommen beim Aufruf... dabei ist die Konfiguration genau so wie bei der alten Version 5.1.2 ...mit Ausnahme von --enable-zip
 
Einfach mal so irgend eine aehnlich klingende Datei umbenennen, kann sich schon unguenstig auswirken ;)

Garnix geht
Das ist ine der schlechtesten Fehlerbeschreibungen.
Konkrete Fehlermeldungen ist schon angebracht.

Ich bin jetzt nicht mehr ganz so fitt in PHP Installieren, aber deine make install Ausgabe sagt:
/usr/lib/apache2/libphp5.so

Sieht so aus, als ob dein PHP dort hin gewandert ist.

Bzw. wo liegen die Quelldateien von PHP5 unter Suse?
Du meinst sicherlich die kompilierten Dateien. ;) Die Quelldaten hast du ja selber irgendwohin kopiert.
 
Naja ok es ging schon... also phpinfo usw. ließ sich aufrufen.
Allerdings war wohl irgendwo eine Inkompatibilität zum PHP-script.
Kann es sein das PHP5 entweder jeden kleinen oder garkeinen Fehler anzeigt?
Denn wenn ich display_errors auf on stelle kommen bei mir viele Fehler welche die Abarbeitung des script aber garnicht verhindern (würde das mal als unsauber programmiert bezeichnen) ...bei meinem PHP4 kommen nur kritische Fehler. Geht das bei PHP5 auch irgendwie einzustellen?
 
Denn wenn ich display_errors auf on stelle kommen bei mir viele Fehler welche die Abarbeitung des script aber garnicht verhindern (würde das mal als unsauber programmiert bezeichnen) ...bei meinem PHP4 kommen nur kritische Fehler. Geht das bei PHP5 auch irgendwie einzustellen?
display_error regelt nur, ob Meldungen gezeigt werde, oder nicht.

Um das ganze fein einzustellen, musst du am "level" drehen.

wenn ich display_errors auf on stelle kommen bei mir viele Fehler welche die Abarbeitung des script aber garnicht verhindern
Fuer gewohnlich sind das keine "error", sondern "notice".
 
Problem bei PHP kompilieren mit MySQL

Stimmt folgende configure-Anweisung auf einem Suse System:
--with-mysql=/usr/lib/mysql/
?
Also besser gesagt stimmt der Pfad?

Denn ich bekomme immer einen Error bzgl. MySQL beim kompilieren.
Error.log sagt:
Code:
configure:59313: checking for MySQL support
configure:59360: checking for specified location of the MySQL UNIX socket
configure:59418: checking for MySQL UNIX socket location
configure:59609: checking for mysql_close in -lmysqlclient
configure:59628: gcc -o conftest -g  -O0   conftest.c -lmysqlclient  -lz -lresolv -lm -ldl -lnsl  -lxml2 -lz -lm 1>&5
/usr/lib/gcc/i586-suse-linux/4.1.0/../../../../i586-suse-linux/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
configure: failed program was:
#line 59617 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char mysql_close();

int main() {
mysql_close()
; return 0; }
configure:59851: checking for mysql_error in -lmysqlclient
configure:59870: gcc -o conftest -g  -O0   -L/usr conftest.c -lmysqlclient  -lz
-lz -lresolv -lm -ldl -lnsl  -lxml2 -lz -lm 1>&5
/usr/lib/gcc/i586-suse-linux/4.1.0/../../../../i586-suse-linux/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status
configure: failed program was:
#line 59859 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error.  */
/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
char mysql_error();

int main() {
mysql_error()
; return 0; }

Kann einer daraus was lesen?
 
Es sieht so aus, als ob das mysql-devel-Paket nicht (richtig) installiert ist.
Reicht Dir das von SuSE mitgelieferte PHP 5.2.0 nicht aus?
 
Ich habe 5.1.2 vorinstalliert gehabt und bei diesem fehlen einige (viele) Lib`s die ich benötige.
Da kein PHP zum neu kompilieren vorhanden ist hab ich mir gleich die aktuellste Version geladen und versuche diese nun eben zu kompilieren/installieren.

Edit: Hab gerade mysql-devel von 4.* auf 5.0 geupdatet und nun hats geklappt ;)
Danke für den Hinweis @LinuxAdmin
 
Last edited by a moderator:
Mal wieder zu früh gefreut.
Kompilieren, usw. hat zwar geklappt aber gehe ich nun auf meine Seite wird wieder nur ein weißer Bildschirm angezeigt.
...dabei ist "display_errors" auf On gestellt :(
Jemand ne Idee?
 
Ich habe 5.1.2 vorinstalliert gehabt und bei diesem fehlen einige (viele) Lib`s die ich benötige.
SuSE packt die Pakete sehr modular. Daher musst Du dann php5-mysql und was Du sonst noch brauchst einzeln installieren. Dadurch kann man (wenn man will) nur genau das installieren, was man braucht -- für diejenigen die fast alles brauchen, bedeutet es etwas mehr Aufwand beim Auswählen. Normalerweise funktionieren die Pakete dafür aber auch ;)
 
Naja ich wär ja schonmal froh an was es meinen Seiten denn fehlt.
Denn irgendwie bekomme ich inzwischen auch garkein Fehler mehr angezeigt :(
...obwohl im Confixx > httpd-spezial display_errors auf on ist.
Denn auf allen Seiten wo "warscheinlich" ein Fatal Error angezeigt werden sollte bekomme ich nur noch weiße Ausgaben :(
 
Error_reporting und display_errors in der php.ini für diese Diagnose hoch drehen.
Und auch mal die Log Dateien kontrollieren.
 
Back
Top