Problem: pdflatex bzw. latex mit zus. Fonts über Browser auf dediziertem Server starten |
28.06.2010, 20:16 | rigo | Auf diesen Beitrag antworten » | |||||||||||||||||||||
Problem: pdflatex bzw. latex mit zus. Fonts über Browser auf dediziertem Server starten ich schreibe in dieses Forum, weil das Problem nur auftritt, wenn ich pdflatex mittels exec-Kommando in meinem Script über den Webbrowser aufrufe. Das Problem ist folgendes: Ich habe eine tex-Datei die ich mittels pdflatex (oder latex) kompiliern möchte. Zusätzlich sind zwei Opentype-Fonts eingebunden (Helvetica Neue LT Pro). Die Fonts sind auf dem Server installiert und in Latex korrekt eingebunden (otftotfm, updmap etc.). Eine Kompilierung der tex-Datei über die Konsole _funktioniert_ sowohl als root-User als auch als "meinuser", über den PHP als fcgid ausgeführt wird. Rufe ich als "meinuser" z.B.
Wenn ich jetzt aber das Script über den Webbrowser aufrufe, klappt die Kompilierung nicht. Als Ausgabe bekomme ich (u.a.) diesen (einzigen) Fehler:
Es wird auch eine Datei missfont.log erstellt:
Warum funktioniert die Ausführung als "meinuser" über die Konsole, über den Browser jedoch nicht? Wie kann ich (pdf)latex dazu überreden, die tex-Datei _mit_ den zusätzlichen Fonts zu kompilieren? Mein System: Ubuntu 9.04, Apache 2.2.11, PHP 5.2.6, TeXLive 2007 (alles Ubuntu-9.04-aktuell) cu rigo |
|||||||||||||||||||||||
29.06.2010, 07:39 | Schweinebacke | Auf diesen Beitrag antworten » | |||||||||||||||||||||
Web-Server laufen häufig mit eingeschränkten Rechten. Du solltest also zunächst einmal sicherstellen, dass die passenden Zugriffsrechte bei allen benötigten Dateien (hier wohl go+r für die Font-Dateien selbst) und Verzeichnissen (hier go+rx für die Verzeichnisse der Font-Dateien und deren Eltern) gesetzt sind. Zur Kontrolle kannst Du auch einmal einen kpsewhich-Aufruf für die bemängelten Dateien in Dein Script einbauen. Du kannst Dir auch $USER, $UID und $GROUPS ausgeben lassen. |
|||||||||||||||||||||||
29.06.2010, 15:14 | rigo | Auf diesen Beitrag antworten » | |||||||||||||||||||||
Danke für den Tipp. Über die Konsole liefert kpsewhich -expand-var $USER bzw. $UID oder $GROUP richtig "meinuser", 1001 und "leer". Über den Browser liefert es nur "leer", 1001 und "leer". kpsewhich -var-value TFMFONTS über den Browser liefert richtig
Die Verzeichnis- und Dateirechte in /home/meinuser/.texmf-var sind go+r und go+rx (inklusive .texmf-var) Ich habe mal zum testen die tfm-Dateien in den Ordner des Webskriptes kopiert. Der Fehler ist aber immer noch derselbe |
|||||||||||||||||||||||
30.06.2010, 13:02 | Schweinebacke | Auf diesen Beitrag antworten » | |||||||||||||||||||||
Ich glaube nicht, dass die Font-Metriken, also die tfm-Dateien, das Problem sind. Ich glaube, das Problem ist eher der Zugriff auf die Font-Dateien selbst. BTW: Ich hatte absichtlich $GROUPS und nicht $GROUP geschrieben. Normalerweise ist in $GROUPS eine Liste aller Gruppen zu finden, denen der aktuelle Benutzer angehört und mit deren Rechte er deshalb operieren darf. Da Du aber die others-Rechte entsprechend gesetzt hast, sollte das egal sein. Ich würde wirklich mal ein »kpsewhich LY1-HelveticaNeueLTPro-Md-kern-liga.pfb« oder wie auch immer die Font-Datei heißt in das Script einbauen, um im Browser zu sehen, welche Datei er da findet. Falls keine, ist das das Problem. Falls eine, nochmal die Rechte dieser Datei prüfen. |
|||||||||||||||||||||||
30.06.2010, 19:32 | rigo | Auf diesen Beitrag antworten » | |||||||||||||||||||||
Hi Schweinebacke, ein kpsewhich -expand-var $GROUPS liefert über den Browser mit shell_exec ein leeres Ergebnis, über die Konsole als "meinuser" 1000. Wir kommen der Sache aber schon näher: Ein kpsewhich LY1-HelveticaNeueLTPro-Md-kern-liga.pfb liefert über die Konsole (als "meinuser") /home/meinuser/.texmf-var/fonts/type1/lcdftools/HelveticaNeueLTPro/HelveticaNeueLTPro-Bd.pfb. Über den Browser ist das Ergebnis leer. Ein kpsewhich LY1-HelveticaNeueLTPro-Roman-liga.tfm liefert über die Konsole als "meinuser" _und_ über den Browser /home/meinuser/.texmf-var/fonts/tfm/Linotype/helveticaneuelt/LY1-HelveticaNeueLTPro-Roman-liga.tfm Daran liegt's wahrscheinlich. Was kann ich denn da tun? |
|||||||||||||||||||||||
01.07.2010, 07:51 | Schweinebacke | Auf diesen Beitrag antworten » | |||||||||||||||||||||
Ich weiß, ich komme immer wieder darauf zurück, aber zur Sicherheit (man beachte, dass das "X" ein Großbuchstabe ist!): »chmod -R ugo+rX /home/meinuser/.texmf-var/fonts/« Langsam wird es aus der Ferne schwierig. Ich würde als nächstes mit »kpsewhich --show-path="type1 fonts"« den Suchpfad für pfb-Dateien prüfen. Achja, auch die Rechte an /home/meinuser/.texmf-var/ls-R sollten geprüft werden, falls diese Datei existiert. Im Zweifelsfall sollte die Datei gelöscht werden (weil .texmf-var einfach durchsucht wird, falls ls-R nicht existiert). BTW: kpathsea kann man auch im DEBUG-Modus betreiben, wenn man die Environment-Variable KPATHSEA_DEBUG auf entsprechende Werte setzt (siehe »texdoc kpathsea«, Abschnitt 2.6.3). Damit kann man ggf. ermitteln wo kpsewhich tatsächlich sucht und sehen, wo die Suche erfolglos ist. Wenn man zu viele Debug-Bits setzt, bekommt man allerdings einen rechten Wust an Informationen. |
|||||||||||||||||||||||
Anzeige | |||||||||||||||||||||||
|
|||||||||||||||||||||||
01.07.2010, 15:02 | rigo | Auf diesen Beitrag antworten » | |||||||||||||||||||||
Hi, danke für den Hinweis. Das X war natürlich groß. Die Suchpfade werden sowohl für type1 als auch für tfm richtig angegeben. "kpsewhich --debug -1 ..." funktioniert zwar über die Konsole, über den Browser allerdings nicht. Da die PDF-Erzeugung über die Konsole aber funktioniert, hilft das nicht wirklich weiter. ls-R war im Pfad /home/meinuser/.texmf-var/ nicht vorhanden. Ein
Also nochmal zusammenfassend: Pfade sind gesetzt, Rechte sind gesetzt. kpsewhich kennt die Pfade. Fonts werden von pdflatex nicht gefunden. Ich dreh am Rad...
|
|||||||||||||||||||||||
01.07.2010, 21:01 | Schweinebacke | Auf diesen Beitrag antworten » | |||||||||||||||||||||
So leid es mir tut: Ich bin mit meinem Latein auch erst einmal am Ende. Wenn kpsewhich eine Datei findet, sollte pdftex das eigentlich auch. Das einige, was mir noch einfallen würde, wäre ein Fehler in der map-Datei, aber dann würde das über die Konsole auch nicht funktionieren. |
|||||||||||||||||||||||
02.07.2010, 16:53 | rigo | Auf diesen Beitrag antworten » | |||||||||||||||||||||
Ich bin auch völlog ratlos. Langsam glaube ich, dass es sich dabei um einen Bug handelt (Bug) |
|||||||||||||||||||||||
25.07.2010, 16:09 | rigo | Auf diesen Beitrag antworten » | |||||||||||||||||||||
Das Problem ist an anderer Stelle auch aufgetaucht und wurde gelöst |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|