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

标签 php ubuntu 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.texLaTeX 包和模块中有许多不同的依赖项,需要根据相互关联的路径(例如,支持文件等)很好地定义“env”设置,因此值得从大量文档中查看这些内容。
某些模块可能需要提升才能通过 -shell-escape 来逃避 shell 限制。并且上述命令可能需要临时提升一次运行(不应该经常需要),因此只有在您从文档中确切知道模块需要它的原因时才包括。
TeX 新手很容易认为将工作目录中的子文件夹用于“章节和诗句”是有好处的,因为工作目录可能“看起来”被几十个运行时文件弄得杂乱无章,但是 LaTeX 的大部分依赖于非常具体的相对路径和避免错误的最佳方法是不需要通过变量不断重新定义图像或其他组件,只需说它在同一个文件夹中。
同样,对于包,它们也应该通过环境变量设置到固定位置,即用于 bin 文件夹和字体以及其他模块化支持组件。值得回顾 https://tug.org/texlive/quickinstall.html并注意有关最小路径定义的部分,但安装后组件所需的基本设置远不止这些

关于php - 无法在 Plesk 上运行 pdflatex 命令 (Tex Live),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70398952/

相关文章:

php - 从其 "correct"源抛出错误

php - 从返回引用的函数返回 null

php - 从 Symfony 4/5 中的另一个包覆盖包模板

php - Zend Framework 在插入之前是否锁定表?

php - 在关机/重启时在 LAMP 上运行 PHP 脚本(w/MYSQL)

linux - 警告 : realpath() [function. 真实路径]:无法访问/Plesk 问题

c++ - 编译器错误 libusb

ubuntu - tmux fzf-tmux 在使用快捷方式运行时卡住

php - 用于检索现场体育比分的 Cron 设置

c# - .net 核心中的 Hangfire 一段时间后不工作(部署到真实服务器)