![在 www-data 下時 lualatex 不運行](https://rvso.com/image/392343/%E5%9C%A8%20www-data%20%E4%B8%8B%E6%99%82%20lualatex%20%E4%B8%8D%E9%81%8B%E8%A1%8C.png)
我們用來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:
lualatex
lualatex
www-data