![lualatex läuft nicht unter www-data](https://rvso.com/image/392343/lualatex%20l%C3%A4uft%20nicht%20unter%20www-data.png)
Wir verwenden es, lualatex
um einige automatisch generierte Dokumente auf unserem Webserver zu erstellen.
Wir haben einen Ubuntu 18.04 basierten Server, auf dem Nginx als Webserver läuft. Nginx läuft nicht als root
, sondern als anderer Benutzer . Auf manchen Webseiten gibt es ein Skript, das eine LaTeX-Datei generiert. Diese LaTeX-Datei wird fehlerfrei kompiliert, wenn es manuell als Benutzer mit www-data
aufgerufen wird . Daher wage ich zu behaupten, dass alle benötigten Klassen, Stile und dergleichen vorhanden sind.root
lualatex filename.tex
Wenn dieselbe Datei www-data
mit demselben Befehl als Benutzer ausgeführt wird, wird sie fast sofort nach dem Laden der LaTeX-Eingabedatei und dem Aufruf von LaTeX2e gestoppt.
Ironischerweise lualatex
sendet als Rückgabewert 0
, also keinen Fehler. Es wird lediglich eine Log-Datei erzeugt, die 12 Zeilen lang ist. Auch die Log-Datei enthält keinerlei Fehler oder weitere Hinweise, warum es lualatex
nicht geklappt hat. Dies ist die besagte Log-Datei:
This is LuaTeX, Version 1.07.0 (TeX Live 2019/dev/Debian) (format=lualatex 2019.3.12) 12 MAR 2019 16:53
restricted system commands enabled.
**04-201901.tex
(./04-201901.tex
LaTeX2e <2018-12-01>
Lua module: luaotfload-main 2019-02-14 2.96 luaotfload entry point
Lua module: luaotfload-init 2019-02-14 2.96 luaotfload submodule / initializatio
n
Lua module: lualibs 2019-02-14 2.64 ConTeXt Lua standard libraries.
Lua module: lualibs-extended 2019-02-14 2.64 ConTeXt Lua libraries -- extended c
ollection.
Lua module: luaotfload-log 2019-02-14 2.96 luaotfload submodule / logging
Hat jemand Hinweise, was zu tun ist, um lualatex
diesen Webserver (mit eingeschränkten Rechten als Benutzer www-data
) zum Laufen zu bringen?
Antwort1
Wie von daleif vorgeschlagen, kann luaotfload kein geeignetes Verzeichnis für seine Caches finden, da es im Benutzerverzeichnis von kein beschreibbares texmf-var-Verzeichnis gibt ẁww-data
. Aber Sie können helfen lualatex
: Anstatt auszuführen
lualatex <your options> filename.tex
Sie können verwenden
TEXMFCACHE=:/tmp/ lualatex <your options> filename.tex
Dabei /tmp
kann es sich um jedes beliebige Verzeichnis handeln, www-data
in das der Benutzer schreiben kann.
Wie von Ulrike Fischer im Chat vorgeschlagen, könnte dies nur ein Hinweis auf ein größeres Problem sein: Sie sollten wirklich einen beschreibbaren Pfad zu hinzufügen TEXMFVAR
. Eine bessere Lösung wäre also, ein Verzeichnis zu erstellen (ich werde verwenden /some/dir/for/www-data
), für das www-data
Schreibberechtigungen vorhanden sind, und dann die Umgebungsvariable auf zu setzen TEXMFVAR
, /some/dir/for/www-data:
bevor ausgeführt wird lualatex
. Wie Sie dies tun, hängt von Ihrem spezifischen Aufruf von ab, lualatex
da www-data
wahrscheinlich nicht einmal eine Shell vorhanden ist.