Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] PHP nachträglich mit CURL Support ausstatten

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] PHP nachträglich mit CURL Support ausstatten

    Hallo,

    ich benötige die curl-Funktionen in einem PHP-Skript, um ein Servlet "auszuführen".

    ich habe zunächst mal ein beispiel von php.net probiert:

    Code:
    <?php
    
    //Die Session initialisieren
    $ch = curl_init("http://www.example.com/");
    $fp = fopen("example_homepage.txt", "w");
    
    //Session Optionen setzen
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    
    //Ausführen der Aktionen
    curl_exec($ch);
    
    //Session beenden
    curl_close($ch);
    fclose($fp);
    ?>
    Wenn ich es ausführe bringt er den Fehler :

    Fatal error: Call to undefined function: curl_init() in ........... usw

    Ich habe dann mal ein bisschen im Internet geschaut und gelesen, daß man PHP mit CURL kompilen muß.Daraufhin habe ich mir meine PHP-info-Seite angeschaut:

    '../configure' '--prefix=/usr' '--with-apxs=/usr/bin/apxs' '--with-regex=php' '--with-config-file-path=/etc/php4/apache' '--disable-rpath' '--enable-memory-limit' '--disable-debug' '--with-layout=GNU' '--with-pear=/usr/share/php' '--enable-calendar' '--enable-sysvsem' '--enable-sysvshm' '--enable-track-vars' '--enable-trans-sid' '--enable-bcmath' '--with-bz2' '--enable-ctype' '--with-db4' '--with-iconv' '--enable-exif' '--enable-filepro' '--enable-ftp' '--with-gettext' '--enable-mbstring' '--with-pcre-regex=/usr' '--enable-shmop' '--enable-sockets' '--enable-wddx' '--disable-xml' '--with-expat-dir=/usr' '--enable-yp' '--with-zlib' '--without-pgsql' '--with-kerberos=/usr' '--with-openssl=/usr' '--with-exec-dir=/usr/lib/php4/libexec' '--disable-static' '--with-curl=shared,/usr' '--with-dom=shared,/usr' '--with-dom-xslt=shared,/usr' '--with-dom-exslt=shared,/usr' '--with-zlib-dir=/usr' '--with-gd=shared,/usr' '--with-jpeg-dir=shared,/usr' '--with-xpm-dir=shared,/usr/X11R6' '--with-png-dir=shared,/usr' '--with-freetype-dir=shared,/usr' '--with-imap=shared,/usr' '--with-imap-ssl' '--with-ldap=shared,/usr' '--with-mcal=shared,/usr' '--with-mhash=shared,/usr' '--with-mm' '--with-mysql=shared,/usr' '--with-unixODBC=shared,/usr' '--with-recode=shared,/usr' '--enable-xslt=shared' '--with-xslt-sablot=shared,/usr' '--with-snmp=shared' '--enable-ucd-snmp-hack' '--with-sybase-ct=shared,/usr' '--with-ttf=shared,/usr' '--with-t1lib=shared,/usr'
    da steht also was drin mit CURL. Ob das so richtig ist, weiß ich nicht. ich habe curl auch nochmal drüberinstalliert, daß ich von curl.haxx.se heruntergeladen habe (war ein downgrade...). Es ist also auch installiert. Ein locate auf curl gibt folgendes:

    /usr/bin/curl
    /usr/doc/curl
    /usr/lib/libcurl.so.2
    /usr/lib/libcurl.so.2.0.2
    /usr/share/curl
    /usr/share/curl/curl-ca-bundle.crt
    /usr/share/doc/curl
    /usr/share/doc/curl/BUGS
    /usr/share/doc/curl/changelog.Debian.gz
    /usr/share/doc/curl/changelog.gz
    /usr/share/doc/curl/copyright
    /usr/share/doc/curl/FAQ.gz
    /usr/share/doc/curl/FEATURES
    /usr/share/doc/curl/KNOWN_BUGS
    /usr/share/doc/curl/LEGAL
    /usr/share/doc/curl/MANUAL.gz
    /usr/share/doc/curl/MITX.txt
    /usr/share/doc/curl/MPL-1.1.txt.gz
    /usr/share/doc/curl/progress-bar.patch
    /usr/share/doc/curl/README
    /usr/share/doc/curl/README.Debian
    /usr/share/doc/curl/THANKS
    /usr/share/doc/curl/TheArtOfHttpScripting.gz
    /usr/share/doc/curl/TODO.gz
    /usr/share/doc/libcurl2
    /usr/share/doc/libcurl2/BINDINGS
    /usr/share/doc/libcurl2/BUGS
    /usr/share/doc/libcurl2/changelog.Debian.gz
    /usr/share/doc/libcurl2/changelog.gz
    /usr/share/doc/libcurl2/copyright
    /usr/share/doc/libcurl2/FAQ.gz
    /usr/share/doc/libcurl2/FEATURES
    /usr/share/doc/libcurl2/KNOWN_BUGS.gz
    /usr/share/doc/libcurl2/README
    /usr/share/doc/libcurl2/THANKS
    /usr/share/doc/libcurl2/TODO.gz
    /usr/share/doc/libcurl2/VERSIONS
    /usr/share/man/man1/curl.1.gz
    /var/cache/apt/archives/curl_7.11.0-4_i386.deb
    /var/cache/apt/archives/libcurl2_7.11.0-4_i386.deb
    /var/lib/dpkg/info/curl.list
    /var/lib/dpkg/info/curl.md5sums
    /var/lib/dpkg/info/curl.postinst
    /var/lib/dpkg/info/curl.prerm
    /var/lib/dpkg/info/libcurl2.list
    /var/lib/dpkg/info/libcurl2.md5sums
    /var/lib/dpkg/info/libcurl2.postinst
    /var/lib/dpkg/info/libcurl2.postrm
    /var/lib/dpkg/info/libcurl2.shlibs

    Wenn ich versuche, die Datei /usr/lib/libcurl.so.2 oder /usr/lib/libcurl.so.2.0.2 in der php.ini als extension anzugeben, sagt er mir, daß es keine php-extension ist, womit er wahrscheinlich recht hat.

    Ich habe auch gelesen, daß man PHP nicht unbedingt neu kompilieren muß, um den curl support einzuschalten. man könnte es auch mit einer *.so-Datei über die php.ini einbinden. Geht das irgendwie?

    Ich weiß nicht so recht, wie man das recompiled und wollte es eigentlich vermeiden.

    Ist leider dringend und ich bin für jede Hilfe dankbar.

  • #2
    Das sieht nach einem Distributions-PHP aus, dann müsste die Distribution auch ein Packet bieten, mit dem Du das aktivieren kannst, also php_curl oder sowas. Oder sie sollte es automatisch machen, wenn Du curl installierst.

    Alternativ liegt die Extension schon als .so-Datei rum (ist ja shared compiliert), und Du musst diese .so-Datei nur noch in der php.ini einbinden (wie unter Windows mit den .dlls). Alternativ zur Laufzeit im Script mit der Funktion dl().
    mod = master of disaster

    Kommentar


    • #3
      ja, es lag als paket vor.

      ich habe jetzt zu dem thema aber noch eine Frage. Ich rufe wie schon erwähnt ein Servlet auf, kann ihm auch Parameter übermitteln (über ein set_opt).

      Aber kennt jemand eine Möglichkeit, Werte wieder an das PHP-Skript zu zurückzuliefern? Ich glaub das ist dann schon 3 Nummern härter

      Die funktion curl_exec liefert ja leider nur, ob die Aktion erfolgreich war, oder nicht bzw. gibt die erzeugten Ausgaben an den Browser weiter. Aber wie kann ich bestimmte Variablen in die PHP-Welt zuückgeben?

      Kommentar

      Lädt...
      X