无法通过 system() 执行外部程序?



我试图用php脚本编译我的latex文件,但它无法调用xelatex

在php脚本中:

system("/usr/bin/whoami");
system("/usr/bin/xelatex foo.tex 2>&1");

输出:

myuser
sh: 1: /usr/bin/xelatex: not found

但在我的终端:

$ /usr/bin/whoami
=> myuser
$ /usr/bin/xelatex foo.tex
This is XeTeX, Version 3.1415926-2.2-0.9995.2 (TeX Live 2009/Debian)
...(successful output)...

我将php作为myuser运行,并传递system()绝对路径。我关闭了safe_mode。为什么我仍然不能执行外部程序?

最后我联系了系统管理员,发现了问题。该机器位于NFS中,因此apache和登录外壳位于不同的机器上。在运行apache的机器上没有xelatex

检查运行PHP代码的目录的权限。检查myuser权限

只是为了验证,试试root。

希望这能帮助

您确定它找不到的不是文件"foo.tex"吗?尝试将shell输出到一个文件中,例如system("/usr/bin/xelatex ./foo.tex > ./test.out");,然后看看你的运气如何。

最新更新