lualatex 在 www-data 下无法运行

lualatex 在 www-data 下无法运行

我们正在使用它们lualatex在我们的网络服务器上生成一些自动生成的文档。

我们确实有一台基于 Ubuntu 18.04 的服务器,Nginx 在该服务器上作为 Web 服务器运行。Nginx 不是以 的身份运行root,而是以不同的用户 的身份运行。在某些网站上,有一个脚本,它会生成一个 LaTeX 文件。如果以 的www-data用户身份手动调用此脚本,则此 LaTeX 文件会编译且不会出错。因此我敢说,所有需要的类、样式等都是可用的。rootlualatex filename.tex

如果以用户身份运行相同的文件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在这个网络服务器中运行(以受限的用户权限www-data)?

答案1

daleif 建议,luaotfload 无法找到适合缓存的目录,因为 的用户目录中没有可写的 texmf-var 目录ẁ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为。如何执行此操作取决于您对 的具体调用,因为可能甚至没有 shell。/some/dir/for/www-data:lualatexlualatexwww-data

相关内容