在 Plesk 上无法 运行 pdflatex 命令 (Tex Live)

Cant run pdflatex command (Tex Live) on Plesk

我创建的 API (PHP) 有问题。 API 应该根据发送的数据创建一个 pdf 文档。该脚本完美运行,运行 它直接在 Ubuntu 上,Plesk 是 运行。 不工作的部分如下:

$cmd = sprintf("pdflatex -interaction nonstopmode %s", escapeshellarg(file));
exec($cmd, $foo, $ret);

tex 文件似乎没有被触动...没有日志文件或任何东西。 对此有什么想法吗?

谢谢

Latex 通常 运行 由有经验的用户使用原始命令行或通过 IDE 与控制台交互,因为通常需要从控制台反馈中查看编译可能失败的原因。

最简单的检查是否安装了PdfLaTex?在系统控制台输入 pdflatex --version 这应该确认至少在环境路径中找到了最小的 pdflatex 并在 pi 级别的粗略值后显示变体。

所以在这种情况下回应了pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian)

当试图 运行 不可见时,很难得到反馈,因此使用已知小样本的最小测试再次在控制台到 运行 在当前工作目录中使用批处理模式:-

pdflatex -interaction=nonstopmode sample.tex

这应该 运行 几乎不需要检查,但是如果未配置 pdflatex 的路径,您可能需要添加 pdflatex 可执行文件的位置。因此你发现需要 /usr/bin/pdflatex -interaction=nonstopmode file.tex

LaTeX 包和模块中有许多不同的依赖项,需要根据相互关联的路径(例如支持文件等)明确定义“env”设置,因此值得从广泛的文档。

某些模块可能需要提升才能通过 -shell-escape 逃避 shell 限制,并且上述命令可能需要一个 运行 的临时提升(不应该经常需要)所以只包含当您从文档中确切知道为什么模块需要它时。

TeX 新手很容易认为在工作目录中使用子文件夹作为“章节和诗句”是有好处的,因为工作目录可能“看起来”被潜在的数十个 运行 time 文件,但是 LaTeX 的大部分内容都依赖于非常具体的相对路径,避免错误的最佳方法是不需要通过变量不断重新定义图像或其他组件,只需说它在同一个文件夹中即可。

同样,对于包,它们也应该通过环境变量设置到固定位置,即 bin 文件夹和字体以及其他模块化支持组件。值得回顾 https://tug.org/texlive/quickinstall.html 并注意关于最小路径定义的部分,但 post 已安装组件

所需的基本设置远不止这些