我试图用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");
,然后看看你的运气如何。