1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

XML Fehler beim Kompilieren von PHP 5

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von kauan, 17.01.06.

  1. kauan

    kauan Stina Lohmann

    Dabei seit:
    31.12.05
    Beiträge:
    1.043
    Hi

    Ich wollte (mal wieder) die aktuelle PHP Version (5.1.2) kompilieren. Ich benutzte die folgenden configure Optionen:
    Code:
    ./configure 
    --prefix=/usr \
    --mandir=/usr/share/man \
    --infodir=/usr/share/info \
    --with-config-file-path=/etc \
    --with-apxs2=/usr/sbin/apxs \
    --with-mysql=/usr/local/mysql \
    --enable-mbstring \
    --enable-mbregex
    configure selbst verlief fehlerfrei, beim anschliessenden make erhielt ich aber den folgenden Fehler:


    Code:
    /bin/sh /usr/local/src/php-5.1.2/libtool --silent --preserve-dup-deps --mode=compile gcc  -Iext/libxml/ -I/usr/local/src/php-5.1.2/ext/libxml/ -DPHP_ATOM_INC -I/usr/local/src/php-5.1.2/include -I/usr/local/src/php-5.1.2/main -I/usr/local/src/php-5.1.2 -I/usr/include/libxml2 -I/usr/local/src/php-5.1.2/ext/date/lib -I/usr/local/src/php-5.1.2/ext/mbstring/oniguruma -I/usr/local/src/php-5.1.2/ext/mbstring/libmbfl -I/usr/local/src/php-5.1.2/ext/mbstring/libmbfl/mbfl -I/usr/local/mysql/include -I/usr/local/src/php-5.1.2/TSRM -I/usr/local/src/php-5.1.2/Zend  -no-cpp-precomp  -I/usr/include -g -O2  -c /usr/local/src/php-5.1.2/ext/libxml/libxml.c -o ext/libxml/libxml.lo 
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:43:28: libxml/xmlsave.h: No such file or directory
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:407: error: parse error before "error"
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c: In function `_php_libxml_free_error':
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:409: error: `error' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:409: error: (Each undeclared identifier is reported only once
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:409: error: for each function it appears in.)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c: At top level:
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:413: error: parse error before "error"
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c: In function `_php_list_set_error_structure':
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:415: error: `xmlError' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:415: error: parse error before "error_copy"
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:420: error: `error_copy' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:422: error: `error' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:427: error: `XML_ERR_ERROR' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:433: error: `msg' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c: At top level:
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:525: error: parse error before "xmlErrorPtr"
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c: In function `php_libxml_structured_error_handler':
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:527: error: `error' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c: In function `zm_startup_libxml':
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:590: error: `XML_PARSE_NOENT' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:591: error: `XML_PARSE_DTDLOAD' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:592: error: `XML_PARSE_DTDATTR' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:593: error: `XML_PARSE_DTDVALID' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:594: error: `XML_PARSE_NOERROR' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:595: error: `XML_PARSE_NOWARNING' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:596: error: `XML_PARSE_NOBLANKS' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:597: error: `XML_PARSE_XINCLUDE' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:598: error: `XML_PARSE_NSCLEAN' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:599: error: `XML_PARSE_NOCDATA' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:600: error: `XML_PARSE_NONET' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:608: error: `XML_ERR_NONE' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:609: error: `XML_ERR_WARNING' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:610: error: `XML_ERR_ERROR' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:611: error: `XML_ERR_FATAL' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c: In function `zif_libxml_use_internal_errors':
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:690: error: `xmlStructuredErrorFunc' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:690: error: parse error before "current_handler"
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:697: error: `current_handler' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:697: error: `xmlStructuredError' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:719: error: `xmlError' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c: In function `zif_libxml_get_last_error':
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:730: error: `xmlErrorPtr' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:730: error: parse error before "error"
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:732: error: `error' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c: In function `zif_libxml_get_errors':
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:761: error: `xmlErrorPtr' undeclared (first use in this function)
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:761: error: parse error before "error"
    /usr/local/src/php-5.1.2/ext/libxml/libxml.c:769: error: `error' undeclared (first use in this function)
    make: *** [ext/libxml/libxml.lo] Error 1

    Ich vermute das haengt irgendwie mit libtool oder so zusammen, aber was genau weiss ich nicht. Durch Google wurde ich auch nicht schlau.
    Funktionieren tut das ganze, wenn ich all diesen XML Kram nicht mitkompiliere (ich brauche diese Funktionen aber). Mit den folgenden configure Optionen funktioniert das make problemlos (ein paar sind wohl nicht relevant, aber jedenfalls konnte ich PHP mit diesen Optionen kompilieren).

    Code:
    ./configure
    --prefix=/usr \
    --mandir=/usr/share/man \
    --infodir=/usr/share/info \
    --with-config-file-path=/etc \
    --with-apxs2=/usr/sbin/apxs \
    --with-mysql=/usr/local/mysql \
    --enable-mbstring \
    --enable-mbregex \
    --disable-libxml \
    --disable-dom \
    --disable-simplexml \
    --disable-xml \
    --without-pear \
    --without-iconv

    Hat jemand irgendwelche Tipps fuer mich?
    Und nein, ich werde nicht auf ein vorkompiliertes PHP zurueckgreifen.

    Gruss
    Jonathan
     
  2. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Mich interessiert, warum nicht?

    Bezüglich der Fehlermeldung: Gewöhnlich sucht man die erste (oberste) Fehlermeldung heraus, die der Auslöser für alle weiteren ist. Diejenige, die Du bekommst, ist:
    Code:
    libxml/xmlsave.h: No such file or directory
    Er findet offensichtlich diese Datei nicht ;)
     
  3. Danyow

    Danyow Gast

    Hmm, dann wirf doch mal einen Blick darauf, WAS er da eingebunden hat und Du wirst feststellen, daß es recht wenig ist...

    Es KÖNNTE darauf hindeuten, daß er einen SCHLANKEN Server haben möchte...
    Und die ganzen anderen Schnickschnacklibs, die in den meisten precompiled Versionen vorkommen, machen einen Server nunmal eher das Gegenteil von Schlank...

    Warum wird eigentlich in Mac-Foren immer diese Art von Rückfragen gestellt, wenn man etwas SELBER konfigurieren möchte?
    (Zugegeben: wenn man Leute nach Formatierungen in LaTeX fragt erhält man ähnlich ätzende Reaktionen...)
    *kopfschüttel*

    Zum Ursprungspost:
    Die nicht gefundene header-Datei liegt (zumindest bei Tiger) unter
    /usr/include/libxml2/libxml/xmlsave.h

    Schau doch mal nach, wie Du configure mitteilen kannst, diese (zumindest als Ausgangpunkt) zu verwenden.
    (Wahrscheinlich sowas in der Art von --with-libxml-dir=/usr/include/libxml2 oder so - hab leider zu wenig Erfahrung beim kompilieren, deswegen das nur als Idee)
     
  4. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Vielleicht zu wenig ;)
     
  5. kauan

    kauan Stina Lohmann

    Dabei seit:
    31.12.05
    Beiträge:
    1.043
    Nicht nur aus Danyows genanntem Grund (so wenig wird da uebrigens nicht installiert, ein paar Module muss man explizit deaktivieren wenn man sie nicht will.

    Allgemein mag ich persoenlich solche Komplettalles Distributionen nicht, weil da zum einen vieles installiert ist, was ich nicht brauche und ausserdem nicht an meine Beduerfnisse angepasst ist. Habt ihr euch zum Beispiel mal die Konfigurationsfiles von xampp angesehen? Klar, die kann man aendern, ich weiss.
    Ich moechte einfach wissen, was ich installiere, und darum auch, wie ich es installiere.
    Ganz nebenbei, man lernt verdammt viel, wenn man seine Software 'von Hand' installiert. Ich habe eine Zeit lang Gentoo Linux benutzt, und waehrend dieser Zeit habe ich sehr viel gelernt, auch schon nur durchs durchfuehren von Installationen und Konfigurationen.

    Finde ich auch komisch, ist aber nicht nur bei Macs so. Je nach Forum schreibt man, dass man Probleme mit der Installation von xx hat, weil yy nicht funktioniert. Statt einem Loesungsvorschlag erhaelt man dann die Antwort, dass man Software zz benutzen soll, da diese besser ist. Na toll :D

    Aber nun zum Problem..

    Dass der Fehler bei diesem libxml/xmlsave.h liegt, ist mir bekannt. (Explizit steht im Sourcecode #include <libxml/xmlsave.h>.
    Ich habe schon mit diesem --with-libxml-dir Parameter rumprobiert, hat aber bis jetzt nicht geklappt. Komisch finde ich, dass immer folgendes verwendet wird:
    Code:
    checking for xml2-config path... (cached) /usr/bin/xml2-config
    Obwohl ich andere Pfade fuer libxml-dir angegeben habe.

    Ich versuch noch ein paar andere Pfade fuer libxml-dir, mal sehen.

    Danke schonmal ;)

    Gruss
    Jonathan
     
  6. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    XAMP? Das einzige, was bei OS X (Nicht-Server) fehlt, ist MySQL - und eine neuere PHP-Version. Mit XAMP verpaßt man das interessante Lernen, wie die Sachen mit und auf OS X konfiguriert werden und das würde mir fehlen.
     
  7. kauan

    kauan Stina Lohmann

    Dabei seit:
    31.12.05
    Beiträge:
    1.043
    Sag ich doch. Und xampp war nur so ein Beispiel.
    Und bei meinem Panther war ein Apache 1.3 dabei, wenn ich mich richtig erinnere.
     
  8. Danyow

    Danyow Gast

    Du irrst nicht - ist im Übrigen bei Tiger immernoch der Fall.
    (Dabei bekommt man den ja sogar für ein Debian/Stable seit, ähem, geraumer Zeit über apt - PHP5 hingegen immernoch nicht...)

    D
     
  9. kauan

    kauan Stina Lohmann

    Dabei seit:
    31.12.05
    Beiträge:
    1.043
    So!
    Ich vermutete den Fehler beim oben erwaehnten
    Code:
    checking for xml2-config path... (cached) /usr/bin/xml2-config
    ...weil beim dem Panther enthaltenen libxml2 diese xmlsave.h fehlt. PHP hat aber beim Kompilieren anscheinend immder diese Version genommen.
    Nun habe ich einen Eintrag in der Datei config.cache geaendert:
    Code:
    ac_cv_php_xml2_config_path=${ac_cv_php_xml2_config_path=[B]/sw/bin/xml2-config[/B]}
    und nun scheint es zu gehen!
     

Diese Seite empfehlen