Fehler beim kompilieren (make: *** [sapi/cli/php] Error 1)

misterx01

New Member
Hallo an alle,

ich brauche eure Hilfe und zwar wollte ich ein neues php-4.4.4 Modul kompilieren und habe folgende Fehler bekommen (Debian Server)

Code:
-lcurl -lidn -lssl -lcrypto -ldl -lssl -lcrypto -ldl -lz -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lcrypt -lcrypt  -o sapi/cli/php
ext/mysql/libmysql/my_tempnam.o(.text+0x60): In function `my_tempnam':
/root/php-4.4.4/ext/mysql/libmysql/my_tempnam.c:115: warning: the use of `tempnam' is dangerous, better use `mkstemp'
/usr/lib/libc_nonshared.a(elf-init.oS)(.text.__i686.get_pc_thunk.bx+0x0): In function `__i686.get_pc_thunk.bx':
: multiple definition of `__i686.get_pc_thunk.bx'
ext/openssl/openssl.o(.gnu.linkonce.t.__i686.get_pc_thunk.bx+0x0):/root/php-4.4.4/ext/openssl/openssl.c:142: first defined here
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
server:~/php-4.4.4#

Habe das openssl 0.9.7e-3sarge4 Package laufen und nebenbei noch libssl 0.9.8 welches ich nachträglich im Zusammenhang mit den neuesten Clamav Modul installiert hatte u. nun manuel entfernt habe da vorhin jegliche Configurationsversuche des PHP-Kompilers scheiterte.

Habe auch die dazugehörige curl Version downgegraded, wo ich nun zum Erfolg komme, das die Konfiguration erfolgreich war, jedoch das Kompilieren scheiterte. Wenigstens kann ich trotz des Downgraden u. entfernen der Packete das alte PHP Modul weiter verwenden u. den Apache neustarten.

Vielleicht kann hier jemand herauslesn wo das Problem liegt.

Gruss,
Bernhard

Code:
./configure --prefix=/usr --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php4/apache2 --enable-memory-limit --disable-debug --with-regex=php --disable-rpath --disable-static --with-pic --with-layout=GNU --with-pear=/usr/share/php --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-discard-path --enable-track-vars --enable-trans-sid --enable-magic-quotes --enable-safe-mode --enable-sockets --enable-bcmath --with-bz2 --enable-ctype --enable-fpdf –enable-domxml --with-db4 --with-mysql --with-imap-ssl --with-freetype --with-curl --with-gd --enable-gd-native-ttf --with-png-dir=/usr/lib  --with-jpeg-dir=/usr/lib --with-gif-dir=/usr/lib --with-tiff-dir=/usr/lib --with-imap=/usr --with-jpeg-dir=/usr --with-tiff-dir=/usr/lib --with-ttf --with-iconv --enable-exif --enable-filepro --enable-ftp --with-gettext --enable-mbstring --enable-mbregex --with-pcre-regex=/usr --enable-shmop --enable-sockets --enable-wddx --enable-xml --with-expat-dir=/usr --with-xmlrpc --enable-yp --with-zlib --with-pgsql --with-kerberos=/usr --with-openssl=/usr --with-zip=/usr --enable-dbx --with-mime-magic --with-exec-dir=/usr/lib/php4/libexec --with-mm --enable-xslt --with-xslt-sablot --enable-dbx --enable-dio --enable-mcal
 
Hi,

eventuell mal den gcc compiler neu installieren oder updaten.

Best regards
tessa
 
Ich glaub, dass ist es.

Leider hatte ich mit der Installation des Clamav unzählige Packete von Stable auf Testing uggeraged. Mein System läuft aber Stable.

Angenommen ich würde das System auf Testing umstellen läuft bei mir leider das Plesk nicht mehr, da MySQL etc. auch mit upgraded werden.

Kann ich mehrere Packete mit derren Abhängigkeiten auch einfach downgraden, ohne jedes einzelne Packet mit dpkg -i packet.deb auszuführen?

Müsste dadurch Packete wie z.B. folgend:
libidn11, libidn11-dev, libc6, libc-dev, libgcc1, gcc usw.


Gruss,
Bernhard
 
Last edited by a moderator:
...einfach downgraden

Das willst du nicht wirklich, oder? :cool:

Du kannst auch ohne weiteres einen zweiten gcc parallel laufen lassen und damit compilieren.

Sind mehrere gcc-Kompiler unterschiedlicher Versionen installiert, kann man configure sagen, welchen es benutzen soll:

Beispiel:
./configure --prefix=/usr CC=/usr/bin/gcc-3.4 --host=gcc-3.4 --kernel-path=/usr/src/linux-source-$(uname -r)/

Die Optionen könnten unterschiedlich lauten:
CC= oder -cc=
--host oder --host-cc

Best regards
tessa
 
Last edited by a moderator:
Hallo,

danke erstmals!

irgendwas habe aber anscheinend etwas nicht ganz verstanden.
Habe den gcc-3.4 Kompiler installiert, alle möglichen Optionen mit cc u. CC u. --host-cc usw. ausgeführt u. bekomme folgende Meldung:

Code:
~/php-4.4.4# ./configure --prefix=/usr CC=/usr/bin/gcc-3.4 --host=gcc-3.4 --kernel-path=/usr/src/linux-source-$(uname -r)/ --with-config-file-path=/etc/php4/apache2 --enable-memory-limit --disable-debug --with-regex=php --disable-rpath --disable-static --with-pic --with-layout=GNU --with-pear=/usr/share/php --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-discard-path --enable-track-vars --enable-trans-sid --enable-magic-quotes --enable-safe-mode --enable-sockets --enable-bcmath --with-bz2 --enable-ctype --enable-fpdf .enable-domxml --with-db4 --with-mysql --with-imap-ssl --with-freetype --with-curl --with-gd --enable-gd-native-ttf --with-png-dir=/usr/lib  --with-jpeg-dir=/usr/lib --with-gif-dir=/usr/lib --with-tiff-dir=/usr/lib --with-imap=/usr --with-jpeg-dir=/usr --with-tiff-dir=/usr/lib --with-ttf --with-iconv --enable-exif --enable-filepro --enable-ftp --with-gettext --enable-mbstring --enable-mbregex --with-pcre-regex=/usr --enable-shmop --enable-sockets --enable-wddx --enable-xml --with-expat-dir=/usr --with-xmlrpc --enable-yp --with-zlib --with-pgsql --with-kerberos=/usr --with-openssl=/usr --with-zip=/usr --enable-dbx --with-mime-magic --with-exec-dir=/usr/lib/php4/libexec --with-mm --enable-xslt --with-xslt-sablot --enable-dbx --enable-dio --enable-mcal
configure: warning: CC=/usr/bin/gcc-3.4: invalid host type
configure: error: --kernel-path=/usr/src/linux-source-2.6.14-2-k7-smp/: invalid option; use --help to show usage

Was kann da falsch sein?

Übrigens, in meiner Verzweiflung hätte ich es so gemacht, wie ich geschrieben habe, da der Standard kompiler nun auf Testing u. nicht auf Sarge sowie das System ist
 
Bitte wer brauch PostgreSQL, MySQL, Filepro, DB4? Das sieht mir sehr nach einer Installation des Grauens aus, da (sogut) wie alles reinkompiliert wird.
 
Mysql ja, mit PostgreSQL, Filepro, db4 hast du allerdings recht. Habe nun die Konfiguration nochmal neu erstellt u. nachgesehen was ich wirklich benötige.

Jetzt fehlt nur noch die Lösung des Fehlers mit dem kompilieren u. dann läufts schon. Leider komme ich um das kompilieren eines neuen Moduls nicht herum, da mir von der Erstinstallation wichtige Funktionen wie z.B. Gettext fehlen.
 
Versuch deine optimierte configure-Zeile doch nun mal ohne CC, --host und --kernel-path zu kompilieren

(sind das nicht sowieso Argumente zum Kompilieren von GCC? php´s configure kennt --kernel-path z.B. nicht)
 
Hallo,

dein Tipp hat mich schon weiter gebracht!

Ich habe die configure ordentlich abgespeckt, nur das reingepackt was gebraucht wird.

Nach dem ausführen der Konfiguration kommt folgende Fehlermeldung:
Code:
configure: error: This c-client library is built with Kerberos support.

      Add --with-kerberos to your configure line. Check config.log for details.

Daher habe ich die die gewünschte Zeile hinzugefügt.
Code:
./configure --with-kerberos --with-config-file-path=/etc/php4/apache2...
Siehe da, Konfiguration erfolgreich abgeschlossen "Thank you for using PHP."!

Das anschließende kompilieren war auch erfolgreich. Nur mit einer anschließenden Fehlermeldung die anscheinend zu ignorieren ist:
Code:
ext/mysql/libmysql/my_tempnam.o(.text+0x53): In function `my_tempnam':
/root/php-4.4.4/ext/mysql/libmysql/my_tempnam.c:115: warning: the use of `tempnam' is dangerous, better use `mkstemp'

Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

Leider brachte die Installation nicht den gewünschten Effekt und endet mit dem Fehler:
Code:
make install
Installing PHP SAPI module:       cgi
Installing PHP CGI into: /usr/local/bin/
Installing PEAR environment:      /usr/local/share/pear/
[PEAR] Archive_Tar    - installed: 1.3.1
[PEAR] Console_Getopt - installed: 1.2
[PEAR] HTML_Template_IT- installed: 1.1
[PEAR] Net_UserAgent_Detect- installed: 2.0.1
pear/PEAR can optionally use package "pear/XML_RPC" (version >= 1.4.0)
[PEAR] PEAR           - installed: 1.4.9
Wrote PEAR system config file at: /usr/local/etc/pear.conf
You may want to add: /usr/local/share/pear to your php.ini include_path
Installing build environment:     /usr/local/lib/php/build/
Installing header files:          /usr/local/include/php/
Installing helper programs:       /usr/local/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/man/man1/
mkdir: `/usr/local/man/man1' exists but is not a directory
make: *** [install-programs] Error 1

Woran kann das liegen?

Hat das etwas damit zu tun, dass ich ein PHP Modul mit der gleichen Version am laufen habe?
Kann es auch daran liegen, dass der Apache läuft?

Sorry für meine blöden Fragen, aber ich kann einfach kein Risiko eingehen, da ich ein laufendes System habe und daher mich einwenig absichern muss.

Dies bezüglich habe ich noch eine Frage, ob jemand von euch mir eine Auflistung der gesamten Dateien und Ordner des PHP Moduls auflisten oder mir die dementsprechende Quelle angeben kann. So könnte ich dann wenn nichts mehr geht die Dateien, anhand eines Backups, das ich erstellt habe wieder zurückspielen.
 
Last edited by a moderator:
Der Fehler steht doch da eindeutig...

Code:
mkdir: `/usr/local/man/man1' exists but is not a directory

/usr/local/man/man1 muss ein Ordner sein, keine Datei.

Benenn das einfach mal um, so dass du es wiedererkennst und versuchs erneut.

Best regards
tessa
 
Hallo,

danke für eure Tipps, habs jetzt hinbekommen.

Der erste Fehler warum es nicht gegangen ist lag wahrscheinlich deshalb, dass es beim Kompiler einen Versionskonflikt gab.
Hätte ich den gcc-3.4 Kompiler gleich nach den Upgrades diverser Packete installiert, hätte es funktioniert. Den eigentlich habe ich nichts anderes gemacht, als diesen zu installieren, die Konfiguration aufzuräumen u. zu kompilieren.

Eines habe ich aber noch, um zwar wie muss ich den SafeMode kompilieren, sodass ich den SafeMode bei den einzellnen Clients im Plesk aktivieren/deaktivieren kann.

Ebenfalls betreffend register_globals die ich gerne deaktiviert hätte (in php.ini bereits deaktiviert, in Joomla zeigt sich jedoch trotz neustart des Apache keine änderung).
 
In der Hinsicht kenn ich mich zwar nicht aus, aber mit --enable-safe-mode kannst du den Safe-Mode schonmal aktivieren, aber ich würde mal drauf tippen, dass man für jeden "Client" in Plesk seperate ini-Dateien hat, in denen das geregelt wird. Gleiches bei den register_globals.
 
Hallo,

ich bin inzwischen drauf gekommen woran es liegt.
Leider bin ich nicht vorher dazu gekommen meinen Eintrag zu editieren.

Und zwar liegt das Problem am Apache und zwar ganz genau daran an der installierten Version, weshalb ich diesen Updaten müsste. Den die Conf-Dateien zeigen trotz richtiger Konfiguration keine Reaktion.

Leider gibt es für Debian-Sarge im Moment leider keine neuere Version!
 
Back
Top