![lualatex は www-data では実行されません](https://rvso.com/image/392343/lualatex%20%E3%81%AF%20www-data%20%E3%81%A7%E3%81%AF%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93.png)
lualatex
私たちは、Web サーバー上でいくつかの自動生成ドキュメントを作成するために使用しています。
Ubuntu 18.04 ベースのサーバーがあり、そのサーバー上で Nginx がウェブサーバーとして実行されています。Nginx は としてではなくroot
、別のユーザー として実行されwww-data
ます。一部の Web サイトには、LaTeX ファイルを生成するスクリプトがあります。この LaTeX ファイルは、 を持つユーザーとして手動で呼び出されると、エラーなしでコンパイルされますroot
。lualatex 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:
lualatex
lualatex
www-data