当 pdflatex 在 www-data (apache) 下通过 cgi-bin 脚本调用时,mktextfm 失败

当 pdflatex 在 www-data (apache) 下通过 cgi-bin 脚本调用时,mktextfm 失败

pdflatex从 Ubuntu 上作为 cgi-bin 应用程序调用的 shell 脚本(在默认www-data用户下运行)开始,有时我会遇到以下类型的错误,阻止编译:

kpathsea: Running mktextfm larm0700
mktextfm: mktexdir ./.texmf-var/fonts/tfm/lh/lh-t2a failed.
kpathsea: Appending font creation commands to missfont.log.

./thebook.tex:330: Font T2A/cmr/m/n/7=larm0700 at 7.0pt not loadable: Metric (T
FM) file not found.
<to be read again> 
                   relax 
l.330 10 м/с\textsuperscript{2}

./thebook.tex:330:  ==> Fatal error occurred, no output PDF file produced!
Transcript written on thebook.log.

检查表明.texmf-var/fonts/tfm/lh/lh-t2a在工作目录中创建了一个空目录(与mktexdir消息相反)。

运行相同的脚本可以sudo -u www-data暂时修复问题:生成字体,然后可以从 cgi-bin 脚本编译此特定文档。但它无法提供稳定的结果:当需要新字体时,cgi-bin 脚本再次停止工作。

类似的问题也进行了讨论这里这里这里这里这里(俄语)这里或许还有其他地方,但没有提供明确的解决方案。

答案1

通过添加解决了这个问题

export HOME='/var/www'

添加到命令前的 shell 脚本中pdflatex

相关内容