lualatex läuft nicht unter www-data

lualatex läuft nicht unter www-data

Wir verwenden es, lualatexum 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-dataaufgerufen wird . Daher wage ich zu behaupten, dass alle benötigten Klassen, Stile und dergleichen vorhanden sind.rootlualatex filename.tex

Wenn dieselbe Datei www-datamit demselben Befehl als Benutzer ausgeführt wird, wird sie fast sofort nach dem Laden der LaTeX-Eingabedatei und dem Aufruf von LaTeX2e gestoppt.

Ironischerweise lualatexsendet 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 lualatexnicht 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 lualatexdiesen 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 /tmpkann es sich um jedes beliebige Verzeichnis handeln, www-datain 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-dataSchreibberechtigungen 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, lualatexda www-datawahrscheinlich nicht einmal eine Shell vorhanden ist.

verwandte Informationen