lualatex は www-data では実行されません

lualatex は www-data では実行されません

lualatex私たちは、Web サーバー上でいくつかの自動生成ドキュメントを作成するために使用しています。

Ubuntu 18.04 ベースのサーバーがあり、そのサーバー上で Nginx がウェブサーバーとして実行されています。Nginx は としてではなくroot、別のユーザー として実行されwww-dataます。一部の Web サイトには、LaTeX ファイルを生成するスクリプトがあります。この LaTeX ファイルは、 を持つユーザーとして手動で呼び出されると、エラーなしでコンパイルされますrootlualatex filename.texしたがって、必要なクラス、スタイルなどはすべて利用できると言えます。

同じファイルを user としてwww-data同じ同一コマンドを使用して実行すると、LaTeX 入力ファイルをロードして LaTeX2e を呼び出した後、ほぼすぐに停止します。

皮肉なことに、lualatexは という戻り値を送信します0。つまり、エラーはありません。生成されるのは 12 行のログ ファイルだけです。ログ ファイルにも、エラーや、なぜlualatex成功しなかったのかに関するさらなるヒントは含まれていません。これは、そのログ ファイルです。

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

lualatexこの Web サーバーで実行するために (ユーザーとして制限された権限で) 何をすべきかについて、ヒントを持っている人はいますかwww-data?

答え1

daleif が示唆しているように、 のユーザーディレクトリに書き込み可能な texmf-var ディレクトリがないため、luaotfload はキャッシュに適したディレクトリを見つけることができませんẁww-data。しかし、lualatex次の操作を実行できます。

lualatex <your options> filename.tex

使用できます

TEXMFCACHE=:/tmp/ lualatex <your options> filename.tex

/tmpユーザーがwww-data書き込み可能な任意のディレクトリを指定できます。

チャットで Ulrike Fischer が示唆したように、これはより大きな問題の兆候にすぎない可能性があります。 への書き込み可能なパスを追加する必要がありますTEXMFVAR。したがって、より適切な修正方法は、 に書き込み権限があるディレクトリ ( を使用/some/dir/for/www-data)を作成し、を実行する前にwww-data環境変数TEXMFVARを に設定することです。にはシェルさえない可能性が高いため、これを行う方法は の特定の呼び出しによって異なります。/some/dir/for/www-data:lualatexlualatexwww-data

関連情報