Probleme mit WebkitPDF!

  • Trent Trent
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    04. 01. 2011, 21:51

    Hallo zusammen,

    ich versuche seit einer Ewigkeit, WebktiPDF (v.1.1.5) zum Laufen zu bringen und es gelingt mir bisher immer noch nicht... Ich HOFFE ich koennte auf diesem Wege die geschaetzte "helping hand" erreichen...

    1. Ich habe einfach WebkitPDF als Plugin installiert
    2. dann eine Seite erstellt (pid=57) und drauf WebkitPDF als Plugin eingebunden
    3. Im TS Template habe ich folgende Einstellungen vorgenommen:

    Constants:

    plugin.tx_webkitpdf_pi1.pdfLink {
    pluginPid = 57
    linkText = Save as PDF
    no_cache = 1
    }

    Setup:

    plugin.tx_webkitpdf_pi1.pdfLink = TEXT
    plugin.tx_webkitpdf_pi1.pdfLink {
    value = {$plugin.tx_webkitpdf_pi1.pdfLink.linkText}
    typolink {
    parameter = {$plugin.tx_webkitpdf_pi1.pdfLink.pluginPid}
    no_cache = {$plugin.tx_webkitpdf_pi1.pdfLink.no_cache}
    additionalParams {
    data = getIndpEnv:TYPO3_REQUEST_URL
    wrap = &tx_webkitpdf_pi1[urls][0]=|
    }
    }
    }

    Ich arbeite mit Typo3 v. 4.4.4 und im Logfile erhalte ich nachdem ich z.B. auf den Link

    http://meintestserver/index.php?id=57&no_cache=1&tx_webkitpdf_pi1[urls][0]=http://meintestserver/index.php?id=26&L=0

    klicke folgende Hinweise bzw. Fehlermeldungen:

    Core: Error handler (FE): PHP Warning: readfile(/srv/www/vhosts/.../subdomains/cms/httpdocs/typo3temp/tx_webkitpdf/39f734d0c0cae03f4acd4ff65c44a4de72ab7066.pdf): failed to open stream: No such file or directory in /srv/www/vhosts/.../subdomains/cms/httpdocs/website/typo3conf/ext/webkitpdf/pi1/class.tx_webkitpdf_pi1.php line 153

    Core: Error handler (FE): PHP Warning: filesize(): stat failed for /srv/www/vhosts/.../subdomains/cms/httpdocs/typo3temp/tx_webkitpdf/39f734d0c0cae03f4acd4ff65c44a4de72ab7066.pdf in /srv/www/vhosts/.../subdomains/cms/httpdocs/website/typo3conf/ext/webkitpdf/pi1/class.tx_webkitpdf_pi1.php line 147

    Nochmals danke im voraus fuer die hoch geschaetzte Hilfe!

    T.


  • lisardo lisardo
    Jedi-Meister
    0 x
    306 Beiträge
    0 Hilfreiche Beiträge
    04. 01. 2011, 22:49

    Hallo,

    in der Doku ist das zu finden:

    IMPORTANT NOTICES

    A binary script (res/wkhtmltopdf) is included to perform this task. The user must have the right permissions to execute this binary (script has to be executable). You can move it to another location and specify the new path via TypoScript.

    This extension does NOT work on Windows systems!

    The binary provided by this extension does only work on 32bit systems. To run this extension on a 64bit system, download the binary provided on forge.typo3.org/issues/show/4337 and use the TypoScript setting customScriptPath to point to the downloaded binary.

    The binary script apparently has some dependencies. Make sure you have libfreetype installed. It may occur that libfreetype alone isn't enough. In this case we recommend to install GLIBC > 2.4.

    If you experience problems (e.g. the PDF is not readable), try to run the script manually from a shell environment. To get the exact call which was made by WebkitPDF, use the debugScriptCall setting in TypoScript.

    Bist du die Punkte einzeln durchgegangen?
    Nach der Installation ist zumindest wkhtmltopdf nicht ausführbar, das würde mich wundern. Musst du also mittels FTP ausführbar machen. Dazu musst du natürlich berechtigt sein bzw. die Serverkonfiguration muss ausführbare Dateien in beliebigen Unterverzeichnissen erlauben - was in der Regel nicht der Fall ist. Falls nur das Verzeichnis cgi-bin ausführbare Dateien enthalten darf, musst du wkhtmltopdf in diesen Ordner verschieben und die Pfade anpassen (customScriptPath).

    Dann ist die Frage, ob es überhaupt läuft, und ob dein System 32Bit oder 64Bit hat. Danach kommen die Abhängigkeiten: GLIBC. Ich habs bei Mittwald nicht zum Laufen gebracht.

    Die Warnung sagt nur aus, dass keine PDF-Datei gefunden wurde. Logisch, wenn die Binary nicht funktioniert.

    Peter, TYPO3 @ lisardo (Augsburg)

  • Trent Trent
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    05. 01. 2011, 00:26

    Hallo Peter!

    Vielen Dank fuer die schnelle Antwort. Ich gehe dann alle Punkte nochmals durch und melde mich spaeter nochmals...

    Trent

  • Trent Trent
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    05. 01. 2011, 18:18

    Hallo Peter,

    ich habe leider das Problem immer noch nicht loesen koennen und gebe Dir einfach hiermit ein kurzes Feedback davon, wie ich weiterhin vorgegangen bin.

    1. Folgende Pakete sind auf dem Server installiert:

    glibc-32bit-2.9-2.11.1
    glibc-2.9-2.11.1
    glibc-locale-2.9-2.11.1
    glibc-devel-2.9-2.11.1

    freetype2-2.3.7-24.2.1

    2. Ich hatte wkhtmltopdf im cgi-bin Verzeichnis kopiert und mit chmod 777 die Binary ausfuehrbar gemacht.

    3. In meinem TS Template hatte ich folgende Zeile eingefuegt:

    1. plugin.tx_webkitpdf_pi1.customScriptPath = /srv/www/vhosts/testserver.com/subdomains/cms/cgi-bin/

    4. Wenn ich auf den Link klicke wird eine Datei erzeugt, welche eigentlich eine HTML Datei ist. Und wenn ich diese Datei mit dem Text-Editor oeffne stehen irgendwo innerhalb der Datei folgende Zeilen:

    1. <!-- CONTENT ELEMENT, uid:41/list [begin] -->
    2. <div id="c41" class="csc-default">
    3. <!-- Plugin inserted: [begin] -->
    4. <!-- BEGIN: Content of extension "webkitpdf", plugin "tx_webkitpdf_pi1" -->
    5. <div class="tx-webkitpdf-pi1"></div>
    6. <!-- END: Content of extension "webkitpdf", plugin "tx_webkitpdf_pi1" -->
    7. <!-- Plugin inserted: [end] -->
    8. </div>
    9. <!-- CONTENT ELEMENT, uid:41/list [end] -->

    Die Fehlermeldungen und Logfiles bleiben unveraendert. Wie kann ich jetzt weiter vorgehen?

    Nochmals, besten Dank im voraus!

    T.

  • lisardo lisardo
    Jedi-Meister
    0 x
    306 Beiträge
    0 Hilfreiche Beiträge
    05. 01. 2011, 20:03

    Also wie gesagt, ich habs ja auch nicht zum Laufen bekommen ...

    Aber erstelle mal eine eine PHP-Datei mit folgendem Inhalt:

    1. <?php
    2. $out = shell_exec("/srv/www/vhosts/testserver.com/subdomains/cms/cgi-bin/wkhtmltopdf 'http://domain.tld/deineSeite.html' /srv/www/vhosts/testserver.com/subdomains/cms/typo3temp/tx_webkitpdf/test.pdf 2> output" ) ;
    3. print $out ? $out : join("", file("output" ) ) ;
    4. ?>

    wobei du http://domain.tld/deineSeite.html durch eine gültige URL deiner Webseite ersetzt. Ruf die Datei dann im Browser auf und schau, was passiert.

    Wenn es funktioniert, muss die test.pdf im Ordner /typo3temp/tx_webkitpdf auftauchen. Andernfalls erhältst du im Browser einer Fehlermeldung.

    Gruß
    Peter

  • Trent Trent
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    05. 01. 2011, 22:25

    Hallo Peter,

    ich habe eine PHP Seite erstellt, welche Dein Script enthaelt und diese ausgefuehrt. Ergebnis: NIX!. Weder eine Fehlermeldung sonst irgendeine PDF-Datei. Das wird langsam zum Verzeifeln...

    Kann es eventuell sein, dass die wkhtmltopdf Binary weiterhin immer noch nicht ausgefuehrt wird????

    Gruss,

    Trent

  • lisardo lisardo
    Jedi-Meister
    0 x
    306 Beiträge
    0 Hilfreiche Beiträge
    05. 01. 2011, 23:34

    Da müsste eigentlich auf jeden Fall irgendwas kommen, irgendeine Fehlermeldung. Auch wenn die Datei nicht ausführbar ist, oder wenn die Zugriffsrechte nicht stimmen, oder sie gar nicht gefunden wird.

    Gib mal am Ende noch das hier ein:

    1. <?php
    2.  
    3. ....
    4.  
    5. echo "bin da";
    6. ?>

    um zu testen, ob die Datei überhaupt ausgeführt wird. Und prüf nach, ob die Dateiendung wirklich .php lautet.

    Peter, TYPO3 @ lisardo (Augsburg)

  • Trent Trent
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    06. 01. 2011, 00:14

    Hallo Peter,

    ja das hatte ich auch gemacht mit dem echo Befehl, welcher problemlos ausgefuehrt wird, aber nicht das Script, was Du mir gegeben hast. PHP wird schon auf dem Server ausgefuehrt. Kann es sein, dass es irgendein Fehler in Deinem Script gibt? Ich habe auch versucht ueber FTP mit dem Command "execute file" getestet, ob die Binary wirklich ausgefuerht wird, was auch funktioniert.

    Gruss,

    T.

  • Trent Trent
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    06. 01. 2011, 00:38

    Ich habe auch Folgendes ausprobiert:

    1. <?php
    2. $output = shell_exec('wkhtmltopdf');
    3. echo "<pre>$output</pre>";
    4. ?>

    Ich hatte im selben Verzeichnis wkhtmltopdf und die PHP Datei per FTP hochgeladen. Mit chmod 777 die wkhtmltopdf Binary angepasst. Ergebnis: NIX!

    Ich glaube es haengt davon ab, dass der Befehl shell_exec im Safe-Mode Modus nicht ausgefuerht wird. Ich werde dann den System Admin darum bieten, Safe Mode auszuschalten, dann sehe ich weiter.

    Gruss,

    T.

  • lisardo lisardo
    Jedi-Meister
    0 x
    306 Beiträge
    0 Hilfreiche Beiträge
    06. 01. 2011, 11:47

    Schau dir die php.ini an, es kann sein, dass shell_exec bzw. auch exec zusätzlich gesperrt ist. Wenn safe_mode an ist, ist das oft auch der Fall.

    Wenn man wkhtmltopdf ohne Parameter aufruft, dann gibt wkhtmltopdf m. W. nichts zurück.

    Gruß
    Peter, TYPO3 @ lisardo (Augsburg)

  • Trent Trent
    TYPO3-Anwärter
    0 x
    7 Beiträge
    0 Hilfreiche Beiträge
    06. 01. 2011, 19:33

    Hallo Peter,

    ich bin schon etwa voran gekommen. Da ich fuer dieses Projekt direkt auf dem Produktionsserver arbeiten muss, hatte ich den Sys-Admin darum gebeten, auf dem Server die Binary im Shell auszufuehren und mir das Ergebnis zuzumailen:

    1. ./wkhtmltopdf: error while loading shared libraries: libfreetype.so.6: wrong ELF class: ELFCLASS64

    Anhand dieser Fehlermeldung hatte ich dann die 64Bit Version der Binary heruntergeladen und diese in das CGI-BIN Verzeichnis kopiert und mit CHMOD 777 angepasst.

    Dann mein TS mit dem absoluten Link zur wkhtmltopdf Binary angepasst:

    1. plugin.tx_webkitpdf_pi1.customScriptPath = /srv/www/vhosts/meinserver.com/subdomains/cms/cgi-bin/

    Ich bekomme jetzt PDF-Dateien (Yuppie!) wenn ich auf den Link klicke, ABER die Texte werden NICHT angezeigt! Ich erhalte komische Zeichen anstatt, lesbare Text-Zeichen zu bekommen. Woran koennte dies jetzt liegen???? Ich bin schon kurz vor dem Ziel! Nochmals, danke.

    Gruss,

    T.