在 www-data 下時 lualatex 不運行

在 www-data 下時 lualatex 不運行

我們用來lualatex在我們的網頁伺服器上產生一些自動產生的文件。

我們確實有一個基於 Ubuntu 18.04 的伺服器,Nginx 在其上作為網頁伺服器運行。 Nginx 不是以使用者身分執行root,而是以不同的使用者身分運行www-data。在某些網站上,有一個腳本可以產生 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在此網頁伺服器中運作(以使用者身分受到限制的權利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

相關內容