![错误 32512(驱动程序返回代码)](https://linux22.com/image/277824/%E9%94%99%E8%AF%AF%2032512%EF%BC%88%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E8%BF%94%E5%9B%9E%E4%BB%A3%E7%A0%81%EF%BC%89.png)
我正在使用 XeTeX,版本 3.1415926-2.4-0.9998
我正在使用 PHP 创建 .tex 文件并将其存储在 Linux 服务器上。[例如:abc.tex] 然后使用 XeLaTeX 创建带有命令的 .sh 文件以执行 *.tex 文件 [例如:abc.sh]
abc.sh 的示例内容
/usr/local/texlive/2012/bin/x86_64-linux/xelatex abc.tex
如果我在 Linux 命令提示符下执行 abc.sh,则会生成所需的 PDF。但是,如果我通过 php 从 apache webserver 执行 abc.sh,则会给出错误:
Error 32512 (driver return code) generating output;
file abc.pdf may not be valid.
注意:没有生成 PDF 文件。
您能提出一些建议来解决这个问题吗?
答案1
最终它被执行了。危险部分原因是,我仍然不知道原因。我怀疑这可能是由于某些路径问题。
我没有使用 xelatex 执行 tex 文件,而是先用 latex 编译,然后用 dvips 编译,最后使用 ps2pdf 转换为 PDF
注意:它是使用 PHP 通过 Web 服务器执行的
答案2
这是从 PHP 执行 latex 的有效方法。关键是,诸如、、等函数exec
没有或只能获得有限的变量。但是,和其他函数使用路径变量来调用其他程序。因此shell_exec
,我们需要适当地设置路径,例如:passthru
PATH
latex
pdflatex
passthru('PATH=/usr/bin:$PATH pdflatex file.tex');
还要注意,您的网络服务器用户(通常www-data
或apache
)应该安装了必要的软件包;如果您使用本地 tlmgr 存储,情况可能并非如此。