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