问题:如果 PHP (www-data) 无法访问所需的包,我如何让 PHP 编译 LaTeX 文档?

我有一个 PHP 脚本,它使用以下代码编译 LaTeX 文档:

exec('cd /path/to/doc && /usr/bin/latexmk -pdf filename.tex');

这适用于我的一些 LaTeX 文档,但我的最新文档无法编译,查看日志显示:

!pdfTeX error: pdflatex (file ecrm1000): Font ecrm1000 at 600 not found
==> Fatal error occurred, no output PDF file produced!

我发现这是 LaTeX 无法看到所需字体包的结果。当我在我的用户名下运行相同的编译命令时,文档会按应有的方式编译。所以我的问题是,我怎样才能让 PHP(作为 www-data 执行)来访问必要的 LaTeX 包?

我尝试使用以下方式在 www-data 帐户下安装所需的软件包:

sudo -u www-data sudo apt-get install texlive-fonts-recommended

但它要求输入 www-data 密码,我不相信它是由我设置的,也不是我扔给它的任何东西。

如果有任何帮助,我正在运行 Ubuntu 12.04。

解答

sudo mktexpk --destdir /usr/share/texmf-texlive/fonts/pk/ljfour/jknappen/ec/ --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 ecrm1000

... 使所有用户都可以使用该字体(与 missingfont.log 相同,但带有 --destdir 参数)。

Logo

Ubuntu 社区为您提供最前沿的新闻资讯和知识内容

更多推荐