在某些情况下,当 php 调用 pdflatex 时,它会默默失败

在某些情况下,当 php 调用 pdflatex 时,它会默默失败

我想根据 HTML 表单的一些输入生成 PDF 文件。由于我还需要将其他 PDF 文件附加到此文档(可能已附加到表单),因此我决定使用 LaTeX 来完成这项工作(因为大多数基于 php 的工具无法处理 >v1.4 版的 PDF 文件)。

我从这个例子开始(https://github.com/mike42/web-pdf) 来工作并对其进行了最小的改动(主要是我选择了 pdflatex 而不是 xelatex,因为 pdfpages-package 似乎需要 pdflatex 才能工作)。

虽然这在我的本地开发环境 (xampp) 上有效,但在服务器上却默默失败了,我无法检测原因。为了测试,我是否至少可以让 pdflatex 编译一些东西,我正在使用以下工作示例(从这里获取 ->https://gist.github.com/Michael0x2a/e46e12a66b7dc604db5e):

\documentclass{article}
\usepackage[utf8]{inputenc}

\begin{document}

Name, date, Exercise X

\section*{Part a}

Put your answer to part a here

\section*{Part b}

etc

\end{document}

我已经测试了给定的读写文件权限,并证明 pdflatex 基本可以正常工作(例如 -version 和 -help 给出了预期的结果)。但是,当尝试编译 tex 文件时,控制台输出完全为空(甚至没有问候语“这是 pdftex...”),没有创建任何文件,文件 pdflatex.log 不包含与此问题相关的任何内容,我只得到退出代码 1(我尝试过 xelatex 一次,得到的结果基本相同,只是这次的退出代码是 127)。当在服务器上使用 pdflatex 时,使用与通过 php 访问它的相同用户,它可以按预期工作。

我在用pdfTeX 3.14159265-2.6-1.40.19分发者TeX Live 2019在 Debian 系统上。

提前谢谢了。

答案1

因此,我在这里发布帖子后,就找到了问题的解决方案。

感谢这个问题(通过 php 的 shell_exec 进行 latex 编译)我尝试从 root 开始调用 pdflatex(即我的命令/usr/bin/pdflatex现在是)。

我仍然不知道,为什么它一开始不起作用(我的意思是,我得到了退出代码 1,所以 pdflatex 应该以某种方式执行),但我很高兴它现在可以工作了。

相关内容